国产大模型助力自动化测试——让Midscene.js用上“东方大脑”
大家好,我是老李。前一段写了篇文章《UI自动化测试不求人,字节跳动开源基于AI大模型的UI自动化测试库》,介绍了字节跳动开源的AI驱动的自动化测试工具midscene.js,有朋友纷纷私信,国产大模型使用方便又便宜,midscene.js能不能接入国产的大模型啊?其实啊,代码层级很早就支持多种大模型了,只是文档没公开出来,因为毕竟是个开源的产品,字节早期在内部使用的时候,也会用多种大模型进行对比测试,代码稳定之后,再通过文档公开出来,这也符合开发同学的逻辑——先开发,后补文档。好了,闲话不多说,今天就带大家看看如何让midscene.js支持不同的大模型。
目前官方最为推荐的3种模型分别是 GPT-4o,Qwen2.5-VL(千问)和 UI-TARS
GPT-4o
表现比较平衡,但是因为Midscene 需要将截图和 DOM 树一起发送给模型,这会导致 token 消耗较高,且无法处理跨域的 <iframe /> 或 <canvas /> 标签中的内容,有时候可能无法准确定位小图标。
配置
OPENAI_API_KEY="......"
OPENAI_BASE_URL="https://......"# 可选
MIDSCENE_MODEL_NAME="gpt-4o-2024-11-20" # 可选,默认是 "gpt-4o"。
千问 Qwen-2.5-VL
开源的 VL 模型,几乎与 GPT-4o 表现相同,使用阿里云部署的版本时成本很低。在大多数情况下,它的表现与 GPT-4o 相当,有时甚至更好。官方推荐使用最大参数的 72B 版本。
支持识别截图中的图像位置,不需要发送 DOM 树给模型。和 gpt-4o 相比,它可以节省 30% 到 50% 的 token 数量。在阿里云官方部署版本中,费用消耗可以下降 80% 以上。
同时,这是一个开源模型,因此你可以选择使用云提供商已经部署好的版本,或者自己部署到你自己的服务器上。
配置
OPENAI_BASE_URL="https://......" # 或任何其他提供商的接入点。
OPENAI_API_KEY="......"
MIDSCENE_MODEL_NAME="qwen-vl-max-latest"
MIDSCENE_USE_QWEN_VL=1 # 别忘了配置这项,用于启用 Qwen 2.5 模式!
UI-TARS
开源的端到端 GUI 代理模型,擅长执行目标驱动的任务,有错误纠正能力。它仅以截图作为输入,并执行人类常用的交互(如键盘和鼠标操作),在 10 多个 GUI 基准测试中取得了顶尖性能。UI-TARS 是一个开源模型,并提供了不同大小的版本。
实测速度上,一个私有化部署的UI-TARS模型可以比通用 LLM 快 5 倍,图像识别上和Qwen-2.5-VL 一样, 可以识别截图中的图像位置,这就意味着无需发送DOM树,可以节约大量token,提高速度,另外,UI-TARS 针对 UI 自动化进行了优化,能够使用目标驱动的提示词(target-driven prompt),处理更复杂的目标驱动的任务,在使用更短的提示词时,UI-TARS 的表现比通用 LLM 更好。唯一的缺点是在某些情况下,断言能力可能不如 gpt-4o。
配置
OPENAI_BASE_URL="....."
OPENAI_API_KEY="......"
MIDSCENE_MODEL_NAME="ui-tars-7b-sft"
MIDSCENE_USE_VLM_UI_TARS=1 # 别忘了配置这项用于 UI-TARS 模式!
下面官方支持的其他模型,你只需要找到如何使用与 OpenAI SDK 兼容的方式调用它,服务商一般都会提供这样的接入点,只需要配置 OPENAI_BASE_URL, OPENAI_API_KEY 和 MIDSCENE_MODEL_NAME三个环境变量,有条件的小伙伴也可以尝试一下。
- claude-3-opus-20240229
- gemini-1.5-pro
- qwen-vl-max-latest(千问)
- doubao-vision-pro-32k(豆包)
配置
export OPENAI_BASE_URL="......"
export OPENAI_API_KEY="....."
export MIDSCENE_MODEL_NAME="gemini-1.5-pro"
说在最后:midscene的实现效果和最近很火的MCP(Model Context Protocol)要达到的目标是一致的,也是MCP致力要解决的问题,相信不久的将来,midscene也会实现相应版本的MCP服务器版本,如果将来整个MCP的生态越来越完善,更多的MCP组件融合起来,人类坐在电脑前,通过语言指令,指挥电脑自动完成各项任务,是不是很High!好了,今天就聊到这儿,喜欢的朋友可以点赞收藏加评论,老李将为您带来更多好玩有趣的AI知识和工具!