Python 示例
推荐使用 OpenAI Python SDK,通过自定义 base_url 接入。
安装
bash
python -m pip install --upgrade openai设置环境变量:
bash
export NEWAPI_API_KEY="sk-你的令牌"powershell
$env:NEWAPI_API_KEY="sk-你的令牌"普通请求
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["NEWAPI_API_KEY"],
base_url="https://coffeecatbox.cc/v1",
)
response = client.chat.completions.create(
model="控制台中的模型名",
messages=[
{"role": "system", "content": "你是一个简洁的中文助手。"},
{"role": "user", "content": "用三句话介绍 Python。"},
],
)
print(response.choices[0].message.content)流式请求
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["NEWAPI_API_KEY"],
base_url="https://coffeecatbox.cc/v1",
)
stream = client.chat.completions.create(
model="控制台中的模型名",
messages=[
{"role": "user", "content": "分点解释什么是流式响应。"},
],
stream=True,
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
print()超时与重试
python
from openai import OpenAI
client = OpenAI(
api_key=os.environ["NEWAPI_API_KEY"],
base_url="https://coffeecatbox.cc/v1",
timeout=60.0,
max_retries=2,
)只对临时网络错误和限流做有限重试。对于有副作用的请求,应在业务层设计幂等机制,避免重复执行。
捕获错误
python
import openai
try:
response = client.chat.completions.create(
model="控制台中的模型名",
messages=[{"role": "user", "content": "你好"}],
)
except openai.AuthenticationError:
print("令牌无效或已过期")
except openai.RateLimitError:
print("请求过快或额度不足")
except openai.APIConnectionError as error:
print(f"网络连接失败: {error}")
except openai.APIStatusError as error:
print(f"API 错误 {error.status_code}: {error.response}")