Back to Lobehub

Customizing Provider Model List in LobeHub for Deployment

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

2.1.566.1 KB
Original Source

Model List

LobeHub supports customizing the model list during deployment. This configuration is done in the environment for each model provider.

You can use + to add a model, - to hide a model, and use model name->deploymentName=display name<extension configuration> to customize the display name of a model, separated by English commas. The basic syntax is as follows:

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

The deploymentName ->deploymentName can be omitted, and it defaults to the latest model version. Currently, the model service providers that support ->deploymentName are: Azure, Volcengine and Qwen.

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

In the above example, it adds qwen-7b-chat and glm-6b to the model list, removes gpt-3.5-turbo from the list, and displays the model name of gpt-4-0125-preview as gpt-4-turbo. If you want to disable all models first and then enable specific models, you can use -all,+gpt-3.5-turbo, which means only enabling gpt-3.5-turbo.

-all: Hide all models

  • Description: -all means hiding all built-in models first. It’s usually combined with + to only enable the models you explicitly specify.
  • Example:
text
-all,+gpt-3.5-turbo,+gpt-4-0125-preview=gpt-4-turbo

This enables only gpt-3.5-turbo and gpt-4-turbo while hiding other models.

Extension Capabilities

Considering the diversity of model capabilities, we started to add extension configuration in version 0.147.8, with the following rules:

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

The first value in angle brackets is designated as the maxToken for this model. The second value and beyond are the model's extension capabilities, separated by colons :, and the order is not important.

Examples are as follows:

  • chatglm-6b=ChatGLM 6B<4096>: ChatGLM 6B, maximum context of 4k, no advanced capabilities;
  • spark-v3.5=讯飞星火 v3.5<8192:fc>: Xunfei Spark 3.5 model, maximum context of 8k, supports Function Call;
  • gemini-1.5-flash-latest=Gemini 1.5 Flash<16000:vision>: Google Vision model, maximum context of 16k, supports image recognition;
  • o3-mini=OpenAI o3-mini<200000:reasoning:fc>: OpenAI o3-mini model, maximum context of 200k, supports reasoning and Function Call;
  • qwen-max-latest=Qwen Max<32768:search:fc>: Qwen 2.5 Max model, maximum context of 32k, supports web search and Function Call;
  • gpt-4-all=ChatGPT Plus<128000:fc:vision:file>, hacked version of ChatGPT Plus web, context of 128k, supports image recognition, Function Call, file upload;
  • gemini-2.0-flash-exp-image-generation=Gemini 2.0 Flash (Image Generation) Experimental<32768:imageOutput:vision>, Gemini 2.0 Flash Experimental model for image generation, maximum context of 32k, supports image generation and recognition.

Currently supported extension capabilities are:

---Description
fcFunction Calling
visionImage Recognition
imageOutputImage Generation
reasoningSupport Reasoning
searchSupport Web Search
fileFile Upload (a bit hacky, not recommended for daily use)

Provider-Specific Examples

Azure OpenAI

Azure requires deployment name mapping using ->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<capabilities>
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 (Local Models)

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"

Multiple Providers Simultaneously

bash
# OpenAI — curated list
OPENAI_API_KEY=sk-...
OPENAI_MODEL_LIST=-all,+gpt-4o,+gpt-4o-mini

# Anthropic — long context backup
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"

Best Practices

Start with -all for a clean slate — Hide all default models, then explicitly add only the ones you want:

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

Use descriptive display names — Make model names user-friendly and meaningful to your users:

bash
OPENAI_MODEL_LIST="gpt-4o=GPT-4o (Recommended),gpt-4o-mini=GPT-4o Mini (Fast & Cheap)"

Test before production — Verify a new model configuration in a dev environment:

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

Troubleshooting

Model doesn't appear in the selector

  • Check for syntax errors (missing commas, mismatched angle brackets)
  • Ensure the provider itself is enabled (ENABLED_OPENAI=1, etc.)
  • If using -all, confirm you added the model with +
  • Check logs: docker logs lobehub | grep -i "model"

Model returns empty responses

  • Try adding /v1 suffix to the proxy URL: OPENAI_PROXY_URL=https://api.example.com/v1
  • Verify the model ID matches what the provider API expects exactly
  • Confirm the API key has access to that model

Extension capabilities not working

  • The maxToken value must be the first item inside < >: <8192:fc:vision> not <fc:vision>
  • Confirm the model actually supports the capability in the provider's API (LobeHub cannot enable capabilities the API doesn't provide)
  • Verify you are running a recent enough version of LobeHub