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

OpenWebUI 对外 HTTP 接口配置与调用详解

OpenWebUI 支持通过 HTTP 接口对接 RAG 模型基座。涵盖 API Key 获取与 Bearer Token 认证方式,演示列出模型、非流式及流式聊天调用方法。此外包含知识库创建、文件上传及关联流程,帮助开发者快速集成外部数据增强回答能力。

蜜桃汽水发布于 2026/4/10更新于 2026/5/1911 浏览
OpenWebUI 对外 HTTP 接口配置与调用详解

OpenWebUI 通过 HTTP 方式提供对外接口,使得开发者可以通过标准 HTTP 请求快速对接拥有 RAG 能力的模型基座。下面将介绍如何获取认证信息、基础对话调用以及知识库集成流程。

获取 API 密钥

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

文章配图 文章配图

注意:JWT 通常有时效性限制,而 API 密钥是永久有效的。每次请求都需要将 API Key 设置到 HTTP 请求头中:

Authorization: Bearer eyJhbGci***

API 使用说明

基础接口功能包括列出在 OpenWebUI 注册的模型和发起聊天请求。

列出已配置模型

接口作用地址方法
列出所有已配置的模型/api/modelsGET

请求示例:http://127.0.0.1:3000/api/models

响应结果:

{
  "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/completionsPOST

请求参数说明:

参数说明
model从 /api/models 接口返回的模型 id
roleuser=用户输入,assistant=AI 助手回复,system=系统设定,tool=工具调用返回值
content提问内容

请求示例:

{
  "model": "deepseek-r1:1.5b",
  "messages": [
    {
      "role": "user",
      "content": "你好啊"
    }
  ]
}

响应结果:

{
  "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。

请求示例:

{
  "model": "deepseek-r1:1.5b",
  "messages": [
    {
      "role": "user",
      "content": "什么是 java"
    }
  ],
  "stream": true
}

响应数据会以 SSE (Server-Sent Events) 格式分段返回,以 data: 开头,最后以 [DONE] 结束。例如:

data: {"id": "...", "choices": [{"delta": {"content": "的关键"}}], ...}
data: {"id": "...", "choices": [{"delta": {"content": "。"}}], ...}
data: [DONE]

关联知识库文件

如果在对话中需要引用特定文档,可以在请求中附带知识库文件或集合 ID。

指定知识文件:

{
  "model": "gpt-4-turbo",
  "messages": [
    {"role": "user", "content": "Explain the concepts in this document."}
  ],
  "files": [
    {"type": "file", "id": "your-file-id-here"}
  ]
}

指定知识集合:

{
  "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"}
  ]
}

RAG 知识库集成

Retrieval Augmented Generation (RAG) 功能通过整合外部来源的数据来增强响应。以下说明知识库创建与数据上传的相关接口(默认请求头 Content-Type: application/json)。

1. 创建知识库

接口:POST /api/v1/knowledge/create

请求参数:

{
  "name": "知识库名称",
  "description": "知识库说明",
  "access_control": null
}

响应结果包含生成的知识库 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
}

2. 上传知识库文件

接口:POST /api/v1/files/

注意:此接口需使用 multipart/form-data 格式上传二进制文件流。

响应结果:

{
  "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
}

3. 关联知识库与文件

接口:POST /api/v1/knowledge/{knowledge_id}/file/add

其中 {knowledge_id} 对应第一步创建的 ID,file_id 对应第二步上传文件的 ID。

请求参数:

{
  "file_id": "77cb080c-5de8-4ffb-9304-d658e44a4dfb"
}

响应结果会更新知识库状态,显示已关联的文件列表。

此外,如果需要管理多轮会话,可以访问 /api/v1/chats/{chat_id},该接口主要负责查询和新增会话,并通过 chat_id 关联到 /api/chat/completions。

如果不确定某些接口的具体行为,建议直接在浏览器打开调试窗口查看网络调用情况,这通常是排查问题最直接的方法。

文章配图 文章配图

目录

  1. 获取 API 密钥
  2. API 使用说明
  3. 列出已配置模型
  4. 发起聊天请求
  5. 流式响应
  6. 关联知识库文件
  7. RAG 知识库集成
  8. 1. 创建知识库
  9. 2. 上传知识库文件
  10. 3. 关联知识库与文件
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 前端多版本发布零 404 部署方案详解
  • Spring Cloud Nacos 实战指南:服务注册、配置管理与负载均衡
  • Java 核心面试题与实战解析
  • AI 模型调优:网格搜索优化与实战
  • RMBG-2.0接入Stable Diffusion工作流实现生成抠图合成一体化
  • 2026 前端跨端框架选型指南
  • Python 核心概念与面试高频考点汇总
  • C++ 多线程互斥锁实战:解决竞态条件与死锁
  • C++11 新特性详解:Lambda 表达式、可变参数模板与包装器
  • MySQL 基础:AS、DISTINCT 与 WHERE 用法详解
  • C++ 红黑树原理与实现详解
  • Android 动态加载技术:原理、场景与实现思路
  • DAG 动态规划:嵌套矩形与地铁间谍问题
  • 基于 cocotb 与 VCS 验证 Xilinx FPGA IP 核实战
  • OpenClaw 本地 AI 智能体入门与实战指南
  • C++ 面试高频考点:从语言特性到虚函数机制
  • 数据分析师的核心职责与工作流程解析
  • 链表经典 OJ 题目实战解析
  • Java 获取 100 以内所有奇数的三种实现方式
  • Stable Diffusion 之外:三款主流图像生成工具对比

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online