Swape.AISwape.AI Docs

OpenAI SDK

通过修改 Base URL 即可使用官方 OpenAI SDK 接入 OpenModel

使用 OpenAI API 格式接入 OpenModel 最简单的方式是通过官方 OpenAI SDK。只需将 Base URL 指向 OpenModel,并使用你的 OpenModel API Key。

安装

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()  # 从环境变量读取

模型名称

使用 控制台 中显示的模型名称。OpenModel 根据模型名称进行路由,因此名称必须与平台上配置的模型一致。常见模型:

  • gpt-4o
  • gpt-4o-mini
  • claude-sonnet-4-20250514
  • gemini-2.0-flash

示例

基础补全

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-4o",
    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-4o",
    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-4o",
    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-4o",
    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-4o",
        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-4o",
        input="你好!",
    )
except APIConnectionError:
    print("连接失败,请检查网络。")
except APITimeoutError:
    print("请求超时。")
except APIStatusError as e:
    print(f"API 错误 {e.status_code}: {e.message}")

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

下一步

On this page