Continue.dev 是很多开发者在 VS Code、JetBrains 里使用的代码 Agent / IDE Assistant。它通过 OpenAI-compatible Provider 接入 DeepAI API 中转站 时,最迷惑的一类问题是:聊天窗口能正常回答,代码编辑和自动补全却报 405 或 404。根因往往不是 Key,也不是 DeepAI 中转站不可用,而是不同功能走了不同接口路径。

/chat/completions,避免旧 /completions 导致 405/404。GitHub Issue 背景:Chat 成功,Edit / Autocomplete 失败
这个问题来自 Continue Issue #3620。用户在 Windows 10、Continue 0.8.66、VS Code 1.96.2 环境下,把 Open-WebUI 作为 OpenAI-compatible API,配置了 provider: "openai" 和自定义 apiBase。结果 Chat 正常请求 /chat/completions,但代码编辑和自动补全却请求 /completions,而 Open-WebUI 不支持这个旧接口,于是返回 405 Method Not Allowed。
Error streaming diff:
HTTP 405 Method Not Allowed from http://.../api/completions
{"detail":"Method Not Allowed"}
Issue 最后关闭时,作者补充说自己没有读到 OpenAI Provider 文档的末尾:只需要在配置里加一行,就能强制使用 /chat/completions 而不是旧 /completions。
核心修复:useLegacyCompletionsEndpoint 设为 false
Continue 官方 OpenAI Provider 文档给出的关键配置是:
"useLegacyCompletionsEndpoint": false
用于 DeepAI API 中转站时,一个旧版 config.json 示例可以写成:
{
"models": [
{
"title": "DeepAI API Relay",
"provider": "openai",
"model": "your-model-id",
"apiKey": "YOUR_DEEPAI_API_KEY",
"apiBase": "https://api.deepai.wang/v1",
"useLegacyCompletionsEndpoint": false
}
],
"tabAutocompleteModel": {
"title": "DeepAI Autocomplete",
"provider": "openai",
"model": "your-model-id",
"apiKey": "YOUR_DEEPAI_API_KEY",
"apiBase": "https://api.deepai.wang/v1",
"useLegacyCompletionsEndpoint": false
}
}
如果你使用新版 YAML 配置,思路相同:在对应模型条目里加入 useLegacyCompletionsEndpoint: false。关键不是 JSON 还是 YAML,而是 Chat、Edit、Autocomplete 所用的模型配置都要覆盖到。
为什么聊天能通不代表补全能通
代码 Agent 工具通常不是只有一个“聊天接口”。Continue.dev 里至少有这些功能角色:
- Chat:用户在侧边栏对话,通常走
/chat/completions。 - Edit:根据选中代码生成 diff 或补丁,可能走独立的编辑链路。
- Autocomplete:输入时自动补全,常常使用单独的
tabAutocompleteModel。 - Agent / Tools:更复杂的场景还会涉及工具调用、上下文检索和多轮规划。
因此,Chat 成功只能说明主模型配置能连通 DeepAI API 中转站;它不能证明 Edit 和 Autocomplete 也用了同一条路径。排查时一定要看实际请求路径和功能角色,而不是只看界面里“模型可用”。
DeepAI API 中转站场景下的排查步骤
- 确认
apiBase写到https://api.deepai.wang/v1,不要写到/chat/completions。 - 先测试 Continue Chat,确认 DeepAI API Key、模型 ID 和路由可用。
- 再测试 Edit 和 Autocomplete,观察 DeepAI 中转站日志中的请求路径。
- 如果日志出现
/v1/completions且返回 404/405,给对应模型配置加上useLegacyCompletionsEndpoint: false。 - 重启 IDE 或刷新 Continue 配置,再测试同一段代码编辑和补全。
如果后台日志没有任何请求,问题还在本地配置、代理或扩展没有加载新配置;如果后台出现 /v1/chat/completions 且返回模型错误,再继续看模型 ID、上下文长度、工具调用或请求体参数。
常见误区
- 只改 models,不改 tabAutocompleteModel:Chat 修好了,但自动补全仍然走旧路径。
- 把 apiBase 写太深:Base URL 应到
/v1,路径由客户端拼接。 - 把 405 当成鉴权错误:405 通常是方法或路径不支持,不是 Key 错。
- 忽略 IDE 缓存:改完配置后需要刷新 Continue 或重启 IDE,否则旧配置仍可能生效。
- 混用多个 Provider:同一个项目里同时配 OpenAI、OpenAI-compatible、本地模型时,要给每个功能角色明确模型来源。
为什么 API 中转站日志很关键
没有日志时,这类问题看起来像“Continue 不稳定”或“模型不兼容”。有了 DeepAI API 中转站日志,就可以按路径拆开看:
/v1/chat/completions返回 200:聊天链路正常。/v1/completions返回 404/405:客户端走了旧 completions 路径。- 后台没有请求:IDE 扩展没有打到中转站,继续查本地配置。
- 路径正确但模型报错:再看模型 ID、上下文、参数、流式输出或工具调用。
这正是 API 中转站的实际价值:它不仅统一 Key 和模型路由,还能把“客户端路径错误”和“模型服务错误”分开。对站长来说,这比单纯告诉用户“换个模型试试”可靠得多。
适用场景
- Continue.dev、VS Code 代码助手、JetBrains AI 编程插件接入 OpenAI-compatible 网关。
- DeepAI API 中转站作为统一模型入口,后端模型只支持 Chat Completions。
- 聊天功能正常,但 Edit、Autocomplete、diff 生成失败。
- 日志显示客户端访问了
/v1/completions,而不是/v1/chat/completions。
参考资料
- Continue Issue #3620:Edit and autocomplete not using /chat/completions
- Continue OpenAI Provider 文档
- Cline CLI 接入 DeepAI API 中转站:OpenAI Compatible Base URL 配置
- DeepAI API 中转站教程导航
总结
Continue.dev 接入 DeepAI API 中转站时,如果 Chat 正常但 Edit 和 Autocomplete 报 405/404,重点检查它们是否误走了旧 /completions 接口。给相关模型配置加入 useLegacyCompletionsEndpoint: false,并确保 apiBase 是 https://api.deepai.wang/v1,通常就能让代码编辑和自动补全恢复到 /chat/completions 链路。上线前用 DeepAI 中转站日志逐项验证 Chat、Edit、Autocomplete,能大幅减少代码 Agent 接入时的盲排成本。