2025-12-31 00:04:32 +09:00
# AI 提供商配置
本指南介绍如何为 next-ai-draw-io 配置不同的 AI 模型提供商。
## 快速开始
1. 将 `.env.example` 复制为 `.env.local`
2. 设置所选提供商的 API 密钥
3. 将 `AI_MODEL` 设置为所需的模型
4. 运行 `npm run dev`
## 支持的提供商
### 豆包 (字节跳动火山引擎)
2026-03-16 20:48:39 +09:00
> **免费 Token**:在 [火山引擎 ARK 平台](https://www.volcengine.com/activity/codingplan?ac=MMAP8JTTCAQ2&rc=Z9Z3LDTJ&utm_campaign=drawio&utm_content=drawio&utm_medium=devrel&utm_source=OWO&utm_term=drawio) 注册,即可获得所有模型 50 万免费 Token!
2025-12-31 00:04:32 +09:00
```bash
DOUBAO_API_KEY = your_api_key
AI_MODEL = doubao-seed-1-8-251215 # 或其他豆包模型
```
### Google Gemini
```bash
GOOGLE_GENERATIVE_AI_API_KEY = your_api_key
AI_MODEL = gemini-2.0-flash
```
可选的自定义端点:
```bash
GOOGLE_BASE_URL = https://your-custom-endpoint
```
### OpenAI
```bash
OPENAI_API_KEY = your_api_key
AI_MODEL = gpt-4o
```
可选的自定义端点(用于 OpenAI 兼容服务):
```bash
OPENAI_BASE_URL = https://your-custom-endpoint/v1
```
2026-06-15 12:54:18 +08:00
### AIHubMix
AIHubMix 通过单个 API Key 聚合 Claude、GPT、Gemini、DeepSeek 等模型。
```bash
AIHUBMIX_API_KEY = your_api_key
AI_MODEL = claude-sonnet-4-5-20250929
```
可选的自定义端点:
```bash
AIHUBMIX_BASE_URL = https://aihubmix.com/v1
```
2025-12-31 00:04:32 +09:00
### Anthropic
```bash
ANTHROPIC_API_KEY = your_api_key
AI_MODEL = claude-sonnet-4-5-20250514
```
2026-06-02 18:26:27 +08:00
或者使用 Bearer 认证令牌(例如通过会下发 OAuth 风格 token 的网关时)。`ANTHROPIC_AUTH_TOKEN` 会作为 `Authorization: Bearer <token>` 头发送,而 `ANTHROPIC_API_KEY` 会作为 `x-api-key` 头发送。两者互斥,只能设置其中之一:
```bash
ANTHROPIC_AUTH_TOKEN = your_auth_token
AI_MODEL = claude-sonnet-4-5-20250514
```
2025-12-31 00:04:32 +09:00
可选的自定义端点:
```bash
ANTHROPIC_BASE_URL = https://your-custom-endpoint
```
### DeepSeek
```bash
DEEPSEEK_API_KEY = your_api_key
AI_MODEL = deepseek-chat
```
可选的自定义端点:
```bash
DEEPSEEK_BASE_URL = https://your-custom-endpoint
```
### SiliconFlow (OpenAI 兼容)
```bash
SILICONFLOW_API_KEY = your_api_key
AI_MODEL = deepseek-ai/DeepSeek-V3 # 示例;使用任何 SiliconFlow 模型 ID
```
可选的自定义端点(默认为推荐域名):
```bash
SILICONFLOW_BASE_URL = https://api.siliconflow.com/v1 # 或 https://api.siliconflow.cn/v1
```
### SGLang
```bash
SGLANG_API_KEY = your_api_key
AI_MODEL = your_model_id
```
可选的自定义端点:
```bash
SGLANG_BASE_URL = https://your-custom-endpoint/v1
```
### Azure OpenAI
```bash
AZURE_API_KEY = your_api_key
AZURE_RESOURCE_NAME = your-resource-name # 必填:您的 Azure 资源名称
AI_MODEL = your-deployment-name
```
或者使用自定义端点代替资源名称:
```bash
AZURE_API_KEY = your_api_key
AZURE_BASE_URL = https://your-resource.openai.azure.com # AZURE_RESOURCE_NAME 的替代方案
AI_MODEL = your-deployment-name
```
可选的推理配置:
```bash
AZURE_REASONING_EFFORT = low # 可选:low, medium, high
AZURE_REASONING_SUMMARY = detailed # 可选:none, brief, detailed
```
### AWS Bedrock
```bash
AWS_REGION = us-west-2
AWS_ACCESS_KEY_ID = your_access_key_id
AWS_SECRET_ACCESS_KEY = your_secret_access_key
2026-10-05 22:39:32 +09:00
AI_MODEL = global.anthropic.claude-sonnet-5-5
2025-12-31 00:04:32 +09:00
```
2026-10-05 22:39:32 +09:00
较新的 Claude 模型只能通过推理配置文件(inference profile)的 ID 调用,这种 ID 以地区前缀开头,例如 `global.` 或 `us.` 。直接用 `anthropic.claude-sonnet-5-5` 这样的 ID 会报错 “on-demand throughput isn't supported”。
2025-12-31 00:04:32 +09:00
注意:在 AWS 环境(Lambda、带有 IAM 角色的 EC2)中,凭证会自动从 IAM 角色获取。
### OpenRouter
```bash
OPENROUTER_API_KEY = your_api_key
AI_MODEL = anthropic/claude-sonnet-4
```
可选的自定义端点:
```bash
OPENROUTER_BASE_URL = https://your-custom-endpoint
```
### Ollama (本地)
```bash
AI_PROVIDER = ollama
AI_MODEL = llama3.2
```
2026-01-06 18:41:25 +08:00
### ModelScope
```bash
MODELSCOPE_API_KEY = your_api_key
AI_MODEL = Qwen/Qwen3-235B-A22B-Instruct-2507
```
可选的自定义端点:
```bash
MODELSCOPE_BASE_URL = https://your-custom-endpoint
```
2025-12-31 00:04:32 +09:00
可选的自定义 URL:
```bash
OLLAMA_BASE_URL = http://localhost:11434
```
### Vercel AI Gateway
Vercel AI Gateway 通过单个 API 密钥提供对多个 AI 提供商的统一访问。这简化了身份验证,让您无需管理多个 API 密钥即可在不同提供商之间切换。
**基本用法(Vercel 托管网关):**
```bash
AI_GATEWAY_API_KEY = your_gateway_api_key
AI_MODEL = openai/gpt-4o
```
**自定义网关 URL(用于本地开发或自托管网关):**
```bash
AI_GATEWAY_API_KEY = your_custom_api_key
AI_GATEWAY_BASE_URL = https://your-custom-gateway.com/v1/ai
AI_MODEL = openai/gpt-4o
```
模型格式使用 `provider/model` 语法:
- `openai/gpt-4o` - OpenAI GPT-4o
- `anthropic/claude-sonnet-4-5` - Anthropic Claude Sonnet 4.5
- `google/gemini-2.0-flash` - Google Gemini 2.0 Flash
**配置说明:**
- 如果未设置 `AI_GATEWAY_BASE_URL` ,则使用默认的 Vercel Gateway URL (`https://ai-gateway.vercel.sh/v1/ai` )
- 自定义基础 URL 适用于:
- 使用自定义网关实例进行本地开发
- 自托管 AI Gateway 部署
- 企业代理配置
- 当使用自定义基础 URL 时,必须同时提供 `AI_GATEWAY_API_KEY`
从 [Vercel AI Gateway 仪表板 ](https://vercel.com/ai-gateway ) 获取您的 API 密钥。
2026-03-07 17:53:47 +08:00
### MiniMax
MiniMax 支持两种 API 格式:
- **Anthropic 兼容**( `/anthropic` 端点)— 推荐,支持 interleaved thinking
- **OpenAI 兼容**( `/v1` 端点)— 标准 OpenAI 聊天补全格式
```bash
MINIMAX_API_KEY = your_api_key
2026-06-02 18:38:49 +08:00
AI_MODEL = MiniMax-M3
2026-03-07 17:53:47 +08:00
```
可选配置:
```bash
# 中国大陆版,Anthropic 兼容(默认)
MINIMAX_BASE_URL = https://api.minimaxi.com/anthropic
# 中国大陆版,OpenAI 兼容
MINIMAX_BASE_URL = https://api.minimaxi.com/v1
# 国际版,Anthropic 兼容
MINIMAX_BASE_URL = https://api.minimax.io/anthropic
# 国际版,OpenAI 兼容
MINIMAX_BASE_URL = https://api.minimax.io/v1
```
### GLM (智谱 AI)
```bash
GLM_API_KEY = your_api_key
AI_MODEL = glm-4
```
可选的自定义端点:
```bash
GLM_BASE_URL = https://your-custom-endpoint
```
### Qwen (阿里云通义千问)
```bash
QWEN_API_KEY = your_api_key
AI_MODEL = qwen-turbo
```
可选的自定义端点:
```bash
QWEN_BASE_URL = https://your-custom-endpoint
```
### Kimi (月之暗面 Moonshot AI)
```bash
KIMI_API_KEY = your_api_key
AI_MODEL = kimi-latest
```
可选的自定义端点:
```bash
KIMI_BASE_URL = https://your-custom-endpoint
```
### Qiniu (七牛云)
```bash
QINIU_API_KEY = your_api_key
AI_MODEL = your_model_id
```
可选的自定义端点:
```bash
QINIU_BASE_URL = https://your-custom-endpoint
```
2026-07-12 08:10:12 +08:00
### MiMo (小米)
```bash
MIMO_API_KEY = your_api_key
AI_MODEL = mimo-v2.5-pro
```
可选的自定义端点(Token Plan 订阅用户请设置专属 Base URL):
```bash
MIMO_BASE_URL = https://token-plan-cn.xiaomimimo.com/v1
```
2025-12-31 00:04:32 +09:00
## 自动检测
如果您只配置了**一个**提供商的 API 密钥,系统将自动检测并使用该提供商。无需设置 `AI_PROVIDER` 。
如果您配置了**多个** API 密钥,则必须显式设置 `AI_PROVIDER` :
```bash
2026-07-12 08:10:12 +08:00
AI_PROVIDER = google # 或:openai, anthropic, aihubmix, deepseek, siliconflow, doubao, azure, bedrock, openrouter, ollama, gateway, sglang, modelscope, minimax, glm, qwen, kimi, qiniu, mimo
2025-12-31 00:04:32 +09:00
```
2026-01-15 21:28:22 +05:30
## 服务端多模型配置
管理员可以配置多个服务端模型,让所有用户无需提供个人 API Key 即可使用。
### 配置方式
**方式一:环境变量** (推荐用于云部署)
设置 `AI_MODELS_CONFIG` 为 JSON 字符串:
```bash
AI_MODELS_CONFIG = '{"providers":[{"name":"OpenAI","provider":"openai","models":["gpt-4o"],"default":true}]}'
```
**方式二:配置文件**
在项目根目录创建 `ai-models.json` 文件(或通过 `AI_MODELS_CONFIG_PATH` 指定路径)。
2026-06-15 14:27:55 +09:00
**方式三:`AI_MODEL` 用逗号分隔** (单 provider 的快速配置)
如果只需要暴露同一 provider 下的多个模型,可以直接在 `AI_MODEL` 里用逗号分隔。第一个模型会作为默认值。
```bash
AI_PROVIDER = doubao
AI_MODEL = doubao-seed-1-8-251215,doubao-seed-1-6-flash,doubao-seed-1-6-pro
```
这是等价 `ai-models.json` 的简写形式。如果需要配置多个 provider,或自定义 `apiKeyEnv` / `baseUrlEnv` ,请使用方式一或方式二。
2026-01-15 21:28:22 +05:30
### 配置示例
```json
{
"providers" : [
{
"name" : "OpenAI Production" ,
"provider" : "openai" ,
"models" : [ "gpt-4o" , "gpt-4o-mini" ],
"default" : true
},
{
"name" : "Custom DeepSeek" ,
"provider" : "deepseek" ,
"models" : [ "deepseek-chat" ],
"apiKeyEnv" : "MY_DEEPSEEK_KEY" ,
"baseUrlEnv" : "MY_DEEPSEEK_URL"
}
]
}
```
### 字段说明
| 字段 | 必填 | 说明 |
|------|------|------|
| `name` | 是 | 显示名称(支持同一提供商多个配置) |
| `provider` | 是 | 提供商类型(`openai` , `anthropic` , `google` , `bedrock` 等) |
| `models` | 是 | 模型 ID 列表 |
| `default` | 否 | 设为 `true` 表示默认选中该提供商的第一个模型 |
| `apiKeyEnv` | 否 | 自定义 API Key 环境变量名(默认使用提供商标准变量如 `OPENAI_API_KEY` ) |
| `baseUrlEnv` | 否 | 自定义 Base URL 环境变量名 |
### 说明
- API Key 和凭证通过环境变量提供。默认使用标准变量名(如 `OPENAI_API_KEY` ),也可通过 `apiKeyEnv` 指定自定义变量名。
- `name` 字段允许同一提供商多个配置(例如 "OpenAI Production" 和 "OpenAI Staging" 都使用 `provider: "openai"` 但 `apiKeyEnv` 不同)。
- 如果配置不存在,应用会回退到 `AI_PROVIDER` /`AI_MODEL` 环境变量配置。
2025-12-31 00:04:32 +09:00
## 模型能力要求
此任务对模型能力要求极高,因为它涉及生成具有严格格式约束(draw.io XML)的长文本。
**推荐模型** :
- Claude Sonnet 4.5 / Opus 4.5
**关于 Ollama 的说明** :虽然支持将 Ollama 作为提供商,但除非您在本地运行像 DeepSeek R1 或 Qwen3-235B 这样的高性能模型,否则对于此用例通常不太实用。
## 温度设置 (Temperature)
您可以通过环境变量选择性地配置温度:
```bash
TEMPERATURE = 0 # 输出更具确定性(推荐用于图表)
```
**重要提示** :对于不支持温度设置的模型(例如以下模型),请勿设置 `TEMPERATURE` :
- GPT-5.1 和其他推理模型
- 某些专用模型
未设置时,模型将使用其默认行为。
## 推荐
- **最佳体验** :使用支持视觉的模型(GPT-4o, Claude, Gemini)以获得图像转图表功能
- **经济实惠** :DeepSeek 提供具有竞争力的价格
- **隐私保护** :使用 Ollama 进行完全本地、离线的操作(需要强大的硬件支持)
- **灵活性** : OpenRouter 通过单一 API 提供对众多模型的访问