Documentation Index
Fetch the complete documentation index at: https://apidoc.deerapi.com/llms.txt
Use this file to discover all available pages before exploring further.
优先通过 DeerAPI 发起请求;如果失败,自动切换到 OpenAI 官方 API 重试。
- 发送请求到 DeerAPI
- 如果 DeerAPI 返回错误,使用相同参数请求 OpenAI 官方 API
- 如果两者均失败,返回错误信息
示例代码
from openai import OpenAI, APIError
def make_request(messages: list, model: str = "your-model-id") -> str:
"""优先 DeerAPI,失败后降级到 OpenAI 官方 API。"""
# 1. 尝试 DeerAPI
try:
client = OpenAI(
base_url="https://api.deerapi.com/v1",
api_key="sk-your-deerapi-key", # 替换为你的 DeerAPI Key
)
completion = client.chat.completions.create(
model=model,
messages=messages,
)
return completion.choices[0].message.content
except APIError as e:
print(f"DeerAPI 请求失败: {e}")
# 2. 降级到 OpenAI
try:
client = OpenAI(
api_key="sk-your-openai-key", # 替换为你的 OpenAI Key
)
completion = client.chat.completions.create(
model=model,
messages=messages,
)
return completion.choices[0].message.content
except APIError as e:
print(f"OpenAI 请求也失败了: {e}")
return "DeerAPI 和 OpenAI 请求均失败。"
# 使用示例
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"},
]
response = make_request(messages)
print(response)
调用前请把 your-model-id 替换为 DeerAPI 实时定价页上的当前模型 ID。
注意事项
- 异常类型:使用
openai 包的 APIError(而非 error)来捕获 HTTP 级别的异常。
- 日志:生产环境中建议接入日志系统替代
print()。
- 监控:如果频繁降级到 OpenAI,可能说明服务方存在问题,需进一步排查。