SDK / 集成/SDK 接入

OpenAI SDK

Python 与 Node.js 官方 SDK 的完整接入写法,含流式与工具调用。

本页目录

Python

bash
pip install openai
python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.apione.ai/v1",
    api_key=os.environ["APIONE_API_KEY"],
    timeout=60.0,
    max_retries=2,
)

resp = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "介绍一下你自己"}],
)
print(resp.choices[0].message.content)
print(resp.model, resp.usage.total_tokens)

流式

python
with client.chat.completions.stream(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "写一首关于缓存的短诗"}],
) as stream:
    for event in stream:
        if event.type == "content.delta":
            print(event.delta, end="", flush=True)

异步

python
from openai import AsyncOpenAI

client = AsyncOpenAI(
    base_url="https://api.apione.ai/v1",
    api_key=os.environ["APIONE_API_KEY"],
)

async def ask(prompt: str) -> str:
    resp = await client.chat.completions.create(
        model="gemini-3.5-flash",
        messages=[{"role": "user", "content": prompt}],
    )
    return resp.choices[0].message.content

Node.js / TypeScript

bash
npm i openai
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.apione.ai/v1",
  apiKey: process.env.APIONE_API_KEY,
  timeout: 60_000,
  maxRetries: 2,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "介绍一下你自己" }],
});
console.log(resp.choices[0].message.content);

工具调用

javascript
const tools = [{
  type: "function",
  function: {
    name: "get_weather",
    description: "查询某个城市的当前天气",
    parameters: {
      type: "object",
      properties: { city: { type: "string" } },
      required: ["city"],
    },
  },
}];

const first = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "北京今天天气怎么样?" }],
  tools,
});

const call = first.choices[0].message.tool_calls?.[0];
// 执行你自己的函数,再把结果以 role: "tool" 回传,进行第二轮调用
说明

SDK 自带的 max_retries 与网关的故障转移是两层机制:网关在一次请求内换渠道,SDK 在请求失败后重发。两者叠加时注意总超时预算。

联系我们

文档没写清楚,或者需要人工协助?按问题类型选一个渠道即可。

邮箱

技术支持support@apione.ai

WhatsApp

Telegram

工单

计费与账户控制台 › 反馈