← 文档中心

模型与 Provider

配置

DuoDuoCode 把模型来源抽象为 Provider。云端与本地共用一套接口,切换模型不需要改代码。

查看可用模型

duoduocode models              # 列出全部可用模型
duoduocode models ollama       # 只看某个 Provider 的模型

指定默认模型

配置文件中:

{
  "model": "deepseek/deepseek-chat",
  "small_model": "ollama/qwen2.5-coder:7b"
}

格式为 provider/modelsmall_model 用于生成会话标题、压缩上下文等轻量任务,指定一个便宜的小模型可以显著省钱。

运行时临时切换(TUI 内按 <leader>m,桌面端按 mod+')也能选模型。


本地推理框架

本地框架无需 API Key,DuoDuoCode 启动时会扫描下列默认端口,命中即自动加载该框架的模型列表:

框架默认地址
Ollamahttp://localhost:11434/v1
LM Studiohttp://localhost:1234/v1
llama.cpphttp://localhost:8080/v1
vLLMhttp://localhost:8000/v1
LMDeployhttp://localhost:23333/v1
SGLanghttp://localhost:30000/v1
MLXhttp://localhost:8080/v1
TGIhttp://localhost:8080/v1

模型通过各框架的 /v1/models 接口发现,因此任何暴露 OpenAI 兼容端点的推理服务都能接入。

如果你想让扫描覆盖更多端口(例如局域网共享的 GPU 机器),可在配置中扩展扫描端口:

{
  "provider": {
    "ollama": {
      "options": {
        "baseURL": "http://192.168.1.50:11434/v1"
      }
    }
  }
}

云端 Provider

除内置的 DeepSeek 外,任何 OpenAI 兼容接口都能通过配置接入。API Key 的读取按以下顺序

  1. 环境变量 —— 最高优先级。每个 Provider 声明自己读取哪些变量名(如 DEEPSEEK_API_KEY)。
  2. 登录凭据 —— 通过 duoduocode providers login 写入的 auth.json(位于数据目录)。
  3. 配置文件 —— provider.<id>.options.apiKey,支持 {env:VAR} 插值。

用这条命令查看当前哪些凭据已生效:

duoduocode providers list

交互式登录:

duoduocode providers login     # 按提示选择 Provider 并填入 Key
duoduocode providers logout    # 清除凭据

接入自定义 Provider

{
  "provider": {
    "my-gateway": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My Gateway",
      "env": ["MY_GATEWAY_KEY"],
      "options": {
        "baseURL": "https://gateway.example.com/v1",
        "apiKey": "{env:MY_GATEWAY_KEY}"
      }
    }
  }
}

字段说明:

字段说明
env该 Provider 依次尝试读取的环境变量名列表
options.baseURLOpenAI 兼容端点地址
options.apiKey密钥,建议用 {env:...} 插值而非明文
options.timeout请求超时(毫秒)
options.chunkTimeout流式分块超时(毫秒)

设置后即可用 my-gateway/<model-id> 引用该 Provider 下的模型。


启停 Provider

只想启用某几个 Provider(白名单,设置后其余全部不加载):

{
  "enabled_providers": ["deepseek", "ollama"]
}

或者屏蔽个别 Provider(黑名单):

{
  "disabled_providers": ["copilot"]
}

两者可同时使用:先按白名单筛选,再剔除黑名单中的项。


常见问题

本地模型没有被发现

确认推理服务已启动,并且监听在默认端口上(见上表)。若使用非默认端口,需在配置中显式指定 baseURL

想让代码完全不出本机

只使用本地推理框架,不配置任何云端 Provider,并配合 disabled_providers 屏蔽云端来源。此时所有请求都发往本机或局域网。

模型列表是快照还是会实时拉取

两者都有:内置 DeepSeek 的模型列表随版本附带,本地框架则在启动时实时探测 /v1/models。你也可以用 DUODUO_MODELS_URLDUODUO_MODELS_PATH 指定自有的模型列表来源。