跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI

OpenWebUI 对外 HTTP 接口配置与使用指南

介绍 OpenWebUI 对外提供 HTTP 接口的配置与使用方法。涵盖 API Key 获取、基础聊天接口调用、流式响应处理以及 RAG 知识库管理流程(创建、上传、关联)。包含具体 API 路径、请求参数和响应示例,辅助开发者快速集成。

人间失格发布于 2026/4/6更新于 2026/7/2364 浏览
OpenWebUI 对外 HTTP 接口配置与使用指南

OpenWebUI 如何对外提供 HTTP 接口?

OpenWebUI 通过 HTTP 方式提供对外接口,使得开发者可以通过 HTTP 方式快速对接拥有 RAG 能力的模型基座。

01 OpenWebUI 配置 API Key

OpenWebUI 使用 Bearer Token 机制对 API 请求进行身份验证。从 Open WebUI 中的'设置 > 帐户'获取 API 密钥,或者使用 JWT(JSON Web 令牌)进行身份验证。

文章配图

文章配图

其中 JWT 是有时效性限制,API 密钥是永久的。

02 API 使用说明

注意每次请求都需要将 API KEY 密钥设置到 HTTP 请求头:

Authorization: Bearer eyJhbGci***

文章配图

基础接口功能包括列出在 OpenWebUI 注册的模型和模型进行聊天。

