菜单

模型列表定制

相关源文件

本文档介绍了 LobeChat 的模型列表自定义系统,该系统允许管理员通过环境变量修改每个提供商可用的 AI 模型。该系统支持通过灵活的基于字符串的语法添加自定义模型、删除默认模型、重命名显示名称以及配置模型功能。

有关底层模型提供商配置系统的信息,请参阅提供商配置系统。有关模型定义及其基本功能的详细信息,请参阅模型定义和功能

目的与范围

模型列表自定义系统支持在部署时配置 AI 模型,无需修改代码。它处理诸如 OPENAI_MODEL_LISTANTHROPIC_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 环境变量进行自定义

支持的提供商

提供商环境变量部署名称
OpenAIOPENAI_MODEL_LIST
Azure OpenAIAZURE_MODEL_LIST
AnthropicANTHROPIC_MODEL_LIST
GoogleGOOGLE_MODEL_LIST
AWS BedrockAWS_BEDROCK_MODEL_LIST
OllamaOLLAMA_MODEL_LIST
OpenRouterOPENROUTER_MODEL_LIST
DeepSeekDEEPSEEK_MODEL_LIST
GroqGROQ_MODEL_LIST
VolcengineVOLCENGINE_MODEL_LIST
QwenQWEN_MODEL_LIST

环境变量处理流程

来源: docs/self-hosting/environment-variables/model-provider.mdx57-628 .env.example14-141

模型功能配置

该系统支持使用尖括号语法 <maxToken:capability1:capability2> 配置模型功能。

上下文窗口配置

尖括号中的第一个值指定了最大上下文窗口 token 数量

能力标志

标志映射到描述
fcabilities.functionCall函数调用支持
visionabilities.vision图像识别
reasoningabilities.reasoning推理能力
searchabilities.search网页搜索集成
fileabilities.files文件上传支持
imageOutputabilities.imageOutput图像生成

示例

能力解析逻辑

来源: src/utils/parseModels.ts60-96 docs/self-hosting/advanced/model-list.mdx29-58

部署名称

某些提供商(Azure OpenAI、火山引擎、通义千问)支持使用 -> 语法设置部署名称,以将模型 ID 映射到特定的部署。

语法

提供商支持

  • Azure OpenAI: 将 OpenAI 模型 ID 映射到 Azure 部署名称
  • 火山引擎: 将模型 ID 映射到火山引擎部署 ID
  • 通义千问: 将模型 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

配置示例

常见模式

移除所有并添加特定模型

添加具有功能的自定义模型

移除不需要的模型

重命名现有模型

Azure OpenAI 示例

此配置

  1. 移除所有默认 Azure 模型 (-all)
  2. gpt-4o 模型映射到 Azure 部署 id1,显示名称为 "GPT-4o"
  3. gpt-4o-mini 模型映射到 Azure 部署 id2,显示名称为 "GPT 4o Mini"
  4. o1-mini 模型映射到 Azure 部署 id3,显示名称为 "OpenAI o1-mini"

真实世界的复杂示例

这将创建一个精心策划的模型列表,其中包含

  • 具有视觉和函数调用功能的 GPT-4o Mini
  • 具有视觉和函数调用功能的 GPT-4o
  • 具有推理能力的 O1 Mini
  • 具有多种功能的自定义 Claude 模型

来源: src/utils/parseModels.test.ts510-656 src/server/routers/edge/config/index.test.ts31-128 docs/self-hosting/advanced/model-list.mdx40-47