AI 技术 · 开发实践

Python 接入 Ahri API:不装第三方库,跑通第一个文本请求

用 Python 标准库 urllib 调用 Ahri API:设置密钥环境变量、发送完整请求、检查 AHRI_OK,并排查网络与鉴权问题。

实测说明:本文完整代码在 Windows、Python 3.14.3 环境向 Ahri API 发起两次真实请求,两次均返回 AHRI_OK(2026-10-05 20:29 UTC)。仅验证本文的非流式文本请求,不代表其他 API 或所有 SDK 功能兼容。

快速运行(Windows PowerShell)

将完整代码保存为 first_request.py,然后在同一个终端运行。这里只需 Python,无须 pip 安装。

$env:AHRI_API_KEY="替换成你自己的 Ahri Key"
python first_request.py

提示缺少 AHRI_API_KEY 或出现同名 KeyError 时,先在当前终端设置上面的环境变量。请求显式设置 User-Agent 为 AhriTutorial/1.0;本次 Windows 实测中 urllib 默认 User-Agent 返回 403,使用本文标识后成功。鉴权失败仍需检查密钥和账户权限。

适用场景

如果你正在用 Python 编写一个小型服务、脚本或联调工具,又不希望安装第三方 HTTP 库,可以先用标准库 urllib.request 发出一次非流式文本请求。本教程只验证一次聊天请求和文本响应读取,不涉及 Responses、流式输出、图片或其他能力。

前置条件

操作步骤

  1. 设置环境变量。Linux 或 macOS 可执行 export AHRI_API_KEY='你的密钥';Windows PowerShell 可执行 $env:AHRI_API_KEY='你的密钥'。
  2. 代码使用已联调的地址 https://ahriapi.com/v1/chat/completions,请求模型为 gpt-6.1-sol。
  3. 使用 Request 设置 JSON 请求体、Bearer 鉴权、内容类型和 AhriTutorial/1.0 User-Agent。
  4. 运行 python first_request.py,检查终端是否输出 AHRI_OK。

完整代码

import json
import os
from urllib.error import HTTPError, URLError
from urllib.request import Request, urlopen


api_key = os.environ["AHRI_API_KEY"]
payload = {"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Reply with only AHRI_OK"}]}
request = Request(
    "https://ahriapi.com/v1/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "User-Agent": "AhriTutorial/1.0"},
    method="POST",
)
try:
    with urlopen(request, timeout=90) as response:
        result = json.load(response)
    content = result["choices"][0]["message"]["content"]
    if not isinstance(content, str) or not content.strip():
        raise ValueError("The gateway returned no text")
    print(content.strip())
except HTTPError as error:
    raise SystemExit(f"HTTP {error.code}: check the API key, model access and quota") from error
except URLError as error:
    raise SystemExit("Network error: check connectivity and proxy settings") from error

成功标准

请求返回 HTTP 成功响应,JSON 中存在 choices[0].message.content,程序打印 AHRI_OK。代码用 json.load(response) 解析响应,设置 90 秒超时,输出时去除首尾空白。

常见问题

来源与边界

HTTP 请求对象、超时、上下文管理器、异常处理和响应字节读取方式参考 Python 官方文档。Ahri 的地址、模型、鉴权格式、请求字段和响应路径来自本次真实联调记录,记录范围仅为非流式文本聊天,不代表其他接口或能力已获得官方兼容性承诺。

Python urllib.request 官方文档

正在为项目选择统一的 AI API 接入方式?
可以先阅读 Ahri API 官方资料,再将本文中的通用步骤替换成已确认的真实参数。
前往 ahriapi.com 中转站了解服务 ↗

参考资料

本文仅供技术参考,不代表来源方或 Ahri API 的官方承诺。接口、模型、价格和服务条款以 Ahri API 最新官方信息为准。