本文档介绍了 LobeChat 的模型列表自定义系统,该系统允许管理员通过环境变量修改每个提供商可用的 AI 模型。该系统支持通过灵活的基于字符串的语法添加自定义模型、删除默认模型、重命名显示名称以及配置模型功能。
有关底层模型提供商配置系统的信息,请参阅提供商配置系统。有关模型定义及其基本功能的详细信息,请参阅模型定义和功能。
模型列表自定义系统支持在部署时配置 AI 模型,无需修改代码。它处理诸如 OPENAI_MODEL_LIST、ANTHROPIC_MODEL_LIST 等环境变量,解析自定义语法以修改代码库中定义的默认模型配置。
模型列表自定义使用逗号分隔的字符串格式,带有特殊运算符和扩展语法
| 操作 | 语法 | 描述 |
|---|---|---|
| 添加模型 | +model_id | 将模型添加到列表 |
| 移除模型 | -model_id | 从列表中移除模型 |
| 移除所有 | -all | 移除所有默认模型 |
| 重命名模型 | model_id=新名称 | 更改显示名称 |
| 设置功能 | model_id<4096:vision:fc> | 配置上下文窗口和能力 |
| 部署名称 | model_id->deployment=名称 | 设置部署名称(Azure、火山引擎、通义千问) |
模型列表解析流程
来源: src/utils/parseModels.ts8-106 docs/self-hosting/advanced/model-list.mdx16-26
每个 AI 提供商都支持使用 *_MODEL_LIST 环境变量进行自定义
| 提供商 | 环境变量 | 部署名称 |
|---|---|---|
| OpenAI | OPENAI_MODEL_LIST | 否 |
| Azure OpenAI | AZURE_MODEL_LIST | 是 |
| Anthropic | ANTHROPIC_MODEL_LIST | 否 |
GOOGLE_MODEL_LIST | 否 | |
| AWS Bedrock | AWS_BEDROCK_MODEL_LIST | 否 |
| Ollama | OLLAMA_MODEL_LIST | 否 |
| OpenRouter | OPENROUTER_MODEL_LIST | 否 |
| DeepSeek | DEEPSEEK_MODEL_LIST | 否 |
| Groq | GROQ_MODEL_LIST | 否 |
| Volcengine | VOLCENGINE_MODEL_LIST | 是 |
| Qwen | QWEN_MODEL_LIST | 是 |
环境变量处理流程
来源: docs/self-hosting/environment-variables/model-provider.mdx57-628 .env.example14-141
该系统支持使用尖括号语法 <maxToken:capability1:capability2> 配置模型功能。
尖括号中的第一个值指定了最大上下文窗口 token 数量
| 标志 | 映射到 | 描述 |
|---|---|---|
fc | abilities.functionCall | 函数调用支持 |
vision | abilities.vision | 图像识别 |
reasoning | abilities.reasoning | 推理能力 |
search | abilities.search | 网页搜索集成 |
file | abilities.files | 文件上传支持 |
imageOutput | abilities.imageOutput | 图像生成 |
能力解析逻辑
来源: src/utils/parseModels.ts60-96 docs/self-hosting/advanced/model-list.mdx29-58
某些提供商(Azure OpenAI、火山引擎、通义千问)支持使用 -> 语法设置部署名称,以将模型 ID 映射到特定的部署。
部署名称处理
来源: src/utils/parseModels.ts22-27 src/utils/parseModels.test.ts308-361 docs/self-hosting/environment-variables/model-provider.mdx93-98
模型列表自定义通过 parseModels 实用工具中的两个主要函数实现
parseModelString()将原始模型字符串解析为结构化的添加/删除操作
主要职责
+/- 前缀以进行添加/删除操作withDeploymentName 为 true 时,解析部署名称transformToAiChatModelList()将解析后的模型操作转换为最终的模型列表
主要职责
LOBE_DEFAULT_MODEL_LIST 中查找已知模型模型列表转换流程
来源: src/utils/parseModels.ts108-183 src/utils/parseModels.test.ts364-509
移除所有并添加特定模型
添加具有功能的自定义模型
移除不需要的模型
重命名现有模型
此配置
-all)gpt-4o 模型映射到 Azure 部署 id1,显示名称为 "GPT-4o"gpt-4o-mini 模型映射到 Azure 部署 id2,显示名称为 "GPT 4o Mini"o1-mini 模型映射到 Azure 部署 id3,显示名称为 "OpenAI o1-mini"这将创建一个精心策划的模型列表,其中包含
来源: src/utils/parseModels.test.ts510-656 src/server/routers/edge/config/index.test.ts31-128 docs/self-hosting/advanced/model-list.mdx40-47