- NSFW Video API
- OpenWebUI 有 API 吗?是的,有两种方式
OpenWebUI 有 API 吗?是的,有两种方式
Open WebUI 有 API 吗?是的,这个问题有两种含义:Open WebUI 暴露了自己的 API,它也可以将他人的 API 用作模型后端。本文解释了这两种情况,并展示了它们如何配合使用。

人们所指的两个不同 API
当有人询问 Open WebUI 是否有 API 时,他们可能指的是两种方向中的任何一种。混淆它们是导致设置指南令人困惑的主要原因,因此最好先将它们区分开。
- 传入:你的程序向 Open WebUI 发送请求。它作为服务器运行,提供聊天、模型和文件的接口,由你在应用内生成的 API 密钥保护。
- 出站:Open WebUI 向模型服务器发送请求,以便其聊天窗口有内容可交互。这是你在管理设置中配置的连接。
因此简短的回答是两者皆可。该项目文档记录了一个具有 OpenAI 风格聊天端点的 API,并支持连接到任何支持 OpenAI 协议的服务器。确切路径和密钥处理方式可能因版本而异,请查阅你所运行版本的文档。
本网站提供出站侧的模型:托管的、兼容 OpenAI 的文本 API,单个模型 ID 为 uncensored。它不是 Open WebUI,也不为你托管它。Open WebUI 是你自行托管的软件。
使用 Open WebUI 自己的 API
Open WebUI 允许已登录用户在账户设置中创建 API 密钥。使用该密钥,你可以从脚本调用其接口。聊天接口遵循 OpenAI 格式,因此现有的客户端代码通常可以指向它。项目编写文档时记录的路线是 /api/chat/completions;请根据你的版本进行确认。
# Open WebUI running locally on port 3000, key created in Settings > Account
curl http://localhost:3000/api/chat/completions \
-H "Authorization: Bearer $OPENWEBUI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize this scene in one line."}]}'
注意,此处的模型名称是 Open WebUI 注册的任意模型。如果你将此 API 连接为后端,该名称为 uncensored。此请求中的密钥是 Open WebUI 密钥,而非模型 API 密钥。它们是两个具有不同用途的独立凭证。
为什么要使用入站 API?当你希望程序在背后利用 Open WebUI 的额外功能(如已存储的知识库、按用户划分的账户或模型预设)并希望无需浏览器即可访问它们时,它非常有用。
使用外部 API 作为后端
另一个方向是大多数人需要的。Open WebUI 有一个用于兼容 OpenAI 连接的部分,你可以在其中输入 URL 和密钥。对于此服务,值为:
- URL:
https://api.nsfwvideo.top/v1 - 密钥:来自 密钥页面
- 模型:
uncensored,通过GET /v1/models自动发现
逐步操作:打开管理员设置,进入连接,添加 OpenAI API 连接,粘贴 URL 和密钥,保存,然后在新聊天中选择模型。如果你更喜欢使用命令行启动,请在启动容器时设置环境变量 OPENAI_API_BASE_URL 和 OPENAI_API_KEY。
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL=https://api.nsfwvideo.top/v1 \
-e OPENAI_API_KEY=$API_KEY \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
请注意,Open WebUI 在首次启动时将许多设置保存到其数据库中。如果你后来更改了环境变量但没有任何变化,请在管理面板中编辑连接。快速入门提供了后端期望的请求格式,如果你希望使用 curl 进行验证,可以参考该格式。
将两者串联
你可以同时使用两个方向。你的应用程序使用 Open WebUI 密钥调用 Open WebUI 的入站 API,Open WebUI 将聊天转发到你配置的后端,回复再流回。这种安排在以下情况下很有意义:团队已经运行带有账户的 Open WebUI,并希望脚本共享其预设;或者你希望有一个地方同时保存人类和程序的 角色设置。
这增加了一次跳转。每个请求现在都要经过你的 Open WebUI 服务器才能到达模型 API,因此多了一个需要运行、修补和保护的组件。速率限制也会以不明显的方式叠加:后端密钥允许 8 个并发请求和每分钟 300 次请求(完整密钥),所有通过你的 Open WebUI 实例的用户和脚本共享该配额。如果后端返回 HTTP 429,错误代码为 rate_limited 或 concurrency,故障通常会在 Open WebUI 和你的调用者处显示为错误。
何时跳过 Open WebUI 直接调用 API
如果你只需要一个生成文本的脚本,例如大纲、镜头描述或草稿旁白,则不需要 Open WebUI。此服务是一个普通的兼容 OpenAI 的接口,标准 SDK 可以直接与其通信。
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwvideo.top/v1", api_key=os.environ["API_KEY"])
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You write concise shot lists for short films."},
{"role": "user", "content": "Shot list for a ninety second chase through a night market."},
],
temperature=0.7,
)
print(resp.choices[0].message.content)
直接调用为你提供 SSE 流式输出、工具调用、JSON 模式以及所有采样参数,无需中间层。当你需要供人员使用的聊天界面(包含历史记录、账户和预设)时,Open WebUI 是更好的选择。对于批量工作,脚本是更好的选择。API 仅生成文本:它不渲染视频、图像或音频,因此对于视频项目,它提供脚本和其他工具的提示词等文本部分。视频管道页面详细介绍了该用途。
快速决策指南
- 你想为自己或团队使用聊天窗口:运行 Open WebUI 并添加出站连接。
- 你想让脚本复用 Open WebUI 预设或账户:使用其入站 API 和 Open WebUI 密钥。
- 你想进行批量文本生成:使用 OpenAI SDK 直接调用模型 API,跳过中间层。
- 你想获取图像或语音:Open WebUI 或此文本 API 都无法单独生成它们。请为此连接单独的工具。
无论你选择哪条路径,模型侧的事实保持不变:100,000 token 的上下文窗口由提示词和回复共享,支持工具调用和 JSON 模式,并有一条禁止涉及未成年人的色情内容的硬性规则。
公开任一 API 的安全注意事项
将两个密钥都视为机密。Open WebUI 密钥授予创建用户在实例内可以执行的任何操作;模型 API 密钥消耗你的预付额度。不要将任何一个粘贴到客户端代码或公共存储库中。
- 如果 Open WebUI 可从你自己的机器之外访问,请将其置于 HTTPS 之后。
- 为每个脚本创建独立的 Open WebUI 密钥,这样你可以撤销其中一个而不影响其他密钥。
- 如果模型 API 密钥出现在日志或截图中,请轮换该密钥。
- 在后端上监控
X-Balance-USD响应头,以查看每次调用的花费。
关于隐私,发送到该 API 的提示词不会用于训练。Open WebUI 本身在你的服务器上的数据库中存储聊天记录,因此你的托管选择决定了谁可以读取这些数据。
运行此设置的成本
Open WebUI 是你托管的免费软件;你的成本是服务器费用和 token 费用。输入 token 按每 1M 个 $0.15 计费,输出 token 按每 1M 个 $0.50 计费,从预付额度中扣除,无订阅费用。一次对话包含 3,000 个输入 token 和 500 个输出 token:输入费用为 3,000 x $0.15 / 1M = $0.00045,输出费用为 500 x $0.50 / 1M = $0.00025,总计 $0.0007。一千次这样的对话费用为 $0.70。
充值金额可以是 $20 到 $500 之间的任意整数,充值 $50 起额外赠送 5%,充值 $100 起额外赠送 10%,充值 $200 起额外赠送 15%。支付方式为加密货币,支持 TRC20 链上的 USDT 或 Base 链上的 USDC。失败或被拒绝的请求不会扣费,且额度永不过期。新用户只需一键点击,无需提供支付信息,即可领取 $0.50 的 7 天试用额度。完整详情请参阅 定价页面。
关于内容的提醒:该模型经过调整,可在合法成人用途下不进行内容拦截,但绝不允许涉及未成年人的性内容。
更多指南
问答
Open WebUI 有自己的 API 吗?
有。你可以在账户设置中创建 API 密钥,并调用其端点,包括 OpenAI 风格的聊天路由。请查阅你所用版本的文档以确认确切路径。
Open WebUI 能否使用外部兼容 OpenAI 的 API?
可以。在管理设置的“连接”中,通过基础 URL 和密钥添加。对于此服务,URL 为 https://api.nsfwvideo.top/v1,模型为 uncensored。
Open WebUI 密钥与模型 API 密钥是同一个吗?
不是。前者用于授权访问你的 Open WebUI 服务器。后者用于授权访问模型 API 并消耗你的余额。
使用此 API 需要 Open WebUI 吗?
不需要。任何 OpenAI SDK 或 HTTP 客户端均可直接调用。Open WebUI 仅是一个便捷的聊天界面。
你的密钥只差一步表单即可获取
创建账户,复制密钥,更改基础 URL。这就是全部设置。