302API
实用教程 / 01 · 开始接入

使用 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 就推断它支持全部接口和参数。

下一步:查看 完整接入文档,再根据应用需要接入流式输出。价格和开放范围以调用时控制台及文档为准。