SDK 示例
Python SDK
Python SDK usage examples
Installation
pip install openaiBasic Configuration
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.smai.ai/v1"
)Or use environment variables:
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.smai.ai/v1"from openai import OpenAI
client = OpenAI() # Automatically reads environment variablesChat Completion
Basic Usage
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is artificial intelligence?"}
]
)
print(response.choices[0].message.content)With Parameters
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "user", "content": "Write a poem about spring"}
],
temperature=0.8, # Creativity level 0-2
max_tokens=500, # Maximum output length
top_p=0.9, # Nucleus sampling parameter
)
print(response.choices[0].message.content)Streaming Output
stream = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Tell a story"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)Multi-turn Conversation
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
# Usage
print(chat("Hello!"))
print(chat("What can you do?"))
print(chat("Help me write a piece of code"))Image Input
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
]
)
print(response.choices[0].message.content)Error Handling
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 is invalid")
except RateLimitError:
print("Request rate limit exceeded, please try again later")
except APIError as e:
print(f"API error: {e}")Asynchronous Calls
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())