SDK

OpenAI Python

使用官方 Python SDK 连接 UOUODUO Gateway。

安装

pip install openai
export UOUODUO_API_KEY="sk-xxx..."

客户端配置

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["UOUODUO_API_KEY"],
    base_url="https://api.example.com/v1",
)

如果你不想在代码里读取环境变量,也可以把 key 注入到部署平台的 secret manager。

Chat Completions

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["UOUODUO_API_KEY"],
    base_url="https://api.example.com/v1",
)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "你是一个简洁的生产环境助手。"},
        {"role": "user", "content": "写一句发布说明。"},
    ],
)

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

流式输出

stream = client.chat.completions.create(
    model="gpt-4o-mini",
    stream=True,
    messages=[{"role": "user", "content": "逐步解释 SSE。"}],
)

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

Embeddings

embedding = client.embeddings.create(
    model="text-embedding-3-small",
    input=["UOUODUO Gateway 文档", "向量检索样例"],
)

print(len(embedding.data[0].embedding))

错误处理

from openai import APIError, AuthenticationError, RateLimitError

try:
    client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "hello"}],
    )
except AuthenticationError:
    print("API key 无效,请在 /app/keys 重新创建。")
except RateLimitError:
    print("触发限流或余额不足,请查看 /app/usage。")
except APIError as exc:
    print(f"网关或上游异常: {exc}")

token 与成本

同步响应里通常包含 `usage.prompt_tokens`、`usage.completion_tokens` 和 `usage.total_tokens`。最终账单和价格以 `/app/logs` 与 `/app/usage` 为准。