Skip to main content

API 端点

本指南提供了如何有效与 API 端点交互的关键信息,以便利用我们的模型实现无缝集成和自动化。请注意,这是一个实验性设置,未来可能会为了增强功能而进行更新。

身份验证

为了确保安全访问 API,身份验证是必需的 🛡️。您可以使用 Bearer Token 机制对 API 请求进行身份验证。请从 Open WebUI 的 设置 > 个人资料 中获取您的 API 密钥,或者使用 JWT (JSON Web Token) 进行身份验证。

Swagger 文档链接

important

请务必将 ENV 环境变量设置为 dev,以便访问这些服务的 Swagger 文档。如果没有此配置,文档将无法查看。

访问 Open WebUI 提供的不同服务的详细 API 文档:

应用程序文档路径
主应用 (Main)/docs

值得注意的 API 端点

📜 获取所有模型

  • 端点: GET /api/models

  • 描述: 获取通过 Open WebUI 创建或添加的所有模型。

  • 示例:

    curl -H "Authorization: Bearer YOUR_API_KEY" http://localhost:3000/api/models

💬 聊天补全 (Chat Completions)

  • 端点: POST /api/chat/completions

  • 描述: 作为 OpenAI API 兼容的聊天补全端点,支持 Open WebUI 上的所有模型,包括 Ollama 模型、OpenAI 模型以及 Open WebUI Function 模型。

  • Curl 示例:

    curl -X POST http://localhost:3000/api/chat/completions \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "model": "llama3.1",
    "messages": [
    {
    "role": "user",
    "content": "天空为什么是蓝色的?"
    }
    ]
    }'
  • Python 示例:

    import requests

    def chat_with_model(token):
    url = 'http://localhost:3000/api/chat/completions'
    headers = {
    'Authorization': f'Bearer {token}',
    'Content-Type': 'application/json'
    }
    data = {
    "model": "granite3.1-dense:8b",
    "messages": [
    {
    "role": "user",
    "content": "天空为什么是蓝色的?"
    }
    ]
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()

🦙 Ollama API 代理支持

如果您想直接与 Ollama 模型交互(包括生成嵌入或原始提示词流),Open WebUI 通过代理路由提供对原生 Ollama API 的透明透传。

🔁 生成补全 (流式)

curl http://localhost:3000/ollama/api/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"prompt": "天空为什么是蓝色的?"
}'