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等统一代理