Skip to content

AI 供应商与模型 ​

AiCode 自身不提供模型,需先接入一个模型服务。入口在「设置 → AI 供应商」。

添加一个供应商 ​

点右上角 + 从底部弹出添加面板:

  • 第一项是自定义供应商(从空白手动配置)。
  • 下面是内置官方预设,选中后自动填入名称、上游格式与 Base URL,进编辑页补上 API Key 即可使用,各项也可手动修改。

预设列表随版本更新,以实际显示为准。

自定义时填以下四项:

  • 名称:易识别的别名,例如「我的中转」。列表按名称自动匹配品牌图标。
  • 上游格式:OpenAI / Anthropic / Gemini 三选一,决定请求协议。第三方中转站一般选 OpenAI。
  • API Key:密钥,形如 sk-xxx。粘贴时多带的空格或换行会在保存时自动清理。
  • Base URL:API 根地址。留空会按上游格式自动填官方地址;用第三方中转时填中转服务的地址,带不带 /v1 都可以。

配好后切到「模型」标签拉取模型,即可回主页开始对话。

管理供应商列表 ​

列表每行显示名称、上游格式、模型数量和启用状态。

  • 点一行进入编辑页。修改后点左上角返回箭头或按系统返回键,配置会自动保存;未修改时直接返回,不重复保存。
  • 左滑一行露出红色删除按钮。
  • 长按名称或上游格式区域拖动调整顺序,重启后保持。

多 Key 模式 ​

版本说明

多 Key 模式从 1.11.0 起提供。

如果持有同一服务的多个密钥,可在编辑页的「选项」里打开多 Key 模式:密钥不可用时自动切到下一个并重发本次请求。打开后单 Key 输入框隐藏,密钥统一在「多 Key 管理」页维护(原本填的那个会成为列表第一项)。

管理页分三块:

Key 列表:每条 Key 是一张可折叠卡片,折叠时显示序号与掩码预览,点击展开后可编辑该条 Key 并设置调度权重(默认 1,最大 1,000,000;≤ 0 表示保留但不参与调度)。左滑删除,长按卡片头部拖动排序(重启后保持),眼睛图标切换明文/掩码。权重只影响轮询策略——数值越大,新会话分到该 Key 的比例越高(按权重平滑分配,如 1:3 约为 1 比 3)。

取用策略:

  • 顺序:始终用靠前的 Key,失败达到阈值才切下一个。
  • 轮询:新会话按权重比例轮流起步,用于均衡多个 Key 的额度消耗。

为保住服务端 Prompt 缓存,单会话内默认保持同一个 Key,只在当前 Key 不可用时才切。

失败切换:

  • 自动切换状态码:命中这些 HTTP 状态码时立即切换并重发,默认 401,402,403,429;留空使用默认值,也可按需增删(逗号分隔)。
  • 冷却时长:被切走的 Key 隔多久重新参与候选,默认 5 分钟,也可设为不冷却。

一次请求依次尝试列表里的 Key,全部失败才报错(提示「N 个 Key 均失败」)。流式回复若已开始输出则不再重发(避免重复输出),只切换后续请求用的 Key;触发切换时聊天区出现「已切换到第 N/M 个 Key」提示。

鉴权失败、权限不足、限流、余额或额度用尽视为「密钥不可用」,会触发切换;服务器 5xx、超时、网络不可达换 Key 也无法解决,仍走原有网络重试。若所有 Key 都在冷却中,会直接报错提示稍后重试。

App 重启后回到第一个 Key,冷却记录清空。

选项 ​

编辑页的「选项」分组里还有:

  • 完整 URL:开启后 Base URL 即完整请求地址,不再自动拼接默认路径。
  • 新版协议端点:上游格式为 OpenAI 时可开启「Response API (新版)」,Gemini 时可开启「Interactions API (新版)」。默认关闭,确认服务支持对应新协议时再开。

自定义请求头 ​

给该供应商的所有请求追加 Header,完全覆盖同名默认头(如填 User-Agent 就替换掉默认 UA)。仅少数中转网关需要。值里可用的占位符:

