SDK 与工具库
OpenAI SDK
使用官方 OpenAI SDK 调用 OpenModel Responses API
官方 OpenAI SDK 可以通过 client.responses.create 调用 OpenModel 的 Responses API。本指南仅适用于 Responses 协议;OpenModel 不提供 Chat Completions API 或其他 OpenAI API 端点。
安装
pip install openai配置
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)Node.js
import OpenAI from "openai"
const client = new OpenAI({
baseURL: "https://api.openmodel.ai/v1",
apiKey: "om-your-api-key",
})环境变量
你也可以通过环境变量配置 SDK,避免在代码中硬编码凭证:
export OPENAI_BASE_URL="https://api.openmodel.ai/v1"
export OPENAI_API_KEY="om-your-api-key"然后无需显式参数即可初始化客户端:
from openai import OpenAI
client = OpenAI() # 从环境变量读取模型名称
请从控制台的动态模型数据中选择 supported_protocols 包含 responses 的模型,并严格使用页面显示的模型名称。例如:
gpt-5.4
示例
基础响应
from openai import OpenAI
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
response = client.responses.create(
model="gpt-5.4",
input="用简单的语言解释量子计算。",
)
print(response.output_text)流式响应
from openai import OpenAI
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
stream = client.responses.create(
model="gpt-5.4",
input="写一个关于机器人学画画的短故事。",
stream=True,
)
for event in stream:
if hasattr(event, "delta") and event.delta:
print(event.delta, end="", flush=True)
print()多轮对话
from openai import OpenAI
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
response = client.responses.create(
model="gpt-5.4",
instructions="你是一位数学辅导老师。",
input=[
{
"role": "user",
"content": "x^3 的导数是什么?",
},
{
"role": "assistant",
"content": "x^3 的导数是 3x^2。",
},
{
"role": "user",
"content": "那积分呢?",
},
],
)
print(response.output_text)工具调用(Function Calling)
from openai import OpenAI
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
tools = [
{
"type": "function",
"name": "get_weather",
"description": "获取指定位置的当前天气。",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和国家,例如 '东京, 日本'",
},
},
"required": ["location"],
},
},
]
response = client.responses.create(
model="gpt-5.4",
input="旧金山的天气怎么样?",
tools=tools,
)
for item in response.output:
if item.type == "function_call":
print(f"函数: {item.name}")
print(f"参数: {item.arguments}")异步用法 (Python)
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
async def main():
response = await client.responses.create(
model="gpt-5.4",
input="你好!",
)
print(response.output_text)
asyncio.run(main())错误处理
OpenAI SDK 抛出类型化的异常,你可以捕获并处理:
from openai import OpenAI, APIConnectionError, APIStatusError, APITimeoutError
client = OpenAI(
base_url="https://api.openmodel.ai/v1",
api_key="om-your-api-key",
)
try:
response = client.responses.create(
model="gpt-5.4",
input="你好!",
)
except APIConnectionError:
print("连接失败,请检查网络。")
except APITimeoutError:
print("请求超时。")
except APIStatusError as e:
print(f"API 错误 {e.status_code}: {e.message}")完整的错误处理模式请参阅错误处理。