1. IntelliJ IDEA 2023.3 的 AI Assistant 到底卡在哪
IntelliJ IDEA 2023.3 是 JetBrains 在 2023 年底推的一个大版本,除了对 Java 21 的完整支持(虚拟线程、记录模式、switch 模式匹配、序列化集合),还正式把 AI Assistant 插件推到了台前。它能做什么?简单说就是在编辑器里直接对话、解释代码、生成注释、写单元测试、重构建议,甚至根据自然语言描述补全一段方法。适合谁?日常写 Java/Kotlin/Scala 的后端、Android、大数据开发者,尤其是已经在 IDEA 里泡了一整天、不想再切浏览器查文档的人。
但问题也很直接:AI Assistant 默认走的是 JetBrains 自己的 AI 服务,底层模型调用对地区有限制,国内网络环境下经常出现插件装上了、登录也过了,但一发请求就转圈或者报连接失败。更尴尬的是,它和 IDE 全家桶的授权体系并不完全是一套,很多人发现自己有 IDEA Ultimate 授权,AI Assistant 却依然提示需要单独开通。
我试过几种绕法,最后稳定下来的方案是:不跟 IDE 内置的 AI 服务死磕,而是把模型请求统一收敛到一个兼容 OpenAI 协议的中转层,用一套 Key 管住所有模型调用。这样 IDEA 里不管是 AI Assistant 还是第三方插件(比如 Continue、CodeGPT),都指向同一个地址和 Key,换模型只改一个配置项。下面就把这套配置骨架和踩坑过程完整写出来。
2. 前置准备:TaoToken 统一 Key 与 IDEA 侧要改什么
TaoToken 在这里扮演的角色是「统一入口」:你不需要在 IDEA 里分别填 OpenAI、Claude、Gemini 各自的 Key,也不需要为每个插件单独配一遍。它对外暴露的是 OpenAI 兼容的/v1/chat/completions接口,所以任何支持自定义 Base URL 的客户端都能接。
先做两件事:
第一,拿到统一 Key。访问官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后在控制台创建 API Key。这个 Key 就是后面所有配置里填的那一串。
第二,确认 API 根地址。接口地址是 https://taotoken.net/api ,注意这里不带任何查询参数,配置时不要画蛇添足加斜杠或路径。
IDEA 侧要动的地方有两块:一是 AI Assistant 插件本身的自定义模型入口(2023.3 版本里藏在 Settings 的 Tools 下),二是如果你用 Continue 这类开源插件,它有自己的config.json。本文重点给 AI Assistant 的配置骨架,同时附一份 Continue 的settings.json对照,因为很多人是两个一起用。
注意:IDEA 2023.3 的 AI Assistant 对自定义 Endpoint 的支持是逐步放开的,如果你的版本里找不到 Custom Model 选项,先升级到 2023.3.2 以上小版本,或者直接用 Continue 插件走同一套 Key。
3. 可复制配置:settings.json 骨架与 Key 填写位置
先给 Continue 插件的配置,因为它的结构最清晰,能直接看到 Base URL、Key、Model 三个关键字段的对应关系。在项目根目录或用户目录下建.continue/config.json:
{ "models": [ { "title": "TaoToken Unified", "provider": "openai", "model": "gpt-4o-mini", "apiKey": "sk-你的TaoToken统一Key", "apiBase": "https://taotoken.net/api/v1" } ], "tabAutocompleteModel": { "title": "TaoToken Autocomplete", "provider": "openai", "model": "gpt-4o-mini", "apiKey": "sk-你的TaoToken统一Key", "apiBase": "https://taotoken.net/api/v1" } }这里有几个容易填错的点。apiBase要写到/v1,因为 OpenAI 兼容客户端会自动拼/chat/completions;如果你只写到https://taotoken.net/api,请求会变成/api/chat/completions,直接 404。model字段填你想用的模型名,TaoToken 侧支持多种模型,换模型只改这一行,Key 和地址不动。
再给 IDEA AI Assistant 的自定义模型配置。2023.3 里路径是Settings → Tools → AI Assistant → Custom Models,如果界面里没有可视化表单,就手动编辑 IDE 配置目录下的ai-assistant.xml(不同系统路径不同,macOS 在~/Library/Application Support/JetBrains/IntelliJIdea2023.3/options/):
<application> <component name="AIAssistantSettings"> <option name="customEndpoint" value="https://taotoken.net/api/v1" /> <option name="customApiKey" value="sk-你的TaoToken统一Key" /> <option name="customModel" value="gpt-4o-mini" /> <option name="useCustomModel" value="true" /> </component> </application>改完重启 IDEA。如果你用的是 Continue,改完config.json后在插件面板点 Reload 即可,不用重启整个 IDE。
| 配置项 | 填写值 | 说明 |
|---|---|---|
| Base URL | https://taotoken.net/api/v1 | 必须带 /v1 |
| API Key | sk-开头的一串 | 控制台创建,勿泄露 |
| Model | gpt-4o-mini 等 | 按需切换 |
| 协议 | OpenAI Compatible | 不要选 Anthropic 原生 |
4. 验证请求:确认 IDEA 里真的通了
配置写完别急着写代码,先做一次最小验证。最直接的办法是在终端用 curl 打一发,确认 Key 和地址本身没问题:
curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoToken统一Key" \ -d '{ "model": "gpt-4o-mini", "messages": [{"role": "user", "content": "只回复两个字:通了"}] }'正常返回里会有choices[0].message.content,内容是「通了」。如果这一步就失败,别去 IDEA 里折腾,先解决 Key 或地址问题。
curl 通了之后,回到 IDEA。打开 Continue 面板,输入「解释当前选中的方法」,看是否流式返回。AI Assistant 那边,把光标放到一个方法上,右键选 AI Actions → Explain Code,观察右下角是否有进度条和结果。实测下来,第一次请求会慢一点,因为要建立连接,后续就正常了。
如果 IDEA 里一直转圈但 curl 是通的,八成是 IDE 的代理设置或 SSL 证书问题。检查Settings → Appearance & Behavior → System Settings → HTTP Proxy,选 No proxy 或 Auto-detect,别手动填了失效的代理。
5. 本篇常见报错排查
报错一:401 Unauthorized。九成是 Key 填错或复制时带了空格。检查apiKey字段,确保是sk-开头且没有换行。另外确认 Key 没有在控制台被禁用或额度耗尽。
报错二:404 Not Found。地址写错了。最常见的是apiBase只写到https://taotoken.net/api,少了/v1。改成https://taotoken.net/api/v1即可。
报错三:Connection timed out。网络层没通。先 curl 测,如果 curl 也超时,检查本机 DNS 和防火墙;如果 curl 通而 IDE 不通,检查 IDE 的代理设置,关掉手动代理。
报错四:Model not found。model字段填了一个 TaoToken 侧不支持的模型名。换成文档里列出的可用模型,或者先用gpt-4o-mini验证链路。
报错五:AI Assistant 里找不到 Custom Model 选项。版本太旧。升级 IDEA 到 2023.3.2 以上,或者直接用 Continue 插件,配置方式见第 3 节。
报错六:流式返回中断。通常是网络抖动或超时设置太短。Continue 的config.json里可以加"requestOptions": {"timeout": 60000},把超时放宽到 60 秒。
6. 后续怎么用:把统一 Key 铺到更多入口
链路通了之后,这套 Key 和地址可以复用到很多地方。比如你在 IDEA 里跑 Claude Code 做长任务编码,或者用 Coding Plan 管理多个 Agent 的模型调用,都可以指向同一个https://taotoken.net/api/v1。需要新建或轮换 Key 时,去控制台操作:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。想先试试模型对话效果,不写代码直接聊:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。接入文档里有各语言 SDK 的示例:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。如果你打算长期在 IDE 里做编码 Agent,Coding Plan 的入口在:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
最后说个实际经验:IDEA 的 AI 插件配置改完后,有时候缓存不会立刻刷新,表现为改了 Key 但请求还用旧的。这时候别反复改配置,直接File → Invalidate Caches → Invalidate and Restart,一次就好。另外,把config.json和ai-assistant.xml纳入版本控制时,记得把 Key 抽成环境变量,别把sk-开头的字符串提交到仓库里。