占位符说明
{{SESSION_ID}}当前会话 id
{{API_KEY}}本次实际取用的 Key

自定义面板脚本 ​

让供应商在输入框上方显示余额或用量卡片。脚本放在 ~/.aicode/scripts/ 下,支持 Python、Bash、Node,可在编辑页点「运行测试」看输出。

脚本参数以 AICODE_KEY_<KEY> 环境变量注入(KEY 转大写,仅保留字母、数字与下划线)。值里可用的占位符:

占位符说明
{{PROVIDER_API_KEY}}当前生效的 API Key
{{PROVIDER_ID}}供应商记录 ID
{{PROVIDER_NAME}}供应商名称
{{PROVIDER_TYPE}}上游格式(OPENAI / ANTHROPIC / GEMINI)
{{BASE_URL}}供应商 Base URL
{{DEFAULT_MODEL}}默认模型
{{SELECTED_MODEL}}当前选中的模型
{{MODEL}}实际生效的模型(优先选中,其次默认)

脚本能读到的环境变量(Token、会话状态、工作区、供应商等)与卡片 JSON 结构,见自定义面板。

模型管理 ​

切到编辑页的「模型」标签页。

拉取模型:点「拉取模型」从服务端同步可用列表,结果按品牌分组、可搜索。每个模型旁有 Image(支持图片输入)、Tools(支持工具调用)标签,↑ 后是上下文长度、↓ 后是最大输出。弹窗右上角「全部添加」可一键把新模型批量加入当前供应商。

拉取成功后会自动对齐本地列表:远端已不存在的模型会从列表移除(拉取失败或返回空列表时不动本地列表),手动添加但不在远端结果里的模型也会被移除。不希望如此可在偏好设置里关掉「拉取模型后自动移除无效模型」。

批量操作与多选:模型列表非空时,编辑页顶栏右侧出现多选按钮,点击进入批量选择模式:

  • 全选 / 取消全选:一键勾选全部模型或清空。
  • 批量测试:对选中模型依次发起连通性测试。
  • 批量删除:二次确认后批量删除。
  • 点左上角返回箭头或按返回键退出。

手动添加:中转站模型名有时拉不全,可点 + 手动输入。编辑弹窗里可自定义该模型:

  • 总上下文窗口:输入与输出合计的容量,影响何时触发上下文自动压缩。
  • 输入窗口:模型可接收的最大输入长度,与总上下文窗口独立设置。
  • 输出窗口:单次回复的最大长度。
  • 价格:输入 / 输出 / 缓存读取 / 缓存写入四档,单位是美元每百万 token,用于费用统计。
  • 能力开关:图片输入、图片输出、工具调用、推理能力。

窗口值需填写有效的正整数,也可留空使用自动识别值;填写 0、负数、小数或超出范围的整数时会显示提示,且无法保存。编辑已有模型时,只改价格不会改变原有的总上下文、输入和输出窗口。

手动填的值优先;未填的会回退到自动识别结果,自定义设置始终对应当前供应商下的原模型名。自动识别优先匹配完整名称,再尝试忽略大小写;仍未找到时尝试去掉 -thinking、-preview、-high 这类常见后缀,并尝试去掉供应商品牌前缀。上述尝试均失败后,才去掉最后一个 - 及其后面的部分匹配一次,不会反复截短名称。

测试:每个模型行有「测试」按钮,发一次真实请求验证连通性,结果显示在行下方。

排序:长按模型名称区域拖动调整顺序,保存后立即生效(模型选择弹窗与默认模型列表都按此顺序),重启后保持。

删除:模型行左滑删除。若删掉的模型正在被使用(当前选中模型、新会话默认模型、识图 / 生图 / 压缩 / 标题总结等专用模型,或某历史会话绑定的模型),相关选择自动回退到默认模型。

思考强度 ​

聊天输入框上的思考强度按钮决定模型的推理档位。能识别模型支持的档位时只列出这几档;识别不出(模型无档位信息,或中转站改了模型名)则列出全部档位——关闭 / 极低 / 低 / 中 / 高 / 极高 / 最高,由你判断。选择会记住,下次新会话使用该模型时沿用。

基于 GPL-3.0 协议开源