Back to Lobehub

LobeHub 自定义模型服务商模型列表及扩展能力配置

docs/self-hosting/advanced/model-list.zh-CN.mdx

2.1.565.5 KB
Original Source

Model List

LobeHub 支持在部署时自定义模型列表,详情请参考 模型提供商

你可以使用 + 增加一个模型,使用 - 来隐藏一个模型,使用 模型名->部署名=展示名<扩展配置> 来自定义模型的展示名,用英文逗号隔开。通过 <> 来添加扩展配置。基本语法如下:

text
id->deploymentName=displayName<maxToken:vision:reasoning:search:fc:file:imageOutput>,model2,model3

部署名->deploymentName可以省略,默认为最新版本的模型。当前支持->deploymentName的模型服务商有:Azure、Volcengine 和 Qwen。

例如: +qwen-7b-chat,+glm-6b,-gpt-3.5-turbo,gpt-4-0125-preview=gpt-4-turbo

上面示例表示增加 qwen-7b-chatglm-6b 到模型列表,而从列表中删除 gpt-3.5-turbo,并将 gpt-4-0125-preview 模型名字展示为 gpt-4-turbo。如果你想先禁用所有模型,再启用指定模型,可以使用 -all,+gpt-3.5-turbo,则表示仅启用 gpt-3.5-turbo

-all:隐藏所有模型

  • 描述:-all 表示先隐藏所有内置模型。通常与 + 组合使用,用于只启用你显式指定的模型。
  • 示例:
text
-all,+gpt-3.5-turbo,+gpt-4-0125-preview=gpt-4-turbo

仅启用 gpt-3.5-turbo 和 gpt-4-turbo,而其他模型都隐藏。

扩展能力

考虑到模型的能力多样性,我们在 0.147.8 版本开始增加扩展性配置,它的规则如下:

shell
id->deploymentName=displayName<maxToken:vision:reasoning:search:fc:file:imageOutput>

尖括号第一个值约定为这个模型的 maxToken 。第二个及以后作为模型的扩展能力,能力与能力之间用冒号 : 作为分隔符,顺序不重要。

举例如下:

  • chatglm-6b=ChatGLM 6B<4096>:ChatGLM 6B,最大上下文 4k,没有高阶能力;
  • spark-v3.5=讯飞星火 v3.5<8192:fc>:讯飞星火 3.5 模型,最大上下文 8k,支持 Function Call;
  • gemini-1.5-flash-latest=Gemini 1.5 Flash<16000:vision>:Google 视觉模型,最大上下文 16k,支持图像识别;
  • o3-mini=OpenAI o3-mini<200000:reasoning:fc>:OpenAI o3-mini 模型,最大上下文 200k,支持推理及 Function Call;
  • qwen-max-latest=Qwen Max<32768:search:fc>:通义千问 2.5 Max 模型,最大上下文 32k,支持联网搜索及 Function Call;
  • gpt-4-all=ChatGPT Plus<128000:fc:vision:file>,hack 的 ChatGPT Plus 网页版,上下 128k ,支持图像识别、Function Call、文件上传;
  • gemini-2.0-flash-exp-image-generation=Gemini 2.0 Flash (Image Generation) Experimental<32768:imageOutput:vision>,Gemini 2.0 Flash 实验模型,最大上下文 32k,支持图像生成和识别

目前支持的扩展能力有:

---描述
fc函数调用(function calling)
vision视觉识别
imageOutput图像生成
reasoning支持推理
search支持联网搜索
file文件上传(比较 hack,不建议日常使用)

提供商专属示例

Azure OpenAI

Azure 需要使用 ->deploymentName 映射部署名称:

bash
AZURE_ENDPOINT=https://your-resource.openai.azure.com
AZURE_API_KEY=your-api-key
AZURE_API_VERSION=2024-02-01
# id->deploymentName=displayName<能力>
AZURE_MODEL_LIST="gpt-35-turbo->my-gpt35-deploy=GPT-3.5 Turbo<16000:fc>,gpt-4->my-gpt4-deploy=GPT-4<128000:fc:vision"

Ollama(本地模型)

bash
OLLAMA_PROXY_URL=http://localhost:11434
OLLAMA_MODEL_LIST="+llama3:8b=Llama 3 8B<8192>,+mistral:latest=Mistral<8192:fc>,+codellama:34b=Code Llama 34B<16000"

同时配置多个提供商

bash
# OpenAI — 精选列表
OPENAI_API_KEY=sk-...
OPENAI_MODEL_LIST=-all,+gpt-4o,+gpt-4o-mini

# Anthropic — 长上下文备选
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_MODEL_LIST="+claude-3-opus-20240229=Claude 3 Opus<200000:vision:fc>,+claude-3-5-sonnet-20241022=Claude 3.5 Sonnet<200000:vision:fc"

# Google
GOOGLE_API_KEY=...
GOOGLE_MODEL_LIST="+gemini-1.5-pro=Gemini 1.5 Pro<1000000:vision:fc"

最佳实践

使用 -all 从零开始 — 隐藏所有默认模型,再明确添加你需要的模型:

bash
OPENAI_MODEL_LIST=-all,+gpt-4o,+gpt-4o-mini

使用描述性的展示名称 — 让模型名称对用户更友好、更清晰:

bash
OPENAI_MODEL_LIST="gpt-4o=GPT-4o(推荐),gpt-4o-mini=GPT-4o Mini(快速省钱)"

上生产前先测试 — 在开发环境中验证新的模型配置:

bash
docker run -d -p 3210:3210 \
  -e OPENAI_API_KEY="sk-test..." \
  -e OPENAI_MODEL_LIST="-all,+gpt-4o" \
  --name lobehub-test lobehub/lobehub

故障排查

模型未出现在选择器中

  • 检查语法错误(逗号缺失、尖括号不匹配)
  • 确认提供商本身已启用(ENABLED_OPENAI=1 等)
  • 若使用了 -all,确认已用 + 添加该模型
  • 查看日志:docker logs lobehub | grep -i "model"

模型返回空响应

  • 尝试在代理 URL 末尾加上 /v1OPENAI_PROXY_URL=https://api.example.com/v1
  • 验证模型 ID 与提供商 API 期望的完全一致
  • 确认 API Key 有权访问该模型

扩展能力不生效

  • maxToken 值必须是 < > 内的第一个值:<8192:fc:vision> 而非 <fc:vision>
  • 确认该模型在提供商 API 中实际支持该能力(LobeHub 无法开启 API 本身不提供的能力)
  • 确认你运行的是足够新的 LobeHub 版本