midscene/apps/site/docs/zh/model-provider.mdx

201 lines
6.7 KiB
Plaintext
Raw Permalink Normal View History

# 配置模型和服务商
2024-08-08 15:39:07 +08:00
Midscene 默认集成了 OpenAI SDK 调用 AI 服务。使用这个 SDK 限定了 AI 服务出入参的形式,但并不意味着你只能使用 OpenAI 的模型,你可以使用任何兼容此类接口的模型服务(绝大多数平台或工具都支持)。
2024-08-08 15:39:07 +08:00
在本文中,我们将展示如何配置 AI 提供商,以及如何选择不同的模型。你可以先阅读 [选择 AI 模型](./choose-a-model) 来了解如何选择模型。
2024-08-08 15:39:07 +08:00
# 选择 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 命令调用详情 |
## 两种配置环境变量的方式
选择其中一种方式来配置环境变量。
### 方法一:在系统中设置环境变量
2024-08-08 15:39:07 +08:00
```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` 中。
2024-08-08 15:39:07 +08:00
```bash
# 安装 dotenv
npm install dotenv --save
```
2024-08-08 15:39:07 +08:00
在项目根目录下创建一个 `.env` 文件,并添加以下内容。注意,这里不需要在每一行前添加 `export`。
2024-08-08 15:39:07 +08:00
```bash
OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"
```
在脚本中导入 dotenv 模块,导入后它会自动读取 `.env` 文件中的环境变量。
```typescript
import 'dotenv/config';
2024-08-08 15:39:07 +08:00
```
## 使用 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` 来查看问题。