本教程演示一种常见的 Chat Completions 风格接口。它是通用示例,不是经过验证的 RunAPI 接入教程,也不保证所有模型平台兼容。你需要从所选服务的文档确认端点、认证方式与请求结构。

1. 准备三项配置

在服务商官方文档中找到完整请求地址、可用模型标识与账号密钥。仅使用有权限的账号。密钥应在本机或服务端配置,不要上传到公共仓库。

# PowerShell:只影响当前终端进程
$env:LLM_ENDPOINT = "https://服务商域名/文档指定的完整端点"
$env:LLM_MODEL = "文档中的模型标识"
$env:LLM_API_KEY = "你的密钥"

这里的域名和模型名必须替换,不能原样运行。输入密钥前留意终端历史记录和屏幕共享;生产环境优先使用受控的密钥管理方式。

2. 用标准库发起请求

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

payload = {
    "model": os.environ["LLM_MODEL"],
    "messages": [{"role": "user", "content": "用两句话解释什么是 Token。"}]
}
req = Request(
    os.environ["LLM_ENDPOINT"],
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": "Bearer " + os.environ["LLM_API_KEY"],
        "Content-Type": "application/json"
    },
    method="POST"
)
try:
    with urlopen(req, timeout=60) as response:
        result = json.load(response)
    print(result["choices"][0]["message"]["content"])
except HTTPError as exc:
    print("HTTP 错误:", exc.code)
except URLError:
    print("网络连接失败,请检查地址和网络。")
except (KeyError, IndexError, TypeError):
    print("配置缺失或响应结构不同,请对照服务商文档。")

如果平台使用不同的认证头、消息格式或响应字段,需要相应修改。这里没有自动重试,避免新手在错误配置下重复产生消费。

3. 从错误定位问题

  • 401:常见原因是密钥无效、过期或认证格式错误。
  • 403:检查权限、地区限制与平台说明。
  • 404:检查端点路径;某些服务也用它表示模型不存在。
  • 429:可能涉及速率或额度限制,先读服务商错误信息。
  • 5xx 或超时:记录时间和请求标识,采用有限次数的退避重试;不要无限循环。

4. 让测试可复现

记录准确模型、输入、输出、耗时与账单。不要将凭据或敏感响应写进公开日志。测试成功只说明这一项请求可执行,不证明长期稳定。