跳转至

OpenWebUI 聊天客户端

PyPI version Python 3.8+ PyPI Downloads License: GPL v3

openwebui-chat-client 是一个全面的、有状态的 Python 客户端库,用于 Open WebUI API。它支持单/多模型聊天、工具使用、文件上传、检索增强生成(RAG)、知识库管理和高级聊天组织功能。


✨ 主要特性

  • 自主任务处理: 使用 process_taskstream_process_task 方法进行多步骤迭代问题解决
  • 自动元数据生成: 自动为您的对话生成标签和标题
  • 实时流式聊天: 体验打字机效果的实时内容更新
  • 多模态对话: 支持文本、图像和文件上传
  • 单模型和并行模型聊天: 同时查询一个或多个模型
  • 工具集成: 在聊天请求中使用服务器端工具(函数)
  • RAG 集成: 使用文件或知识库进行检索增强响应
  • 知识库管理: 创建、更新和使用知识库
  • 笔记和提示词管理: 完整的笔记和提示词 CRUD 操作
  • 模型管理: 列出、创建、更新和删除自定义模型条目
  • 异步支持: 完整的异步客户端支持,适用于高性能应用

⚡ 快速开始

安装

pip install openwebui-chat-client

Hello World 示例

from openwebui_chat_client import OpenWebUIClient
import logging

logging.basicConfig(level=logging.INFO)

# 初始化客户端
client = OpenWebUIClient(
    base_url="http://localhost:3000",
    token="your-bearer-token",
    default_model_id="gpt-4.1"
)

# 发送聊天消息
result = client.chat(
    question="你好,你好吗?",
    chat_title="我的第一次聊天"
)

if result:
    print(f"响应: {result['response']}")
    print(f"聊天 ID: {result['chat_id']}")

异步示例

对于异步应用程序(如 FastAPI、Sanic),使用 AsyncOpenWebUIClient

import asyncio
from openwebui_chat_client import AsyncOpenWebUIClient

async def main():
    client = AsyncOpenWebUIClient(
        base_url="http://localhost:3000",
        token="your-bearer-token",
        default_model_id="gpt-4.1"
    )

    result = await client.chat(
        question="异步问候!",
        chat_title="异步聊天"
    )

    if result:
        print(f"响应: {result['response']}")

    await client.close()

if __name__ == "__main__":
    asyncio.run(main())

🔑 获取 API 密钥

  1. 登录您的 Open WebUI 账户
  2. 点击左下角的个人头像/名称,进入 设置
  3. 导航到 账户 部分
  4. 找到 API 密钥 区域并 创建新密钥
  5. 复制生成的密钥并将其用作 token

📚 文档


🤝 贡献

欢迎贡献、问题和功能请求! 请随时查看 问题页面 或提交拉取请求。


📄 许可证

本项目采用 GNU 通用公共许可证 v3.0 (GPLv3) 授权。 详见 LICENSE 文件。