你正在设置的内容
如果你是输入 openwebui how to chat n8n 到达此处的,你可能正在尝试做两件相关的事情:在 Open WebUI 中与模型对话,并从 n8n 工作流中调用同一模型。两个工具都可以指向遵循 OpenAI 聊天补全格式的任何服务器,因此一个账户即可覆盖两者。
Open WebUI 是一个自托管的聊天界面。n8n 是一个工作流自动化工具,你可以将节点连接在一起。它们背后的 API 在每种情况下都是相同的:
- 基础 URL:
https://api.nofilteraichat.com/v1 - 模型 ID:
uncensored - 认证:携带密钥的
Authorization: Bearer请求头
你需要先获取密钥。API 密钥页面 介绍了注册和一键获取 $0.50 试用额度的过程,这足以测试以下所有内容。
第一部分:Open WebUI
选项 A:管理面板
如果 Open WebUI 已在运行,请以管理员身份登录并打开「管理员设置」,然后进入「连接」。使用以下值添加一个新的 OpenAI API 连接:
- URL:
https://api.nofilteraichat.com/v1 - 密钥:你的 API 密钥
- 保存,如果你的版本有验证按钮,请使用它。
菜单名称在不同版本之间略有变化,因此请寻找列出 OpenAI 风格连接的区域。保存后,开始新聊天并打开模型选择器。模型 uncensored 应该会出现,因为 Open WebUI 从 GET /v1/models 加载列表。
选项 B:Docker 中的环境变量
如果你是全新启动,请在启动容器时传递设置:
docker run -d --name open-webui -p 3000:8080 \
-e OPENAI_API_BASE_URL="https://api.nofilteraichat.com/v1" \
-e OPENAI_API_KEY="$NOFILTER_API_KEY" \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main打开 http://localhost:3000,创建第一个本地账户,模型就会在选择器中等待。请注意,Open WebUI 会在首次启动后将连接设置存储在其数据库中。如果你稍后修改变量但没有任何变化,请在管理面板中编辑连接。
调整聊天
在聊天控件中,你可以设置 temperature、top_p、停止序列和系统提示词。这些将传递给模型。对于小说和角色扮演,0.7 到 1.0 之间的 temperature 会产生更生动的文本。对于事实性问题,请降低数值。如果模型开始重复短语,请稍微提高频率惩罚。
第二部分:使用 OpenAI 节点的 n8n
n8n 有一个原生的 OpenAI 凭据。其配置包括一个基础 URL 字段,默认指向官方服务器。更改它,节点将连接到您的接口:
- 在 n8n 中,创建一个新的 OpenAI 类型凭据。
- 粘贴你的 API 密钥。
- 将基础 URL 设置为
https://api.nofilteraichat.com/v1。 - 保存并将凭据附加到 OpenAI Chat Model 节点或 AI Agent 工作流。
难点在于模型字段。一些节点显示从模型列表填充的下拉菜单,一些将选择限制为已知名称。如果您无法选择 uncensored,将字段切换到表达式模式并手动输入 ID。如果您的 n8n 版本仍然拒绝该 ID,请使用下一部分中的 HTTP 请求方法,该方法没有此类限制。
凭证生效后,你可以将聊天模型连接到 AI Agent 节点并赋予工具。API 支持函数调用(tools、tool_choice,以及返回结果为 role: "tool")。与任何开放权重模型一样,请在真实输入下测试 Agent,并保持工具描述简短且字面化。
第三部分:从 HTTP 请求节点聊天
最可预测的选项是普通的 HTTP 请求节点。它显示发送的确切内容,并且适用于所有 n8n 版本。按如下方式配置节点:
- 方法:POST
- URL:
https://api.nofilteraichat.com/v1/chat/completions - 认证:Header 认证,名称为
Authorization,值为Bearer YOUR_KEY(将其存储为凭证,而非放在节点中) - 发送正文:开启,内容类型 JSON
将正文设置为以下内容,对用户文本使用表达式:
{
"model": "uncensored",
"messages": [
{ "role": "system", "content": "You are a concise story assistant for adult fiction writers." },
{ "role": "user", "content": "{{ $json.prompt }}" }
],
"temperature": 0.8,
"max_tokens": 600
}回复文本位于 choices[0].message.content。在下一个节点中,使用表达式 {{ $json.choices[0].message.content }} 读取它。同一响应还包含 usage 块,因此你可以将 token 计数记录到表格或数据库中。
典型的工作流是 webhook 触发器、此 HTTP 节点和返回文本的回复节点。另一个常见的工作流是从电子表格读取行,为每行生成草稿,然后将结果写回。你也可以首先在 n8n 之外使用 curl 测试请求:
curl https://api.nofilteraichat.com/v1/chat/completions \
-H "Authorization: Bearer $NOFILTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}]}'n8n 中的限制、重试和批处理
完整密钥允许 8 个并发请求和每分钟 300 个请求;试用密钥允许 2 个和 60 个。n8n 很容易超过这些限制,因为节点处理每个传入项,并可能快速发送请求。
在 HTTP Request 节点中,打开 Options 并使用 Batching:设置批量大小为 4 或 6,间隔时间为 1 到 2 秒。在节点设置中,开启 Retry On Fail,重试 3 次,等待 5000 毫秒。这与 API 行为匹配:当 API 短暂过载时,会返回带有 Retry-After: 5 头的 HTTP 429 状态码。其他 429 代码指示您触发了哪个限制:rate_limited 表示每分钟请求过多,concurrency 表示并发请求过多。
流式输出值得注意。流式请求会保留其并发槽位,直到流结束。在 n8n 中,在 HTTP 节点中关闭流式输出,因为工作流无论如何都会等待整个答案。Open WebUI 默认流式输出,这适合聊天窗口。
工作流的成本
假设一个工作流处理 500 行数据,每行发送 800 个输入 token 并获得 250 个输出 token。输入:500 × 800 = 400,000 个 token,费用为 400,000 × $0.15 / 1,000,000 = $0.06。输出:500 × 250 = 125,000 个 token,费用为 125,000 × $0.50 / 1,000,000 = $0.0625。总费用为 $0.1225,约 12 美分。查看 价格页面 进行充值。
故障排除
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
| Open WebUI 未显示模型 | URL 或密钥错误 | 使用以 /v1 结尾的基础 URL;使用 curl 测试 GET /v1/models |
| Docker 环境变量更改被忽略 | 设置已存储 | 在管理设置中编辑连接 |
| n8n 返回 401 | 头值缺少单词 Bearer | 值必须为 Bearer、一个空格,然后是密钥 |
| Docker 中的 Open WebUI 无法访问本地代理 | localhost 指向容器 | 使用主机地址,而不是 localhost |
| 循环中间出现 429 错误 | 并发项过多 | 对 HTTP 节点进行批处理并启用重试 |
| 未找到模型 | 名称拼写错误 | 唯一的 ID 是 uncensored |
设计流程时请记住产品限制:仅支持文本聊天,提示词和回复共享 100,000 token 的上下文窗口,请求体限制为 8 MB。没有嵌入接口,因此请将任何向量搜索保留在其他服务上。快速入门包含完整的请求参考,集成指南涵盖了更多前端。通过 API 发送的提示词不会用于训练。
该硬性规则适用于所有工具:禁止涉及未成年人的性内容。在合法的成人用途范围内,该模型经过调整,可在无内容审查的情况下回答,适合成人小说、角色扮演和伴侣应用。
