外观
Python / JavaScript SDK
下面使用支持 Responses 的 OpenAI 官方 SDK。示例运行在本地或服务端,不要把 API Key 放进浏览器前端。Base URL 均为 https://api.avanovo.com/v1,Python 字段是 base_url,JavaScript 字段是 baseURL。
先按快速开始设置环境变量 TOKEN_RELAY_API_KEY,确认余额和模型权限。运行示例会发起一次模型请求并产生用量。
安装与运行
bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade openai
# 将下方 Python 示例保存为 responses.py
python responses.pybash
npm install openai
# 将下方 JavaScript 示例保存为 responses.mjs
node responses.mjsPython 建议使用 3.10 或更新版本;JavaScript 使用受支持的 Node.js LTS。生产项目应锁定实际验证过的 SDK 版本。Windows PowerShell 的环境变量输入方法见 Codex 教程,其中 Key 输入段同样适用于 SDK;Python 虚拟环境激活命令改用 .venv\Scripts\Activate.ps1。
完整示例
本地示例核对版本:Python openai 1.109.1、JavaScript openai 7.21.0。升级后请在自己的项目中核对兼容性。
py
import os
import openai
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKEN_RELAY_API_KEY"],
base_url="https://api.avanovo.com/v1",
max_retries=0,
timeout=60.0,
)
try:
raw = client.responses.with_raw_response.create(
model="gpt-6-astra",
input="请用一句话介绍你自己。",
max_output_tokens=256,
)
print("请求 ID:", raw.headers.get("x-oneapi-request-id", "响应未提供"))
response = raw.parse()
print("状态:", response.status)
print(response.output_text)
except openai.APIStatusError as error:
print("HTTP 状态:", error.status_code)
print("请求 ID:", error.response.headers.get("x-oneapi-request-id", "响应未提供"))
raise SystemExit(1)
except openai.APIConnectionError:
print("连接失败,请检查地址、网络和代理;先核对日志再决定是否重试。")
raise SystemExit(1)js
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.TOKEN_RELAY_API_KEY,
baseURL: 'https://api.avanovo.com/v1',
maxRetries: 0,
timeout: 60_000,
});
try {
const { data, response } = await client.responses.create({
model: 'gpt-6-astra',
input: '请用一句话介绍你自己。',
max_output_tokens: 256,
}).withResponse();
console.log('请求 ID:', response.headers.get('x-oneapi-request-id') ?? '响应未提供');
console.log('状态:', data.status);
console.log(data.output_text);
} catch (error) {
if (error instanceof OpenAI.APIError) {
console.error('HTTP 状态:', error.status ?? '连接失败');
console.error('请求 ID:', error.headers?.get('x-oneapi-request-id') ?? '响应未提供');
} else {
console.error('运行失败,请检查环境变量和本地配置。');
}
process.exitCode = 1;
}示例关闭 SDK 自动重试,便于将一次执行与一条日志对应。生产应用若需要重试,应设置次数、退避与费用边界,而不是无限循环。
成功标志与请求 ID
输出包含“状态:completed”和模型文本;若状态为 incomplete,先检查输出预算。再到使用日志核对时间、模型、用量及费用。
本站请求 ID 从原始 HTTP 响应头 x-oneapi-request-id 取得,不假定 SDK 的 _request_id 属性一定对应本站的 ID。如果响应未提供,保留请求时间、模型和脱敏错误信息。
示例捕获 HTTP 状态错误和连接错误,不输出完整请求头或 Key。连接超时不等于没有计费,重试前先核对日志。
后续开发
- Responses:流式事件、多轮历史、工具调用。
- Chat Completions:已有 Chat 应用迁移。
- 常见错误:401、403、429、超时与额度问题。
- 官方 SDK 文档:完整客户端接口;支持范围仍以本站说明为准。