SDK 示例
Python SDK
Python SDK 使用示例
安装
pip install openai基础配置
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.smai.ai/v1"
)或使用环境变量:
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.smai.ai/v1"from openai import OpenAI
client = OpenAI() # 自动读取环境变量对话补全
基础用法
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "什么是人工智能?"}
]
)
print(response.choices[0].message.content)带参数
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "user", "content": "写一首关于春天的诗"}
],
temperature=0.8, # 创造性程度 0-2
max_tokens=500, # 最大输出长度
top_p=0.9, # 核采样参数
)
print(response.choices[0].message.content)流式输出
stream = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "讲一个故事"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)多轮对话
messages = [
{"role": "system", "content": "You are a helpful assistant."}
]
def chat(user_input):
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="gpt-4.1",
messages=messages
)
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})
return assistant_message
# 使用
print(chat("你好!"))
print(chat("你能做什么?"))
print(chat("帮我写一段代码"))图像输入
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图片"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
]
)
print(response.choices[0].message.content)错误处理
from openai import OpenAI, APIError, RateLimitError, AuthenticationError
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.smai.ai/v1"
)
try:
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
except AuthenticationError:
print("API Key 无效")
except RateLimitError:
print("请求频率超限,请稍后重试")
except APIError as e:
print(f"API 错误: {e}")异步调用
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="sk-your-api-key",
base_url="https://api.smai.ai/v1"
)
async def main():
response = await client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
asyncio.run(main())