smai.aismai.ai
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())

相关链接

目录