这一页覆盖三种情况:直连 OpenAI 官方、通过别人的中转、 以及接任何一个 OpenAI 格式的端点。三种共用同一套请求组装逻辑, 区别只在基础地址和凭据从哪来。搞清这两件事,剩下的都一样。
三种填法怎么选
| 你的情况 | 来源选 | 基础地址 | 凭据 |
|---|---|---|---|
| 有 OpenAI 官方密钥 | OpenAI | 不用填 | 「OpenAI API 密钥」 |
| 用别人的 OpenAI 中转 | OpenAI | 填「反向代理」 | 「代理密码」 |
| 接任意兼容端点 | 自定义(兼容 OpenAI) | 填「自定义端点(基础 URL)」 | 「自定义 API 密钥」,可留空 |
直连官方要填什么
- 顶部 API 下拉选「聊天补全」。
- 「聊天补全来源」选 OpenAI。
- 密钥粘进「OpenAI API 密钥」。
- 点「连接」,然后从模型下拉里选。
基础地址是常量 https://api.openai.com/v1,生成请求发到
/chat/completions,模型列表走 /models,凭据以
Authorization: Bearer 发出。常量见 SillyTavern 的
API_OPENAI。
「反向代理」和「代理密码」是怎么配对的
填了反向代理,基础地址就整个换成你填的那个;同时凭据也换人, 发出去的 Bearer 变成「代理密码」那一栏的值,你的 OpenAI 密钥不再参与这次请求。
这个规则在 SillyTavern 里写成一行三元表达式, 各来源分支的写法都一样。 还有一个副作用:一旦填了反向代理,服务端就不再检查密钥是否为空, 因为中转方可能压根不要凭据。
两个最常见的错法:只填了地址没填代理密码,于是发出去一个空 Bearer; 或者把中转方给的 key 填进了「OpenAI API 密钥」那一栏,那一栏此时根本不会被读取。
「自定义(兼容 OpenAI)」怎么填
基础地址填进「自定义端点(基础 URL)」,服务端会在它后面接
/chat/completions。密钥填「自定义 API 密钥」,允许留空,
服务端不会因为它空着就拦下请求。
前端在那个输入框下面写了两句提示,可以当成排错清单:地址不行的话试着在末尾加
/v1;/chat/completions 这段后缀是自动补上的,你不用自己写。
末尾多带一个斜杠不影响,拼接时会被折掉。
三个 YAML 字段
自定义来源比其它来源多认三样东西,都填 YAML:
- 额外请求头:合并进请求头,值会被转成字符串。
- 额外请求体:合并进请求体,位置在通用字段之后,所以同名键会覆盖通用值。
- 排除的请求体字段:在全部组装完之后执行,能删掉服务端默认带上的键。
顺序值得记一下:通用字段先落位,额外请求体压在它上面(所以同名键归你), 排除列表最后执行(所以它能删掉前两步的任何键)。 「某个参数怎么都发不出去」,先看是不是被排除列表删了。
请求体里有哪些字段
通用字段是这些:messages、model、temperature、
max_tokens、max_completion_tokens、stream、
presence_penalty、frequency_penalty、top_p、
top_k、logit_bias、seed、n。
两个细节。第一,stop 只在它是非空数组时才会出现。
第二,值为 null 的键会在发出前被整体删掉,这是为了对齐
JavaScript 里 JSON.stringify 丢弃 undefined 的行为。
所以你在设置里没动过的参数,不会以 null 的形式发给上游。
max_tokens 和 max_completion_tokens 两个都在列表里,
都原样透传。部分新模型只认后者,这时前者会被上游忽略或报错,
具体看上游的错误正文。
连不上时先查什么
| 现象 | 多半是 |
|---|---|
| 选了自定义来源,点连接直接 400 | 基础 URL 是空的。服务端要求自定义来源必须有地址,空着就本地拒绝 |
| OpenAI 来源点连接直接 400 | 密钥为空,且没填反向代理 |
| 报 400 且带上游正文 | 上游 401 被改写成了 400,凭据被对方拒绝 |
| 路径里出现两个斜杠或缺一段 | 基础 URL 写到了 /chat/completions 那一层,往回删 |
| 502 | 连不上那个地址。自建端点先确认它在外网或局域网可达 |
常见问题
空密钥能连吗
自定义来源可以,服务端对它跳过缺密钥检查。OpenAI 来源不行,除非你填了反向代理。 这条规则和 SillyTavern 一致,本地部署的推理服务往往不设密钥。
想给请求加一个自定义请求头
只有自定义来源支持。用那个 YAML 字段,写成键值对即可,值会被转成字符串再放进请求头。
Azure OpenAI 能接吗
前端来源列表里有 Azure OpenAI 这一项,但 PokiTavern 的服务端没有实现它的专用分支,
选中之后请求会在本地被拒,直接回 400,响应体是 {"error": true},
没有说明文字。如果你的 Azure 部署提供了 OpenAI 兼容路径,可以用自定义来源试。
本地跑的 LM Studio、vLLM 怎么接
两条路都行:用自定义来源填 http://电脑IP:端口/v1,
或者走「文本补全」通道里的 API 类型。要注意地址里不能写 localhost,
原因和 Ollama 那一页讲的一样。
换成别的接入方式
不想按量付费,看手机端侧模型; 不想逐家注册,看 OpenRouter; 要用 Anthropic 原生格式,看 Claude。 对照表在枢纽页。