实测说明:本文完整代码在 Windows、Python 3.14.3、openai 3.24.0 环境向 Ahri API 发起两次真实请求,两次均返回 AHRI_OK(2026-10-05 20:29 UTC)。仅验证本文的非流式文本请求,不代表其他 API 或所有 SDK 功能兼容。
快速运行(Windows PowerShell)
建议在测试虚拟环境运行,避免升级影响现有项目。保存完整代码为 sdk_request.py;以下版本与本次验证一致。
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install "openai==3.24.0"
$env:AHRI_API_KEY="替换成你自己的 Ahri Key"
.\.venv\Scripts\python.exe sdk_request.py成功时输出 AHRI_OK。若出现 ModuleNotFoundError: openai,请确认安装依赖和运行脚本使用同一个 Python。Linux/macOS 可用 .venv/bin/python,并用 export AHRI_API_KEY 设置密钥;本次实跑环境是 Windows,未声称其他系统已实测。
适用场景
如果现有 Python 服务已经使用 OpenAI Python SDK 的聊天补全接口,而现在需要改用 Ahri API,可以先完成一次最小化的非流式文本请求。这个方案只调整连接地址、模型和密钥读取方式,保留 client.chat.completions.create 调用结构。
前置条件
- 准备可用的 Ahri API Key,并通过环境变量
AHRI_API_KEY提供。 - 使用 Python 环境安装项目需要的
openai包。 - 本示例使用服务端联调记录中确认的地址
https://ahriapi.com/v1和模型gpt-6.1-sol。
操作步骤
- 安装依赖。在项目的虚拟环境中安装或保留现有的 OpenAI Python SDK。
- 设置密钥。例如在 Linux 或 macOS shell 中执行
export AHRI_API_KEY='your-ahri-key'。不要把密钥写进源码、提交到版本库或打印到日志。 - 替换客户端配置。将
base_url指向 Ahri 的/v1地址,将模型改为已确认的gpt-6.1-sol。本例关闭客户端自动重试,并把超时设为 90 秒。 - 运行最小请求。保存下面代码后执行,程序会读取
choices[0].message.content并输出结果。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["AHRI_API_KEY"],
base_url="https://ahriapi.com/v1",
timeout=90.0,
max_retries=0,
)
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "Reply with only AHRI_OK"}],
)
content = response.choices[0].message.content
if not content or not content.strip():
raise ValueError("The gateway returned no text")
print(content.strip())验证标准
请求成功时,输出内容应为 AHRI_OK。服务端联调记录确认了对应的鉴权形式:Authorization: Bearer <your key>,以及非流式聊天的响应路径 choices[0].message.content。若需要确认请求是否到达网关,可结合服务端日志或 HTTP 状态码排查。
常见问题
返回 401 或 403
检查 AHRI_API_KEY 是否存在、是否包含多余空格,以及请求是否确实使用了 https://ahriapi.com/v1。不要把 /chat/completions 再重复拼接到 base_url。
返回模型不存在
确认请求中的模型名为 gpt-6.1-sol,并检查 Ahri 账户当前是否允许使用该模型。
请求超时
本例设置了 90 秒超时,并将 max_retries 设为 0,便于直接观察失败原因。生产服务是否应增加重试,需要结合幂等性、负载和网关错误类型单独设计。
来源与边界
SDK 配置和聊天补全调用方式参考 OpenAI Python SDK README。Ahri 地址、模型、鉴权字段和响应路径来自本次真实联调记录;该记录的范围仅是非流式文本聊天,不代表 Responses、流式输出、图像、文件、工具调用或其他第三方兼容性已经验证。