chore: initial commit of ai site platform
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
45
ai-service/etc/README.md
Normal file
45
ai-service/etc/README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# AI / LLM 配置说明
|
||||
|
||||
供应商、模型列表、默认通道写在 **`ai-service/etc/llm.yaml`**,**不要写在 Python 代码里**。
|
||||
|
||||
密钥仍放项目根 **`.env`**(`DEEPSEEK_API_KEY` 等),配置文件只引用环境变量名(`api_key_env`)。
|
||||
|
||||
## 文件
|
||||
|
||||
| 路径 | 作用 |
|
||||
|------|------|
|
||||
| `ai-service/etc/llm.yaml` | 供应商、模型、视觉默认、别名 |
|
||||
| 项目根 `.env` | API Key、可选 `LLM_PROVIDER` / `VISION_*` 覆盖 |
|
||||
| `AI_CONFIG_PATH` / `LLM_CONFIG_PATH` | 自定义配置文件绝对路径 |
|
||||
|
||||
Docker:`docker-compose.yml` 将 `llm.yaml` 挂载到 `/app/etc/llm.yaml`。
|
||||
|
||||
## 改配置后
|
||||
|
||||
```bash
|
||||
./reload-config.sh ai
|
||||
# 或
|
||||
docker compose up -d --force-recreate ai
|
||||
```
|
||||
|
||||
进程内配置有缓存;重启 `ai` 容器后生效。
|
||||
|
||||
## 增删供应商
|
||||
|
||||
在 `providers:` 下增加一段即可,例如:
|
||||
|
||||
```yaml
|
||||
providers:
|
||||
openai:
|
||||
label: OpenAI
|
||||
base_url: https://api.openai.com/v1
|
||||
api_key_env: OPENAI_API_KEY
|
||||
default_model: gpt-4o-mini
|
||||
models:
|
||||
- id: gpt-4o-mini
|
||||
label: gpt-4o-mini
|
||||
supports_vision: true
|
||||
json_mode: true
|
||||
```
|
||||
|
||||
并在 `.env` 增加 `OPENAI_API_KEY=...`,控制台「模型」列表会从 `/ai/api/v1/llm/providers` 自动带出。
|
||||
88
ai-service/etc/llm.yaml
Normal file
88
ai-service/etc/llm.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
# AI / LLM 供应商配置(独立文件,勿把密钥写进本文件)
|
||||
# 密钥放项目根 .env:DEEPSEEK_API_KEY / MINIMAX_API_KEY / DASHSCOPE_API_KEY
|
||||
# 覆盖路径:环境变量 AI_CONFIG_PATH 或 LLM_CONFIG_PATH
|
||||
# 改本文件后:./reload-config.sh ai
|
||||
|
||||
default_provider: deepseek
|
||||
|
||||
# 视觉通道(截图理解 / 还原度打分);未配密钥时自动跳过看图
|
||||
vision:
|
||||
provider: dashscope
|
||||
model: qwen3.6-plus
|
||||
# 别名 → 正式 provider id
|
||||
aliases:
|
||||
qwen: dashscope
|
||||
aliyun: dashscope
|
||||
tongyi: dashscope
|
||||
|
||||
# 文本模型别名(请求里写 qwen 时落到 dashscope)
|
||||
aliases:
|
||||
qwen: dashscope
|
||||
aliyun: dashscope
|
||||
tongyi: dashscope
|
||||
|
||||
# 视觉模型名启发式(用于判断传入的 model 是否像视觉模型)
|
||||
vision_model_hints:
|
||||
- vl
|
||||
- vision
|
||||
- qwen3
|
||||
- qwen-vl
|
||||
- qwen-plus
|
||||
- gpt-4o
|
||||
- gemini
|
||||
|
||||
providers:
|
||||
heuristic:
|
||||
label: 本地启发式(不调大模型)
|
||||
base_url: ""
|
||||
api_key_env: ""
|
||||
default_model: ""
|
||||
models: []
|
||||
supports_vision: false
|
||||
json_mode: false
|
||||
|
||||
deepseek:
|
||||
label: DeepSeek
|
||||
base_url: https://api.deepseek.com/v1
|
||||
api_key_env: DEEPSEEK_API_KEY
|
||||
default_model: deepseek-chat
|
||||
models:
|
||||
- id: deepseek-chat
|
||||
label: deepseek-chat
|
||||
- id: deepseek-reasoner
|
||||
label: deepseek-reasoner
|
||||
supports_vision: false
|
||||
json_mode: true
|
||||
|
||||
minimax:
|
||||
label: MiniMax
|
||||
base_url: https://api.minimaxi.com/v1
|
||||
api_key_env: MINIMAX_API_KEY
|
||||
default_model: MiniMax-Text-01
|
||||
models:
|
||||
- id: MiniMax-Text-01
|
||||
label: MiniMax-Text-01
|
||||
- id: MiniMax-M2.5
|
||||
label: MiniMax-M2.5
|
||||
- id: abab6.5s-chat
|
||||
label: abab6.5s-chat
|
||||
supports_vision: false
|
||||
json_mode: false
|
||||
|
||||
dashscope:
|
||||
label: 通义千问 (DashScope)
|
||||
base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
|
||||
# 可用环境变量 DASHSCOPE_BASE_URL 覆盖 base_url
|
||||
api_key_env: DASHSCOPE_API_KEY
|
||||
default_model: qwen3.6-plus
|
||||
models:
|
||||
- id: qwen3.6-plus
|
||||
label: qwen3.6-plus(视觉)
|
||||
- id: qwen-vl-plus
|
||||
label: qwen-vl-plus
|
||||
- id: qwen-vl-max
|
||||
label: qwen-vl-max
|
||||
- id: qwen-plus
|
||||
label: qwen-plus
|
||||
supports_vision: true
|
||||
json_mode: false
|
||||
Reference in New Issue
Block a user