终极指南:ChatterUI自定义API配置模板完全掌握
你是否在集成不同LLM(Large Language Model,大型语言模型)API时遭遇配置兼容性难题?是否因官方模板无法满足特定接口需求而束手无策?本文将系统拆解ChatterUI自定义API配置模板的核心架构与实战技巧,助你实现从OpenAI到本地模型的无缝对接。读完本文你将掌握:
- 15个核心配置字段的精准用法
- 3类API请求格式的适配策略
- Sampler参数映射的实战技巧
- 5步调试法解决90%配置问题
- 3个主流API模板的完整案例
配置模板核心架构解析
ChatterUI的API配置模板采用JSON结构化设计,通过7大顶级字段实现对各类LLM接口的标准化封装。其核心架构如下:
必选基础配置
version与name字段构成模板的身份标识:
{
"version": 1,
"name": "Chat Completion Example",
// 其余配置...
}
version: 固定为1(当前唯一支持版本)name: 全局唯一标识符,建议包含API提供商名称(如"OpenAI-Chat-Completions")
默认值配置(defaultValues)
定义API连接的基础参数,典型配置如下:
"defaultValues": {
"endpoint": "https://api.openai.com/v1/chat/completions",
"modelEndpoint": "https://api.openai.com/v1/models",
"prefill": "",
"firstMessage": "",
"key": "",
"model": "gpt-3.5-turbo"
}
关键参数说明:
endpoint: 补全请求URL(务必使用国内可访问地址)modelEndpoint: 模型列表API地址(留空则不支持模型选择)key: API密钥占位符(用户在UI中填写)
功能开关配置(features)
通过布尔值控制API模板的功能集:
"features": {
"usePrefill": false,
"useFirstMessage": false,
"useKey": true,
"useModel": true,
"multipleModels": true
}
各开关功能矩阵:
| 开关名称 | 功能描述 | 典型应用场景 |
|---|---|---|
| usePrefill | 启用预设提示文本 | Claude类需要系统提示前缀的API |
| useFirstMessage | 启用首条消息特殊处理 | 需要固定开场白的对话系统 |
| useKey | 显示API密钥输入框 | 需认证的第三方API |
| useModel | 启用模型选择功能 | 支持多模型的API(如OpenAI) |
| multipleModels | 启用多模型并行调用 | Horde等分布式推理服务 |
请求格式配置(request)
这是模板的核心部分,决定API请求的构建方式。包含7个子字段:
请求类型与采样器映射
"request": {
"requestType": "stream",
"samplerFields": [
{ "externalName": "max_tokens", "samplerID": "genamt" },
{ "externalName": "temperature", "samplerID": "temp" }
],
// 其余配置...
}
-
requestType:stream: 流式响应(推荐)horde: Horde专属流式处理
-
samplerFields: 本地采样器与API参数的映射关系,支持多对多映射。例如将本地temp(温度)映射为API的temperature参数。
完成类型配置
支持两种主流API格式:
ChatCompletions格式(如OpenAI):
"completionType": {
"type": "chatCompletions",
"userRole": "user",
"systemRole": "system",
"assistantRole": "assistant",
"contentName": "content"
}
TextCompletions格式(如早期GPT-3):
"completionType": {
"type": "textCompletions"
}
认证与请求头配置
"authHeader": "Authorization",
"authPrefix": "Bearer ",
常见认证方式配置:
| API类型 | authHeader | authPrefix |
|---|---|---|
| OpenAI类 | Authorization | Bearer |
| API Key直接传递 | X-API-KEY | (空字符串) |
| 自定义Token | Custom-Token | Token |
payload格式配置
定义最终发送给API的JSON结构:
"payload": {
"type": "openai"
}
支持的内置类型:
openai: 标准OpenAI格式ollama: Ollama专属格式(参数嵌套在options对象)horde: Horde分布式推理格式custom: 自定义格式(需配合customPayload)
自定义payload示例:
"payload": {
"type": "custom",
"customPayload": "{\"inputs\":\"{{prompt}}\",\"parameters\":{\"temperature\":{{temp}}}}"
}
支持的特殊宏:
{{prompt}}: 生成的对话 prompt{{model}}: 选中的模型名称{{stop}}: 停止序列
模型配置(model)
控制模型列表的获取与解析:
"model": {
"useModelContextLength": false,
"nameParser": "id",
"contextSizeParser": "",
"modelListParser": "data"
}
modelListParser: JSONPath表达式,从API响应中提取模型列表数组nameParser: 从模型对象中提取名称的JSONPathcontextSizeParser: 从模型对象中提取上下文长度的JSONPath
例如,解析OpenAI模型列表:
- API响应:
{"data":[{"id":"gpt-3.5-turbo"},...]} modelListParser: "data"→ 提取response.data数组nameParser: "id"→ 从每个模型对象取id字段作为名称
UI配置(ui)
控制API管理界面的可编辑项:
"ui": {
"editableCompletionPath": false,
"editableModelPath": false,
"selectableModel": true
}
editableCompletionPath: 是否允许用户编辑补全接口URLselectableModel: 是否显示模型选择下拉框
采样器参数完整映射表
| 名称 | 内部ID | API宏 | 描述 |
|---|---|---|---|
| Max Context | max_length | {{max_context_length}} | 上下文窗口大小 |
| 温度 | temp | {{temp}} | 随机性控制(0-2) |
| Top P | top_p | {{top_p}} | 核采样概率阈值(0-1) |
| Top K | top_k | {{top_k}} | 候选词数量限制 |
| 重复惩罚 | rep_pen | {{rep_pen}} | 重复生成抑制(≥1) |
| 生成长度 | genamt | {{generted_length}} | 最大生成Token数 |
实战案例:构建Ollama自定义模板
基于以上知识,我们来构建一个Ollama本地API的配置模板:
{
"version": 1,
"name": "Ollama Local API",
"defaultValues": {
"endpoint": "http://localhost:11434/api/chat",
"modelEndpoint": "",
"model": "llama3"
},
"features": {
"useKey": false,
"useModel": true,
"multipleModels": false
},
"request": {
"requestType": "stream",
"samplerFields": [
{ "externalName": "temperature", "samplerID": "temp" },
{ "externalName": "top_p", "samplerID": "top_p" }
],
"completionType": {
"type": "chatCompletions",
"userRole": "user",
"assistantRole": "assistant",
"systemRole": "system"
},
"authHeader": "",
"authPrefix": "",
"promptKey": "messages",
"stopKey": "stop"
},
"payload": {
"type": "ollama"
},
"model": {
"useModelContextLength": false
},
"ui": {
"editableCompletionPath": true,
"selectableModel": true
}
}
关键配置说明:
- 本地Ollama无需API密钥,故
useKey: false - 允许编辑端点路径(
editableCompletionPath: true),方便用户修改本地端口 - 使用ollama专属payload类型,自动处理参数嵌套
调试与故障排除
配置模板常见问题解决流程:
日志查看路径:ChatterUI → 设置 → 高级 → 日志
总结与进阶
通过本文学习,你已掌握ChatterUI自定义API模板的核心配置方法。进阶方向:
- 探索
customPayload实现复杂API适配 - 结合
modelListParser实现动态模型列表加载 - 使用
samplerFields高级映射实现参数转换
掌握自定义API配置能力,你可以将ChatterUI打造成连接各类LLM的统一操作平台,无论是云端API还是本地模型,都能实现无缝对接。
收藏本文,下次配置新API时即可快速参考。关注项目更新,获取更多高级配置技巧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



