使用 OpenAI SDK
选好语言与终端,设置密钥和模型,再运行一条最小请求。
内容核对:2026-10-10 真实接入尚未实测
查看验证范围
适用范围:OpenAI JavaScript / Python SDK 示例。示例使用环境变量读取密钥,分别提供 Responses 和 Chat Completions 调用。内容核对日期为 2026-10-10;本地模拟接口检查不代表线上能力已验证,未执行真实 1A1API 模型接入测试。
1. 安装所选语言的 SDK
只需选择一门语言,在自己的测试目录操作。
npm install openai
python3 -m pip install openai
py -m pip install openai
2. 设置密钥与模型
在运行脚本的同一终端设置变量,把 YOUR_MODEL_ID 替换为当前密钥可用且支持目标接口的模型。每次执行示例都会产生实际请求;首次测试关闭 SDK 自动重试。
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_MODEL="YOUR_MODEL_ID"
$env:OPENAI_API_KEY="sk-your-api-key"
$env:OPENAI_MODEL="YOUR_MODEL_ID"
接口地址与运行环境说明
https://1a1api.top/v1OPENAI_API_KEY 环境变量,不要写进源码。OPENAI_MODEL,把 YOUR_MODEL_ID 换成当前密钥可用、支持所选接口的模型。/v1/responses 或 /v1/chat/completions 写进 baseURL。仅安装所选语言的 SDK。JavaScript 使用 SDK 支持的 Node.js 版本;Python 的安装与运行要使用同一解释器。提示“找不到命令”时先安装运行环境,要求见 JavaScript SDK与Python SDK。
3. 保存并运行 JavaScript 脚本
用编辑器把完整示例保存为 first-response.mjs,放在刚安装 SDK 的目录。使用 .mjs 可以直接运行下方 import 与顶层 await。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://1a1api.top/v1",
maxRetries: 0,
timeout: 60_000,
});
const model = process.env.OPENAI_MODEL;
if (!model || model === "YOUR_MODEL_ID") {
throw new Error("请先把 OPENAI_MODEL 设置为当前密钥可用的模型 ID");
}
const response = await client.responses.create({
model,
input: "Reply with exactly: ok",
});
console.log(response.output_text);
node first-response.mjs
成功时终端应显示 ok。随后按执行时间到控制台核对模型、状态和费用;收到 JSON 或 HTTP 200 还不能代替这一步。
3. 保存并运行 Python 脚本
把完整示例保存为 first_response.py。文件名不要叫 openai.py,避免遮蔽安装的 SDK。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://1a1api.top/v1",
max_retries=0,
timeout=60.0,
)
model = os.environ["OPENAI_MODEL"]
if model == "YOUR_MODEL_ID":
raise ValueError("请先把 OPENAI_MODEL 设置为当前密钥可用的模型 ID")
response = client.responses.create(
model=model,
input="Reply with exactly: ok",
)
print(response.output_text)
python3 first_response.py
py first_response.py
看到 ok 后核对调用日志。若提示找不到 openai,用运行脚本的同一解释器重新执行 -m pip install openai,不要重复发送请求解决安装问题。
4. 核对输出与调用日志
终端应显示 ok。到控制台按执行时间核对模型、状态和费用;收到 JSON 或 HTTP 200 还不能代替这一步。
日志找不到请求时先核对筛选与客户端配置,日志有失败记录时按错误原文排查。先完成一条短请求,再考虑流式输出或实际任务。
可选:Chat Completions(JavaScript 示例)
保留 Chat Completions 调用
现有代码使用 messages 和 choices 时,可以保留调用方式并配置同一 Base URL;先确认目标模型与当前分组支持该接口。
OpenAI 官方建议新项目使用 Responses,Chat Completions 仍受支持,见接口迁移说明。官方 API 的能力不等于当前 1A1API 分组已开放全部能力。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://1a1api.top/v1",
maxRetries: 0,
timeout: 60_000,
});
const model = process.env.OPENAI_MODEL;
if (!model || model === "YOUR_MODEL_ID") {
throw new Error("请先把 OPENAI_MODEL 设置为当前密钥可用的模型 ID");
}
const response = await client.chat.completions.create({
model,
messages: [{ role: "user", content: "Reply with exactly: ok" }],
});
console.log(response.choices[0]?.message?.content);
保存为 chat-completion.mjs,在已设置变量的终端运行 node chat-completion.mjs,再核对回复和日志。
可选:逐段读取 Responses 输出
逐段读取 Responses 输出
先跑通上方非流式示例。需要流式输出时,使用下面完整脚本;流式返回的是事件序列,不能继续直接打印 response.output_text。两个示例任选一个执行。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://1a1api.top/v1",
maxRetries: 0,
timeout: 60_000,
});
const model = process.env.OPENAI_MODEL;
if (!model || model === "YOUR_MODEL_ID") {
throw new Error("请先把 OPENAI_MODEL 设置为当前密钥可用的模型 ID");
}
const stream = await client.responses.create({
model,
input: "Reply with exactly: ok",
stream: true,
});
for await (const event of stream) {
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
}
process.stdout.write("\n");
保存后运行 node stream-response.mjs。输出应逐段出现,随后核对对应日志。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://1a1api.top/v1",
max_retries=0,
timeout=60.0,
)
model = os.environ["OPENAI_MODEL"]
if model == "YOUR_MODEL_ID":
raise ValueError("请先把 OPENAI_MODEL 设置为当前密钥可用的模型 ID")
with client.responses.stream(
model=model,
input="Reply with exactly: ok",
) as stream:
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
print()
macOS / Linux / WSL 运行 python3 stream_response.py;Windows PowerShell 运行 py stream_response.py。连接中断或已收到部分输出时先保存结果和错误状态,不自动重放整个任务。流式输出不能保证解决首次输出前的超时。
请求失败时检查
baseURL 被重复加了 /v1,或把完整接口路径填到了 Base URL。Authorization: Bearer ... 请求头。使用官方 SDK 时,请先确认环境变量已经生效。stream: true 后沿用非流式读取代码。