mirror of
https://github.com/web-infra-dev/midscene.git
synced 2025-11-29 16:39:58 +00:00
201 lines
6.7 KiB
Plaintext
201 lines
6.7 KiB
Plaintext
# 配置模型和服务商
|
||
|
||
Midscene 默认集成了 OpenAI SDK 调用 AI 服务。使用这个 SDK 限定了 AI 服务出入参的形式,但并不意味着你只能使用 OpenAI 的模型,你可以使用任何兼容此类接口的模型服务(绝大多数平台或工具都支持)。
|
||
|
||
在本文中,我们将展示如何配置 AI 提供商,以及如何选择不同的模型。你可以先阅读 [选择 AI 模型](./choose-a-model) 来了解如何选择模型。
|
||
|
||
# 选择 AI 模型
|
||
|
||
|
||
## 配置
|
||
|
||
### 通用配置
|
||
|
||
你可以通过环境变量来自定义配置。这些配置同样可以在 [Chrome 插件](./quick-experience) 中使用。
|
||
|
||
常用的主要配置项如下,其中 `OPENAI_API_KEY` 是必选项:
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `OPENAI_API_KEY` | 必选项。你的 OpenAI API Key (如 "sk-abcdefghijklmnopqrstuvwxyz") |
|
||
| `OPENAI_BASE_URL` | 可选。API 的接入 URL。常用于切换到其他模型服务,如 `https://some_service_name.com/v1` |
|
||
| `MIDSCENE_MODEL_NAME` | 可选。指定一个不同的模型名称 (默认是 gpt-4o)。常用于切换到其他模型服务|
|
||
|
||
使用 `Qwen 2.5 VL` 模型的额外配置:
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `MIDSCENE_USE_QWEN_VL` | 设置为 "1" 以适配 Qwen 2.5 VL 模型 |
|
||
|
||
使用 `UI-TARS` 模型的额外配置:
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `MIDSCENE_USE_VLM_UI_TARS` | 指定 UI-TARS 版本,支持的值为 `1.0` `1.5` `DOUBAO`(火山引擎版本) |
|
||
|
||
使用 `Gemini 2.5 Pro` 模型的额外配置:
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `MIDSCENE_USE_GEMINI` | 设置为 "1" 以适配 Gemini 2.5 Pro 模型 |
|
||
|
||
关于模型的更多信息,请参阅 [选择 AI 模型](./choose-a-model)。
|
||
|
||
### 高级配置
|
||
|
||
还有一些高级配置项,通常不需要使用。
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `OPENAI_USE_AZURE` | 可选。设置为 "true" 以使用 Azure OpenAI Service。更多详情请参阅后文 |
|
||
| `MIDSCENE_OPENAI_INIT_CONFIG_JSON` | 可选。OpenAI SDK 的初始化配置 JSON |
|
||
| `MIDSCENE_OPENAI_SOCKS_PROXY` | 可选。代理配置 (如 "socks5://127.0.0.1:1080") |
|
||
| `MIDSCENE_PREFERRED_LANGUAGE` | 可选。模型响应的语言。如果当前时区是 GMT+8 则默认是 `Chinese`,否则是 `English` |
|
||
| `OPENAI_MAX_TOKENS` | 可选。模型响应的 max_tokens 数 |
|
||
|
||
### 调试配置
|
||
|
||
通过设置以下配置,可以打印更多日志用于调试。这些日志也会打印到 `./midscene_run/log` 文件夹中。
|
||
|
||
| 名称 | 描述 |
|
||
|------|-------------|
|
||
| `DEBUG=midscene:ai:profile:stats` | 可选。设置此项,可以打印 AI 服务消耗的时间、token 使用情况,用逗号分隔,便于分析 |
|
||
| `DEBUG=midscene:ai:profile:detail` | 可选。设置此项,可以打印 AI token 消耗信息的详情 |
|
||
| `DEBUG=midscene:ai:call` | 可选。设置此项,可以打印 AI 响应详情 |
|
||
| `DEBUG=midscene:android:adb` | 可选。设置此项,可以打印 Android adb 命令调用详情 |
|
||
|
||
## 两种配置环境变量的方式
|
||
|
||
选择其中一种方式来配置环境变量。
|
||
|
||
### 方法一:在系统中设置环境变量
|
||
|
||
```bash
|
||
# 替换为你自己的 API Key
|
||
export OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"
|
||
```
|
||
|
||
### 方法二:使用 dotenv 配置环境变量
|
||
|
||
我们的 [demo 项目](https://github.com/web-infra-dev/midscene-example) 使用了这种方式。
|
||
|
||
[Dotenv](https://www.npmjs.com/package/dotenv) 是一个零依赖的 npm 包,用于将环境变量从 `.env` 文件加载到环境变量 `process.env` 中。
|
||
|
||
```bash
|
||
# 安装 dotenv
|
||
npm install dotenv --save
|
||
```
|
||
|
||
在项目根目录下创建一个 `.env` 文件,并添加以下内容。注意,这里不需要在每一行前添加 `export`。
|
||
|
||
```bash
|
||
OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"
|
||
```
|
||
|
||
在脚本中导入 dotenv 模块,导入后它会自动读取 `.env` 文件中的环境变量。
|
||
|
||
```typescript
|
||
import 'dotenv/config';
|
||
```
|
||
|
||
## 使用 Azure OpenAI 服务时的配置
|
||
|
||
### 使用 ADT token provider
|
||
|
||
此种模式无法运行在浏览器插件中。
|
||
|
||
```bash
|
||
# 使用 Azure OpenAI 服务时,配置为 1
|
||
export MIDSCENE_USE_AZURE_OPENAI=1
|
||
|
||
export MIDSCENE_AZURE_OPENAI_SCOPE="https://cognitiveservices.azure.com/.default"
|
||
export AZURE_OPENAI_ENDPOINT="..."
|
||
export AZURE_OPENAI_API_VERSION="2024-05-01-preview"
|
||
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
|
||
```
|
||
|
||
### 使用 keyless 模式
|
||
|
||
```bash
|
||
export MIDSCENE_USE_AZURE_OPENAI=1
|
||
export AZURE_OPENAI_ENDPOINT="..."
|
||
export AZURE_OPENAI_KEY="..."
|
||
export AZURE_OPENAI_API_VERSION="2024-05-01-preview"
|
||
export AZURE_OPENAI_DEPLOYMENT="gpt-4o"
|
||
```
|
||
|
||
## 使用 Javascript 配置 AI 服务
|
||
|
||
你也可以在运行 Midscene 代码之前,使用 Javascript 来配置 AI 服务。
|
||
|
||
```typescript
|
||
import { overrideAIConfig } from "@midscene/web/puppeteer";
|
||
// 或者 import { overrideAIConfig } from "@midscene/web/playwright";
|
||
// 或者 import { overrideAIConfig } from "@midscene/android";
|
||
|
||
|
||
overrideAIConfig({
|
||
MIDSCENE_MODEL_NAME: "...",
|
||
// ...
|
||
});
|
||
```
|
||
|
||
## 示例:使用 OpenAI 的 `gpt-4o` 模型
|
||
|
||
配置环境变量:
|
||
|
||
```bash
|
||
export OPENAI_API_KEY="sk-..."
|
||
export OPENAI_BASE_URL="https://endpoint.some_other_provider.com/v1" # 可选,如果你想要使用一个不同于 OpenAI 官方的接入点
|
||
export MIDSCENE_MODEL_NAME="gpt-4o-2024-11-20" # 可选,默认是 "gpt-4o"
|
||
```
|
||
|
||
## 示例:使用阿里云官方的 `qwen-vl-max-latest` 模型
|
||
|
||
配置环境变量:
|
||
|
||
```bash
|
||
export OPENAI_API_KEY="sk-..."
|
||
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
|
||
export MIDSCENE_MODEL_NAME="qwen-vl-max-latest"
|
||
export MIDSCENE_USE_QWEN_VL=1
|
||
```
|
||
|
||
## 示例:使用 Doubao-1.5-thinking-vision-pro 模型
|
||
|
||
配置环境变量:
|
||
|
||
```bash
|
||
export OPENAI_BASE_URL="https://ark-cn-beijing.bytedance.net/api/v3"
|
||
export OPENAI_API_KEY="..."
|
||
export MIDSCENE_MODEL_NAME='ep-...'
|
||
export MIDSCENE_USE_DOUBAO_VISION=1
|
||
```
|
||
|
||
## 示例:使用 UI-TARS 模型
|
||
|
||
配置环境变量:
|
||
|
||
```bash
|
||
export OPENAI_BASE_URL="http://localhost:1234/v1"
|
||
export MIDSCENE_MODEL_NAME="ui-tars-72b-sft"
|
||
export MIDSCENE_USE_VLM_UI_TARS=1
|
||
```
|
||
|
||
## 示例:使用 Anthropic 的 `claude-3-opus-20240229` 模型
|
||
|
||
当配置 `MIDSCENE_USE_ANTHROPIC_SDK=1` 时,Midscene 会使用 Anthropic SDK (`@anthropic-ai/sdk`) 来调用模型。
|
||
|
||
配置环境变量:
|
||
|
||
```bash
|
||
export MIDSCENE_USE_ANTHROPIC_SDK=1
|
||
export ANTHROPIC_API_KEY="....."
|
||
export MIDSCENE_MODEL_NAME="claude-3-opus-20240229"
|
||
```
|
||
## 调试 LLM 服务连接问题
|
||
|
||
如果你想要调试 LLM 服务连接问题,可以使用示例项目中的 `connectivity-test` 目录:[https://github.com/web-infra-dev/midscene-example/tree/main/connectivity-test](https://github.com/web-infra-dev/midscene-example/tree/main/connectivity-test)
|
||
|
||
将你的 `.env` 文件放在 `connectivity-test` 文件夹中,然后运行 `npm i && npm run test` 来查看问题。
|