Files
lobehub__lobehub/docs/self-hosting/advanced/model-list.mdx
YuTengjing 191f3fe776 📝 docs: fix outdated content across the docs site (#16964)
* 📝 docs: fix outdated content across the docs site

Audited docs/ against the current codebase and fixed stale content that
drifted after major refactors (Clerk/NextAuth → Better Auth, src/server →
apps/server, src/{config,envs,locales} → packages/*, model-bank updates).

- self-hosting/auth: mark removed NextAuth/Clerk pages with deprecation
  warnings; fix microsoft/zitadel alias claims and the Logto callback path
- environment-variables & advanced: correct wrong defaults (S3_SET_ACL,
  AI_IMAGE_DEFAULT_IMAGE_NUM, index/proxy URLs), drop non-existent env vars
  and fictional feature flags, fix OIDC config guidance
- development: update refactored paths, Better Auth, .mjs configs, remove
  the MSW section (msw is not a dependency)
- providers & model examples: replace retired model ids with in-bank ones;
  fix comfyui frontmatter corruption
- usage: rename Moderator→Orchestrator, GTD→Task, correct shortcut keys,
  channel capability tables, Feishu/Lark WebSocket mode
- platform/migration: fix dead links, docker service name, npx/npm → bun

EN and zh-CN pairs updated together.

* 📝 docs: fix Logto callback path and AUTH_SECRET deprecation guidance

- Revert Logto/Sealos callback URLs to /api/auth/callback/logto to match
  the runtime SSO redirectURI override
- Narrow legacy auth Callout: AUTH_SECRET remains required for Better Auth;
  mark NEXT_AUTH_SECRET as deprecated in zh-CN

* 📝 docs: refresh agent skills for locales, env, auth, and agentRun paths

Align OSS agent guidance with post-refactor layout:
- packages/locales/src/default + bun run i18n
- packages/env/src for env schemas (@/envs alias)
- spa-auth shell + src/routes/auth segments
- chat agentRun/transports/hetero instead of aiChat

* 📝 docs: document APP_URL as required for Better Auth base URL

Self-hosted auth uses appEnv.APP_URL as baseURL, not request-header
auto-detection. NEXT_PUBLIC_AUTH_URL remains deprecated.

* 📝 docs: note self-host search provider setup for web search

Built-in lobe-web-browsing needs no client plugin, but self-hosted
servers still require SEARCH_PROVIDERS / SEARXNG_URL (default SearXNG).

* 📝 docs: point feature guide welcome UI at AgentHome

Opening message/questions on the agent chat page live in
src/features/AgentHome, not Onboarding WelcomeMessage.
2026-07-10 17:50:03 +08:00

152 lines
6.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Customizing Provider Model List in LobeHub for Deployment
description: >-
Learn how to customize the model list in LobeHub for deployment with the
syntax and extension capabilities
tags:
- LobeHub
- model customization
- deployment
- extension capabilities
---
# Model List
LobeHub supports customizing the model list during deployment. This configuration is done in the environment for each [model provider](/docs/self-hosting/environment-variables/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, Azure AI, Qwen, Spark, Volcengine (and its coding plan), and Kimi Coding Plan.
For example: `+qwen-7b-chat,+glm-6b,-gpt-3.5-turbo,gpt-4-turbo=gpt-4o`
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-turbo` as `gpt-4o`. 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-turbo=gpt-4o
```
This enables only gpt-3.5-turbo and gpt-4-turbo (displayed as gpt-4o) 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-2.5-flash=Gemini 2.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 |
| ------------- | -------------------------------------------------------- |
| `fc` | Function Calling |
| `vision` | Image Recognition |
| `imageOutput` | Image Generation |
| `reasoning` | Support Reasoning |
| `search` | Support Web Search |
| `video` | Video Comprehension |
| `file` | File 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-opus-4-5-20251101=Claude Opus 4.5<200000:vision:fc>,+claude-sonnet-4-5-20250929=Claude Sonnet 4.5<200000:vision:fc"
# Google
GOOGLE_API_KEY=...
GOOGLE_MODEL_LIST="+gemini-2.5-pro=Gemini 2.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