2024-11-11 11:19:25 +08:00
|
|
|
|
# Midscene.js - AI 加持,带来愉悦的 UI 自动化体验
|
|
|
|
|
|
2024-12-23 14:38:07 +08:00
|
|
|
|
UI 自动化太难维护了。UI 自动化脚本里往往到处都是选择器,比如 `#ids`、`data-test`、`.selectors`。在需要重构的时候,这可能会让人感到非常头疼,尽管在这种情况下,UI 自动化应该能够发挥作用。
|
2024-11-11 11:19:25 +08:00
|
|
|
|
|
|
|
|
|
我们在这里推出 Midscene.js,助你重拾编码的乐趣。
|
|
|
|
|
|
|
|
|
|
Midscene.js 采用了多模态大语言模型(LLM),能够直观地“理解”你的用户界面并执行必要的操作。你只需描述交互步骤或期望的数据格式,AI 就能为你完成任务。
|
|
|
|
|
|
2024-11-14 19:29:22 +08:00
|
|
|
|
<video src="/introduction/Midscene.mp4" controls/>
|
2024-11-11 11:19:25 +08:00
|
|
|
|
|
|
|
|
|
## 通过 AI 执行交互、提取数据和断言
|
|
|
|
|
|
|
|
|
|
一共有三种关键方法:交互(`.ai`, `.aiAction`), 提取 (`.aiQuery`), 断言 (`.aiAssert`)。
|
|
|
|
|
|
|
|
|
|
* 用 `.ai`方法描述步骤并执行交互
|
|
|
|
|
* 用 `.aiQuery` 从 UI 中“理解”并提取数据,返回值是 JSON 格式,你可以尽情描述想要的数据结构
|
|
|
|
|
* 用 `.aiAssert` 来执行断言
|
|
|
|
|
|
|
|
|
|
举例:
|
|
|
|
|
|
|
|
|
|
```typescript
|
|
|
|
|
// 👀 输入关键字,执行搜索
|
2024-12-23 12:11:10 +08:00
|
|
|
|
// 尽管这是一个英文页面,你也可以用中文指令控制它
|
2024-11-11 11:19:25 +08:00
|
|
|
|
await ai('在搜索框输入 "Headphones" ,敲回车');
|
|
|
|
|
|
|
|
|
|
// 👀 找到列表里耳机相关的信息
|
|
|
|
|
const items = await aiQuery(
|
|
|
|
|
'{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
console.log("headphones in stock", items);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 多种集成形式
|
|
|
|
|
|
2024-12-10 09:24:43 +08:00
|
|
|
|
如果你想要测试 Midscene 的核心能力,我们推荐从 [浏览器插件](./quick-experience) 开始快速体验。插件里可以用自然语言与任意网页联动,调用交互、提取、断言三种接口,无需搭建代码项目。
|
2024-11-11 11:19:25 +08:00
|
|
|
|
|
|
|
|
|
此外,还有几种形式将 Midscene 集成到代码:
|
2024-11-25 16:05:01 +08:00
|
|
|
|
|
2025-01-07 11:10:28 +08:00
|
|
|
|
* [使用 YAML 格式的自动化脚本](./automate-with-scripts-in-yaml),如果你更喜欢写 YAML 文件而不是代码
|
|
|
|
|
* [使用 Chrome 插件的桥接模式](./bridge-mode-by-chrome-extension),用它来通过脚本控制桌面 Chrome
|
2024-11-11 11:19:25 +08:00
|
|
|
|
* [集成到 Puppeteer](./integrate-with-puppeteer)
|
|
|
|
|
* [集成到 Playwright](./integrate-with-playwright)
|
|
|
|
|
|
|
|
|
|
## 可视化报告
|
|
|
|
|
|
|
|
|
|
运行结束后,Midscene 会提供可视化报告和调试 Playground,可以非常方便地调试提示和 AI 的响应。所有的中间数据,例如查询(Query)、计划(Planning)和动作(Actions),都可以被可视化。
|
|
|
|
|
|
|
|
|
|
此外,Midscene 报告里还集成了一个 Playground,用以在报告中重新运行 Prompt 并调试。
|
|
|
|
|
|
2025-01-10 10:55:41 +08:00
|
|
|
|
<p align="center">
|
|
|
|
|
<img src="/report.gif" alt="visualized report" />
|
|
|
|
|
</p>
|
2024-11-11 11:19:25 +08:00
|
|
|
|
|
|
|
|
|
## 直连模型端,无需三方服务
|
|
|
|
|
|
2024-12-19 15:49:06 +08:00
|
|
|
|
Midscene.js 是一个采用 MIT 许可证的开源项目 (GitHub: [Midscene](https://github.com/web-infra-dev/midscene/)) 。项目代码运行在用户的自有环境中,所有从页面收集的数据会依照用户的配置,直接传送到 OpenAI 或指定的自定义模型。因此,数据仅用户和指定的模型服务商可访问,任何第三方平台均无法获取这些数据。
|
|
|
|
|
|
2024-12-23 14:38:07 +08:00
|
|
|
|
## 自定义模型
|
|
|
|
|
|
|
|
|
|
目前我们默认选择的是 OpenAI GPT-4o 作为模型,你也可以[自定义为其他多模态模型](./model-provider.html)。
|
2024-12-19 15:49:06 +08:00
|
|
|
|
|
|
|
|
|
## 从 Chrome插件开始快速体验
|
|
|
|
|
|
|
|
|
|
通过使用 Midscene.js Chrome 插件,你可以快速在任意网页上体验 Midscene 的主要功能,而无需编写任何代码。请参照文档 [通过 Chrome 插件快速体验](./quick-experience.html) 进行安装和配置。
|