渠道与模型
模型接入分两层:渠道(channel) 管「连到哪、用什么协议」,模型(model) 挂在渠道下,管「具体哪个模型、什么能力、怎么计价」。两层全部在后台维护、存数据库,增删改零代码发版,保存后即生效。
- 渠道页:「模型 > 渠道」(
/admin/channels) - 模型页:「模型 > 模型」(
/admin/models),每个模型有独立的设置页/admin/models/:id
渠道
一个渠道 = 一个 Base URL + 一个 API Key + 一种协议类型。同类型可以建多个渠道(例如两个 openai 渠道分别指向不同网关、不同 Key)。
渠道字段
| 字段 | 说明 |
|---|---|
| 名称 | 必填,后台内部标识,如 Anthropic production |
| 类型 | openai / claude / gemini,决定请求体、工具调用和流式格式用哪家协议 |
| 接口格式 | 仅 openai 类型出现:chat(经典 Chat Completions)或 responses(Responses API),建渠道时选定,该渠道下所有对话模型统一使用 |
| Base URL | 留空使用厂商默认端点;可指向官方端点、自有统一网关或任意兼容端点 |
| API Key | 加密存储,API 响应不回显;编辑时留空表示保留原密钥 |
| 启用 | 关闭后该渠道下的模型不再可用 |
接入 DeepSeek、one-api/new-api 网关、自部署推理服务等「OpenAI 兼容」上游时:类型选 openai,接口格式通常选 chat(很多第三方兼容端点只实现了 Chat Completions),Base URL 填该服务的地址。也就是说,常见的四类上游(Anthropic、OpenAI、Gemini、OpenAI 兼容)分别对应 claude、openai(responses 或 chat)、gemini、openai(chat)。
若端点实际只支持 Chat Completions,却选了 responses 格式,工具调用与流式会整体出错。对渠道端点(含中转网关)的最低要求是透传各家原生对话端点的 function calling 字段与 SSE 流式;建议完整透传原生协议,否则思考块、缓存断点等会丢失。
渠道的验证与管理
- 验证:渠道页没有单独的「测试」按钮。建完渠道并挂上模型后,建议直接在聊天界面对该模型发一条会触发工具调用的流式消息(例如让它联网搜索),一次验证协议、密钥与工具透传三件事。
- 排序:列表支持拖拽排序(或行内上移/下移),顺序会持久化。
- 删除:删除渠道会级联删除其下所有模型,有确认弹窗。
- 列表行上会显示类型徽章、接口格式徽章、「已停用」徽章,以及 Base URL 与「已设密钥 / 未设置密钥」状态。
模型
「新建模型」对话框只要求创建必需项:所属渠道、类型(kind)、显示名、request_id、图标、简介;其余全部在设置页调整。新建的模型默认:启用、工具模式 native、视觉开、流式开、深度研究开。
点击模型行的齿轮图标进入设置页,按分区说明如下。
基本信息
| 字段 | 说明 |
|---|---|
| 渠道 | 模型所属的主渠道 |
| 兜底渠道 | 可选,见下方兜底渠道一节 |
| 类型(kind) | chat(对话)/ image(图片生成)/ embedding(向量嵌入)。类型决定后续显示哪些分区:对话行为仅 chat,向量维度仅 embedding,单张价格与生成超时仅 image |
| 显示名 | 用户在模型选择器里看到的名称,如 Claude Opus 4.8 |
| request_id | 实际发给上游 API 的模型 ID(与内部 ID 解耦),如 claude-opus-4-8 |
| 图标 | 三种写法任选:留空(用默认图标)、emoji 字符、图片 URL;也可以直接上传图标文件 |
| 简介 | 一行文字,显示在模型选择器中 |
| 启用 | 关闭后对用户不可见 |
| 显示顺序 | 数字越小越靠前 |
上传仅接受 PNG、JPEG、SVG,单文件不超过 256 KB(前端预检,服务端二次校验)。图标在选择器里以约 16 到 32 px 渲染,不需要大图。上传成功后返回的 URL 会自动填入图标输入框。
删除模型时注意:引用该模型的已有对话仍可浏览,但无法继续发送。
对话行为(仅 chat 模型)
工具模式(tool_mode) 三种取值,决定平台工具(搜索、Python 沙箱、画图、知识库检索等)怎么挂给模型:
| 取值 | 行为 | 适用 |
|---|---|---|
native | 用该模型所属渠道的原生 function calling 格式下发工具定义、解析调用 | 支持原生工具调用的模型(默认) |
prompt | 不走原生字段,改用提示词拼接的文本协议描述工具与调用格式 | 不支持 function calling、但指令遵循尚可的模型 |
none | 完全不挂工具,纯对话 | 不需要或无法使用工具的模型 |
三个开关:
| 开关 | 说明 |
|---|---|
| 视觉(vision) | 是否支持图片输入。关闭后该模型收不到图片附件,也不参与需要视觉能力的内部流程 |
| 流式(stream) | 关闭时改为阻塞式调用,拿到完整回复后一次性推给前端。个别不支持 SSE 的上游用 |
| 深度研究 | 是否允许在该模型上开启深度研究模式 |
系统提示词:模型级 system prompt,与平台提示词组合下发,可用来给某个模型设定专属人设。
参数控制(param_controls):声明式定义该模型暴露给用户的可调参数(如「深度思考」开关、「思考强度」选择器)。可视化编辑器支持两种控件:
| 控件 | 配置项 |
|---|---|
| 开关(toggle) | 键名 key、显示文字、图标、默认值、「开启时 / 关闭时」各一段 JSON 片段 |
| 下拉(select) | 键名 key、显示文字、图标、默认值、若干选项(值 / 文字 / 一段 JSON 片段),可选「仅当某键等于某值时显示」 |
每个取值映射的 JSON 片段就是直接深合并进上游请求体的真实参数(Claude 填 thinking、OpenAI/Gemini 按各自 API 文档填),按该模型的真实 API 文档编写。用户只能在预定义控件中选值,不能注入任意参数。编辑器提供「高级:原始 JSON」直接编辑整段配置。
工具调用方式(仅 OpenAI Responses 渠道的模型):打开「使用 OpenAI 官方工具」后,可勾选 web_search、code_interpreter、image_generation,由 OpenAI 在服务端执行这些内置工具,替代系统自建工具。
模型级内容审核
每个 chat 模型可独立打开「生成前审核提示」开关:每条新的用户提示(不含历史)在生成前先过审核,命中即拦截,该回合以拒答结束(不计次、不扣积分)。两种模式:
| 模式 | 行为 |
|---|---|
| 关键词匹配(keyword) | 提示与全局「违规关键词」列表匹配,命中即拦截 |
| 审核模型(model) | 提示先发给全局指定的「审核模型」,按「违规类型」列表做放行/拦截判定 |
全局部分在「系统 > 内容审核」页配置:
| 字段 | 说明 |
|---|---|
| 违规关键词 | 每行一个,keyword 模式使用,页面实时显示关键词计数 |
| 审核模型 | 从 chat 模型中选,model 模式使用;「未选择」时 model 模式无法生效 |
| 违规类型 | 每行一个类别(如政治、色情、暴力),作为审核模型的判定依据 |
| 拦截提示语 | 提示被拦截时展示给用户的文字 |
审核模型的调用会以「内容审核」用途记入用量日志,可在「数据 > 用量」按用途查看,见用量与分析。
权限与配额(chat 与 image 模型)
「权限」分区按用户组授予模型使用权并设置周期额度(次数或额度),未启用任何组时模型对所有人无限开放。字段语义与超额行为详见用户、配额与积分。
计费
管理员按模型配价,系统在每次调用后按真实用量记账(并作为积分扣费的依据):
| 字段 | 适用 kind | 说明 |
|---|---|---|
| 输入价格 (/1M token) | chat / embedding | 每百万输入 token 的美元价 |
| 输出价格 (/1M token) | chat / embedding | 每百万输出 token 的美元价 |
| 缓存读取 $/1M | chat | 命中提示缓存的 token 单独按此价计,不与输入价重复 |
| 缓存写入 $/1M | chat | 写缓存断点的 token 价 |
| 单张图片价格 | image | 每生成一张图的美元价 |
| 生成超时(秒) | image | 单次图片请求超过该秒数即中断并报「生成超时」;0 = 不限 |
| 向量维度 | embedding | 该嵌入模型输出的向量维度,建知识库时锁定,务必按上游文档填写 |
每模型兜底渠道
每个模型可单独指定一个备用「兜底渠道」(留空 = 无兜底),用于提升可用性:
- 触发:主渠道上一次请求发生传输层错误(拨号、TLS、连接重置、响应头超时),或返回 HTTP
401 / 403 / 408 / 409 / 429 / 5xx时,后端自动改用兜底渠道重试一次;用户不会立刻看到错误,只有兜底也失败才提示失败。 - 不触发:用户主动停止、
400等换渠道也修不了的客户端错误。仅覆盖请求建立阶段;流式开始(200)之后中断不重试,因为重放已流出的内容不安全。 - 约束:兜底渠道必须与主渠道同类型、同接口格式(重试复用主渠道的报文格式,换渠道不等于换协议),只有 URL 和 Key 不同。设置页的下拉只会列出满足条件的渠道。
- 工具循环友好:一轮多次工具调用中,任意一次上游子请求失败都会就地切到兜底继续,不重跑整轮工具;该回合只要用过一次兜底,整轮即标记为兜底。
用量侧的可观测性:每条调用记录都带服务渠道;走了兜底的记录在「数据 > 用量」显示「兜底」徽标。失败的请求也会记一行(状态为错误、零 token 零费用,不占用户额度),点「错误」徽标可查看上游原始报错,支持「仅错误」筛选,方便判断主渠道的健康度。
本节的兜底渠道是换线路不换模型。「系统 > 全局设置」里另有「兜底模型 + 首字超时(秒)」:所选模型在 N 秒内无任何输出时,切换到另一个模型作答。两者独立,可同时配置,后者见站点设置。
全局模型指定
若干平台级功能各由一个全局设置指向某个模型,配置位置如下:
| 设置 | 位置 | 说明 |
|---|---|---|
| 默认对话模型 | 系统 > 全局设置 | 新用户/未选择时的默认模型 |
| 任务模型 | 系统 > 全局设置 | 内部 LLM 调用统一走它:标题生成、查询路由、上下文压缩摘要、记忆抽取等。推荐便宜、快、指令遵循好的小模型 |
| 图片提示词模型 | 系统 > 全局设置 | 绘图前润色提示词的文本模型;选「无」则跳过润色 |
| 审校(审计)模型 | 系统 > 全局设置 | 审校模式下核查答案的第二个模型,理想是与主答不同厂商的强模型;选「无」则全站关闭审校模式 |
| 兜底模型 + 首字超时 | 系统 > 全局设置 | 见上节说明 |
| 审核模型 | 系统 > 内容审核 | model 模式内容审核的判定模型 |
| 嵌入模型 | 能力 > 文档 | 知识库与文档向量化必需,从 kind=embedding 的模型里选;首次配置后锁定,避免旧向量与新模型维度失配 |
任务模型、审校模型、审核模型、图片提示词模型的每次调用都按各自用途记入用量日志,这部分开销同样计入用户成本口径。
模型标签管理
标签用于在模型选择器中分类与筛选模型(如「推荐」「New」「实验」):
- 管理标签:
/admin/model-tags(从模型列表或模型编辑页的「管理标签」入口进入),支持新增、重命名、删除;名称重复会被拒绝。 - 分配标签:在模型设置页的「标签」分区点选,即时生效于选择器的标签筛选。