smai.aismai.ai
SDK 示例

Python SDK

Python SDK usage examples

Installation

pip install openai

Basic 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 variables

Chat 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())

On this page