OpenModelOpenModel
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}")

完整的错误处理模式请参阅错误处理。

下一步

本页目录