Python SDK

使用 OpenAI 官方 Python SDK 接入 WLON API,只需修改 base_url 即可。

前提条件:Python 3.7+,已在 控制台 创建 API Key。

安装

pip install openai

建议使用虚拟环境或在项目中通过 requirements.txt 管理依赖:

# requirements.txt
openai>=1.0.0

配置客户端

base_url 指向 WLON API,填入你的 API Key 即可:

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)
提示:推荐通过环境变量传入 API Key,避免硬编码在代码中。详见下方「环境变量」章节。

基本用法

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "你是一个有帮助的助手。"},
        {"role": "user", "content": "用 Python 写一个快速排序"}
    ],
    temperature=0.7,
    max_tokens=2048
)

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

流式输出

设置 stream=True 即可逐 token 获取响应,适合实时展示场景:

from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "讲一个故事"}],
    stream=True
)

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

异步用法

使用 AsyncOpenAI 在异步框架(如 FastAPI、aiohttp)中调用:

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)

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

asyncio.run(main())

异步流式输出

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)

async def main():
    stream = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "写一首诗"}],
        stream=True
    )
    async for chunk in stream:
        content = chunk.choices[0].delta.content
        if content:
            print(content, end="", flush=True)
    print()

asyncio.run(main())

错误处理

SDK 会抛出特定异常,建议进行捕获处理:

from openai import OpenAI, APIError, APIConnectionError, RateLimitError, AuthenticationError

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api2everything.xyz/v1"
)

try:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "你好"}]
    )
    print(response.choices[0].message.content)
except AuthenticationError:
    print("API Key 无效,请检查密钥是否正确。")
except RateLimitError:
    print("请求过于频繁,请稍后重试。")
except APIConnectionError:
    print("无法连接到 API 服务器,请检查网络。")
except APIError as e:
    print(f"API 返回错误:{e.status_code} — {e.message}")

环境变量

推荐使用环境变量配置 API Key 和 Base URL,避免在代码中硬编码敏感信息:

# .env 或 shell 中设置
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api2everything.xyz/v1"

设置后无需在代码中传参,SDK 会自动读取:

from openai import OpenAI

# 自动读取 OPENAI_API_KEY 和 OPENAI_BASE_URL
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好!"}]
)
print(response.choices[0].message.content)
安全提醒:永远不要将 API Key 提交到 Git 仓库。将 .env 加入 .gitignore