使用 Python 和 Node.js 接入 302API:完成第一次文本请求
更新于 2026-09-29。示例所用 SDK 为 Python SDK 3.20.0 / Node.js SDK 6.49.0,已完成本地模拟响应验证;本次没有执行真实模型调用。当前可用模型和额度以控制台为准。
想给自己的应用加上模型对话能力,可以先从一个最小文本请求开始。本文使用 302API 的 Chat Completions 接口,展示 Python 和 Node.js 的接入方式。
1. 准备三项配置
| 配置 | 内容 |
|---|---|
| SDK Base URL | https://api.302api.com/v1 |
| API Key | 在 302API 控制台 创建 |
| 模型 ID | 本文示例使用 gpt-6-astra,调用前确认控制台当前可用性 |
SDK 会在 Base URL 后拼接接口路径,不要重复填写 /v1 或 /chat/completions。
密钥保存在服务端环境变量 API302_KEY,不要放入网页前端或公开仓库。模型请求会消耗账户额度;输出上限不等于固定费用,也不代表一定有可见答案。
2. Python 示例
建议在独立虚拟环境中安装 openai==3.20.0。下列代码运行前,先在环境中安全设置 API302_KEY;不要把真实密钥直接写入命令或代码。
python3 -m venv .venv
source .venv/bin/activate
python -m pip install openai==3.20.0
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["API302_KEY"],
base_url="https://api.302api.com/v1",
max_retries=0,
timeout=120.0,
)
try:
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "请用一句话解释什么是 API。"}],
max_completion_tokens=256,
)
if not response.choices:
raise RuntimeError("缺少结果,请核对调用记录")
choice = response.choices[0]
print(choice.message.content or "")
print("结束原因:", choice.finish_reason)
print("用量:", response.usage)
finally:
client.close()
这是便于理解的最小片段。正式应用应增加本地预览和错误信息脱敏处理。本地验证环境为 Python 3.13.3;其他版本需自行验证。
3. Node.js 示例
运行 npm install openai@6.49.0 后,把下面内容保存为 .mjs 文件,并在环境中设置 API302_KEY。本地验证环境为 Node.js 24.20.0。
import OpenAI from "openai";
if (!process.env.API302_KEY) throw new Error("请先设置 API302_KEY");
const client = new OpenAI({
apiKey: process.env.API302_KEY,
baseURL: "https://api.302api.com/v1",
maxRetries: 0,
timeout: 120_000,
});
const response = await client.chat.completions.create({
model: "gpt-6-astra",
messages: [{ role: "user", content: "请用一句话解释什么是 API。" }],
max_completion_tokens: 256,
});
if (!response.choices.length) throw new Error("缺少结果,请核对调用记录");
console.log(response.choices[0].message.content ?? "");
console.log("结束原因:", response.choices[0].finish_reason);
console.log("用量:", response.usage);
示例关闭 SDK 自动重试,避免网络结果未知时自动再次提交任务。上线应用应补充错误处理,不能直接把异常堆栈或完整响应返回网页。
4. 怎样判断结果
检查返回内容、结束原因和用量,再在控制台查看调用记录:
finish_reason=stop:该文本生成正常结束,仍需检查内容是否满足业务要求。finish_reason=length:达到输出限制,不能当作完整回答;先核对记录,再决定是否发起新请求。finish_reason=tool_calls:需要应用处理工具流程,本文的纯文本示例不执行工具。- 缺少
usage:不能按零费用处理。
5. 换模型前先核对接口
同一 Base URL 下,不同模型可能需要不同路径:
| 用途 | 当前文档要求 |
|---|---|
| 本文 Astra 文本示例 | /v1/chat/completions;支持 Responses 的客户端也可按文档使用 /v1/responses |
gpt-5.3-codex |
/v1/responses,不能直接套用本文的 Chat 请求 |
| GPT 图片生成模型 | /v1/images/generations 或 /v1/images/edits |
| Gemini 图片模型 | Chat 路径,但需要图片模态和非流式参数 |
不要仅凭模型出现在 /v1/models 就推断它支持全部接口和参数。
下一步:查看 完整接入文档,再根据应用需要接入流式输出。价格和开放范围以调用时控制台及文档为准。