Python SDK
SDKMAX 完全兼容 OpenAI 接口协议,因此在 Python 中直接使用官方 openai 库即可接入,无需安装单独的 SDKMAX SDK。
安装
bash
pip install openai初始化客户端
python
from openai import OpenAI
client = OpenAI(
api_key="sk-你的密钥", # 在 SDKMAX 控制台创建,见「创建 API Key」
base_url="https://api.sdkmax.com/v1",
)推荐用环境变量
bash
export OPENAI_API_KEY="sk-你的密钥"
export OPENAI_BASE_URL="https://api.sdkmax.com/v1"设置后可直接 client = OpenAI(),无需在代码中硬编码密钥。
对话补全
python
resp = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "介绍一下 SDKMAX 的核心能力"},
],
)
print(resp.choices[0].message.content)流式输出
python
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "写一首关于 AI 网关的短诗"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)切换模型
只需修改 model 参数,其余代码不变:
python
for model in ["gpt-4o", "claude-opus-4-8", "deepseek-chat"]:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "1+1等于几?"}],
)
print(model, "->", resp.choices[0].message.content)文本向量化(Embeddings)
python
resp = client.embeddings.create(
model="text-embedding-3-small",
input="SDKMAX 是企业级 AI 网关",
)
print(len(resp.data[0].embedding))生成图片
python
resp = client.images.generate(
model="dall-e-3",
prompt="一只在赛博朋克城市里骑摩托车的猫",
size="1024x1024",
)
print(resp.data[0].url)详见 图片 API。
错误处理
openai 库会把 SDKMAX 返回的 4xx/5xx 错误映射为对应的异常类型:
python
from openai import APIStatusError, RateLimitError
try:
client.chat.completions.create(model="gpt-4o", messages=[...])
except RateLimitError:
# 429:额度耗尽或触发限流,建议退避重试
...
except APIStatusError as e:
# 其它 4xx/5xx,e.status_code / e.message 可用于排查
print(e.status_code, e.message)完整错误码含义见 错误码。
异步用法
python
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(api_key="sk-你的密钥", base_url="https://api.sdkmax.com/v1")
async def main():
resp = await client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
asyncio.run(main())