Skip to content

Python SDK 接入指南

本指南介绍如何使用 Python 的 OpenAI SDK 接入 Star API。

安装

bash
pip install openai

提示

推荐使用 openai>=1.0.0 版本。如果您使用的是旧版本,请先升级:pip install --upgrade openai

基本配置

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

建议使用环境变量管理 API Key:

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("STAR_API_KEY"),
    base_url="https://star.zhxyclaw.cn/v1"
)

聊天补全

基本调用

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": "你是一个有帮助的AI助手。"},
        {"role": "user", "content": "请用一句话解释什么是量子计算。"}
    ],
    temperature=0.7,
    max_tokens=200
)

print(response.choices[0].message.content)

流式输出

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

stream = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "user", "content": "写一首关于月亮的七言绝句。"}
    ],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content is not None:
        print(content, end="", flush=True)

print()

多轮对话

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

# 维护对话历史
messages = [
    {"role": "system", "content": "你是一个友好的AI助手,用中文回答问题。"}
]

def chat(user_message):
    messages.append({"role": "user", "content": user_message})

    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=messages,
        temperature=0.7
    )

    assistant_message = response.choices[0].message.content
    messages.append({"role": "assistant", "content": assistant_message})

    return assistant_message

# 使用
print(chat("你好,我叫小明。"))
print(chat("你还记得我的名字吗?"))

使用不同模型

python
# 使用 Claude
response = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "你好!"}]
)

# 使用 DeepSeek
response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "你好!"}]
)

# 使用 Gemini
response = client.chat.completions.create(
    model="gemini-3.1-pro-preview",
    messages=[{"role": "user", "content": "你好!"}]
)

图像生成

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

response = client.images.generate(
    model="dall-e-3",
    prompt="一只可爱的橘猫在阳光下打盹",
    n=1,
    size="1024x1024",
    quality="standard"
)

image_url = response.data[0].url
print(f"图片 URL:{image_url}")

文本嵌入

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Star API 是一个统一的大模型接口网关"
)

embedding = response.data[0].embedding
print(f"向量维度:{len(embedding)}")

语音转文字

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

with open("audio.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio_file,
        language="zh"
    )

print(transcript.text)

文字转语音

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

response = client.audio.speech.create(
    model="tts-1",
    input="你好,欢迎使用 Star API!",
    voice="alloy",
    response_format="mp3"
)

response.stream_to_file("output.mp3")

错误处理

python
from openai import OpenAI, APIError, RateLimitError, AuthenticationError

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

try:
    response = client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": "你好!"}]
    )
    print(response.choices[0].message.content)
except AuthenticationError:
    print("API Key 无效,请检查您的密钥。")
except RateLimitError:
    print("请求频率过高,请稍后重试。")
except APIError as e:
    print(f"API 错误:{e}")
except Exception as e:
    print(f"未知错误:{e}")

异步调用

python
import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    api_key="sk-your-api-key",
    base_url="https://star.zhxyclaw.cn/v1"
)

async def main():
    response = await client.chat.completions.create(
        model="gpt-5.4",
        messages=[{"role": "user", "content": "你好!"}]
    )
    print(response.choices[0].message.content)

asyncio.run(main())

下一步

Star API - 统一的大模型接口网关