FAQ

Midscene 能否根据一句话指令实现智能规划?比如执行 "发一条微博"

Midscene 是一个辅助 UI 自动化的 SDK,运行时稳定性很关键——即保证每次运行都能运行相同的动作。为了保持这种稳定性,我们希望你提供详细的指令,以帮助 AI 清晰地理解并执行。

如果你需要一个 '目标到任务' 的 AI 规划工具,不妨基于 Midscene 自行开发一个。

关联文档:

局限性

Midscene 存在一些局限性,我们仍在努力改进。

  1. 交互类型有限:目前仅支持点击、输入、键盘和滚动操作。
  2. 稳定性不足:即使是 GPT-4o 也无法确保 100% 返回正确答案。遵循 编写提示词的技巧 可以帮助提高 SDK 稳定性。
  3. 元素访问受限:由于我们使用 JavaScript 从页面提取元素,所以无法访问 iframe 内部的元素。

选用那个 LLM 模型?

Midscene 需要一个能够理解用户界面的多模态大型语言模型。目前,我们发现 OpenAI 的 GPT-4o 表现最好,远超其它模型。

你可以根据需要自定义模型服务

关于 token 成本

图像分辨率和元素数量(即 Midscene 创建的 UI 上下文大小)会显著影响 token 消耗。

以下是一些典型数据:

任务 分辨率 Prompt Tokens / 价格 Completion Tokens / 价格
拆解(Plan)执行步骤,分析如何在 eBay 进行一次搜索 1280x800 6,975 / $0.034875 150 / $0.00225
定位(Locate)eBay 上的搜索框 1280x800 8,004 / $0.04002 92 / $0.00138
提取(Query)eBay 搜索结果的商品信息 1280x800 13,403 / $0.067015 95 / $0.001425

这些价格数据测算于 2024 年 8 月

会有哪些信息发送到 LLM ?

这些信息:

  1. 从 DOM 提取的关键信息,如文字内容、class name、tag name、坐标
  2. 界面截图

脚本运行偏慢?

由于 Midscene.js 每次进行规划(Planning)和查询(Query)时都会调用 AI,其运行耗时可能比传统 Playwright 用例增加 3 到 10 倍,比如从 5 秒变成 20秒。目前,这一点仍无法避免。但随着大型语言模型(LLM)的进步,未来性能可能会有所改善。

尽管运行时间较长,Midscene 在实际应用中依然表现出色。它独特的开发体验会让代码库易于维护。我们相信,集成了 Midscene 的自动化脚本能够显著提升项目迭代效率,覆盖更多场景,提高整体生产力。

简而言之,虽然偏慢,但这些投入一定都是值得的。

浏览器界面持续闪动

一般是 viewport deviceScaleFactor 参数与系统环境不匹配造成的。如果你在 Mac 系统下运行,可以把它设成 2 来解决。

await page.setViewport({
  deviceScaleFactor: 2,
});