跳转到内容

OpenAI 兼容 API 与 Python SDK

OpenAI 兼容 API 与 Python SDK

学习目标

理解 Nanobot 如何提供 OpenAI 兼容的 HTTP API 和 Python SDK,使得已有 OpenAI 代码无需修改即可使用。

项目实践

OpenAI 兼容 API

Nanobot 的 API 服务器实现了 OpenAI 兼容的端点:

端点功能
/v1/chat/completions聊天补全(支持流式 SSE)
/v1/models模型列表
/v1/files文件上传

流式支持

  • SSE(Server-Sent Events)流式输出
  • 兼容 OpenAI 的 stream: true 参数

使用示例

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8900/v1", api_key="nanobot")
response = client.chat.completions.create(
model="anthropic/claude-opus-4-5",
messages=[{"role": "user", "content": "Hello!"}]
)

Python SDK 门面

nanobot/nanobot.py 提供了 Python SDK facade:

from nanobot import Nanobot
bot = Nanobot()
response = await bot.chat(content="Hello!", session_key="cli:direct")

SDK 封装了:

  • 消息发送与响应
  • 会话管理
  • 流式输出

API 配置

{
"api": {
"host": "127.0.0.1",
"port": 8900,
"timeout": 120.0
}
}

默认绑定 localhost,安全性考虑不暴露到公网。

设计取舍

为什么兼容 OpenAI 格式

原因:OpenAI API 格式已成为 AI 应用的事实标准。兼容该格式意味着:

  • 已有 OpenAI 客户端代码(SDK、CLI 工具、第三方应用)可以直接使用
  • 降低用户迁移成本
  • 支持 litellm 等统一代理

参考来源