接口作用列出所有已经配置在 OpenWebUI 的模型
地址/api/models
方法GET
请求示例127.0.0.1:3000/api/models
响应结果```json
{
"data": [
{
"id": "deepseek-r1:1.5b",
"name": "deepseek-r1:1.5b",
"object": "model",
"created": 1741313196,
"owned_by": "ollama",
"ollama": {
"name": "deepseek-r1:1.5b"
 
 
 
 
 
  
  
  
  
  
  

 
,
"model"
:
"deepseek-r1:1.5b"
,
"modified_at"
:
"2025-02-26T09:59:46.3066414+08:00"
,
"size"
:
1117322599
,
"digest"
:
"a42b25d8c10a841bd24724309898ae851466696a7d7f3a0a408b895538ccbc96"
,
"details"
:
{
"parent_model"
:
""
,
"format"
:
"gguf"
,
"family"
:
"qwen2"
,
"families"
:
[
"qwen2"
]
,
"parameter_size"
:
"1.8B"
,
"quantization_level"
:
"Q4_K_M"
}
,
"urls"
:
[
]

}, "actions": [] } ] }


以下是简单的聊天调用,文章下面会介绍关联知识库的聊天调用方式。

| 接口作用 | 调用后端模型进行聊天 |
| --- | --- |
| 地址 | /api/chat/completions |
| 方法 | POST |
| 请求示例 | ```json
{
 "model": "deepseek-r1:1.5b",
 "messages": [
  {
   "role": "user",
   "content": "你好啊"
  }
 ]
}
``` |
| 参数说明 | model: /api/models 接口返回的模型 id<br>role: user=用户输入, assistant=AI 助手的回复, system=系统设定, tool=工具调用返回值<br>content: 提问内容 |
| 响应结果 | ```json
{
 "id": "deepseek-r1:1.5b-09322e4f-ba07-42fc-894c-c64424240670",
 "created": 1741313942,
 "model": "deepseek-r1:1.5b",
 "choices": [
  {
   "index": 0,
   "logprobs": null,
   "finish_reason": "stop",
   "message": {
    "content": "\n\n你好!很高兴见到你,有什么我可以帮忙的吗?",
    "role": "assistant"
   }
  }
 ],
 "object": "chat.completion",
 "usage": {
  "response_token/s": 22.73,
  "prompt_token/s": 41.32,
  "total_duration": 890745200,
  "load_duration": 19290900,
  "prompt_eval_count": 5,
  "prompt_tokens": 5,
  "prompt_eval_duration": 121000000,
  "eval_count": 17,
  "completion_tokens": 17,
  "eval_duration": 748000000,
  "approximate_total": "0h0m0s",
  "total_tokens": 22,
  "completion_tokens_details": {
   "reasoning_tokens": 0,
   "accepted_prediction_tokens": 0,
   "rejected_prediction_tokens": 0
  }
 }
}
``` |

### 聊天中使用流式响应

| 接口作用 | 在聊天中使用流式响应,结果不是一次性返回,而是分段返回,参数中设置 stream 等于 true |
| --- | --- |
| 地址 | /api/chat/completions |
| 方法 | POST |
| 请求示例 | ```json
{
 "model": "deepseek-r1:1.5b",
 "messages": [
  {
   "role": "user",
   "content": "什么是 java"
  }
 ],
 "stream": true
}
``` |
| 响应结果 | 数据以流式响应:<br>```text
data: {"id": "deepseek-r1:1.5b-fc918971-baab-4f2f-a359-cafb9c104ab2", ... "delta": {"content": "的关键"}}
data: {"id": "...", ... "delta": {"content": "。"}}
data: {"id": "...", ... "finish_reason": "stop", ... "usage": {...}}
data: [DONE]
``` |

### 请求中附带知识库文件或者知识库集合

| 接口作用 | 请求中附带知识库文件或者知识库集合 |
| --- | --- |
| 地址 | /api/chat/completions |
| 方法 | POST |
| 请求参数指定知识文件 | ```json
{
 "model": "gpt-4-turbo",
 "messages": [
  {"role": "user", "content": "Explain the concepts in this document."}
 ],
 "files": [
  {"type": "file", "id": "your-file-id-here"}
 ]
}
``` |
| 请求参数指定知识集合 | ```json
{
 "model": "gpt-4-turbo",
 "messages": [
  {"role": "user", "content": "Provide insights on the historical perspectives covered in the collection."}
 ],
 "files": [
  {"type": "collection", "id": "your-collection-id-here"}
 ]
}
``` |

接下来了解知识库上传相关 API。

## 03 RAG 部分

Retrieval Augmented Generation (RAG) 功能通过整合外部来源的数据来增强响应。下面将说明知识库创建与知识库数据上传相关接口,如没有说明统一的请求头 Content-Type=application/json。

上传知识库的流程:
1. 创建知识库,接口:/api/v1/knowledge/create;
2. 上传知识库文件,接口:/api/v1/files/;
3. 关联知识库与知识库文件,接口:/api/v1/knowledge/{知识库 id}/file/add。

### 接口与参数的简单说明

| 操作 | 创建知识库 |
| --- | --- |
| 接口 | POST /api/v1/knowledge/create |
| 请求参数 | {"name":"知识库名称","description":"知识库说明","access_control":null} |
| 响应结果 | ```json
{
 "id": "知识库 Id:e13f471f-cc6c-4df1-9210-8eb586bf8b6b",
 "user_id": "e42bf055-03e4-421e-894d-c18a58b6b73d",
 "name": "test",
 "description": "for test",
 "data": null,
 "meta": null,
 "access_control": null,
 "created_at": 1741317031,
 "updated_at": 1741317031,
 "files": null
}
``` |

| 操作 | 上传知识库文件 |
| --- | --- |
| 接口 | POST /api/v1/files/ |
| 请求参数 | 文件以二进制流上传<br>请求头:content-type: multipart/form-data; |
| 响应结果 | ```json
{
 "id": "77cb080c-5de8-4ffb-9304-d658e44a4dfb",
 "user_id": "e42bf055-03e4-421e-894d-c18a58b6b73d",
 "hash": "93737981707e6327ca3adf45a7ae11bfd33bc7fcbb0de82c85c390efa1a2f01c",
 "filename": "日志.txt",
 "data": {
  "content": "文件上传内容"
 },
 "meta": {
  "name": "日志.txt",
  "content_type": "text/plain",
  "size": 5587,
  "data": {},
  "collection_name": "file-77cb080c-5de8-4ffb-9304-d658e44a4dfb"
 },
 "created_at": 1741317221,
 "updated_at": 1741317221
}
``` |

| 操作 | 关联知识库文件 |
| --- | --- |
| 接口 | POST /api/v1/knowledge/{id}/file/add |
| 请求参数 | {"file_id":"77cb080c-5de8-4ffb-9304-d658e44a4dfb"}<br>(file_id 对应/api/v1/files 接口响应的 id) |
| 响应结果 | ```json
{
 "id": "e13f471f-cc6c-4df1-9210-8eb586bf8b6b",
 "user_id": "e42bf055-03e4-421e-894d-c18a58b6b73d",
 "name": "test",
 "description": "for test",
 "data": {
  "file_ids": [
   "77cb080c-5de8-4ffb-9304-d658e44a4dfb"
  ]
 },
 "meta": null,
 "access_control": null,
 "created_at": 1741317031,
 "updated_at": 1741317226,
 "files": [
  {
   "id": "77cb080c-5de8-4ffb-9304-d658e44a4dfb",
   "user_id": "e42bf055-03e4-421e-894d-c18a58b6b73d",
   "hash": "93737981707e6327ca3adf45a7ae11bfd33bc7fcbb0de82c85c390efa1a2f01c",
   "filename": "日志.txt",
   "path": "/app/backend/data/uploads/77cb080c-5de8-4ffb-9304-d658e44a4dfb_日志.txt",
   "data": {
    "content": "文件内容"
   },
   "meta": {
    "name": "日志.txt",
    "content_type": "text/plain",
    "size": 5587,
    "data": {},
    "collection_name": "e13f471f-cc6c-4df1-9210-8eb586bf8b6b"
   },
   "access_control": null,
   "created_at": 1741317221,
   "updated_at": 1741317221
  }
 ]
}
``` |

如果想实现多轮会话,可以看/api/v1/chats/{chat_id},它主要负责管理会话,包括查询(GET)、新增(POST),主要通过 chat_id 关联/api/chat/completions。

如果想了解其他的接口我们可以通过在浏览器打开调试窗口查看网络调用情况。

![](https://qiniu.meowparty.cn/coder.2023/2026-04-06/16e0470b16b740b9898a5758eaef1799.png)

![](https://qiniu.meowparty.cn/coder.2023/2026-04-06/4e387f433f784482987316e40d885489.png)

目录

  1. OpenWebUI 如何对外提供 HTTP 接口?
  2. 01 OpenWebUI 配置 API Key
  3. 02 API 使用说明
  4. 聊天中使用流式响应
  5. 请求中附带知识库文件或者知识库集合
  6. 03 RAG 部分
  7. 接口与参数的简单说明
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 前端多版本零 404 部署实践:根因分析与落地方案
  • 基于 OneDNS 的高校办公网安全防护方案
  • 字节开源 DeerFlow 2.0:超级 Agent 调度框架与核心特性解析
  • Faster-Whisper 在笔记本 CPU 环境下如何选择模型模式
  • C++ 递归实战:合并有序链表与反转链表
  • 初识 Linux 与 gcc 编译器
  • 基于 YOLO12 的无人机航拍视角目标检测系统
  • 位运算实战:判断字符唯一性与查找丢失数字
  • 前端 HTML 转 PDF 的两种主流方案深度解析
  • 基于 SpringBoot 的图书租借系统设计与实现
  • AI 对话应用接口开发:同步、SSE 流式与智能体前端对接
  • SpiffWorkflow:纯 Python 实现的工作流引擎
  • SDXL LoRA 微调实践:枢轴微调、优化器与推理指南
  • SKResNet 架构详解:融合选择性卷积与残差结构
  • OpenClaw 底层原理深度解析:本地优先的任务执行系统
  • AnythingLLM:零成本搭建私人 ChatGPT,支持主流大模型
  • AI 产品经理核心技能:技术模型与三大知识体系详解
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • Linux VFS:把设备和文件统一起来的那一层
  • 自然语言处理在金融领域的应用与实战

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online