跳到正文
PrismRoute

通过 JavaScript 接入。

使用 OpenAI 官方 SDK,填写 PrismRoute 密钥与自定义基础地址。以下示例运行于服务端 Node.js 环境。

本页目录

安装与配置

安装当前版本的官方 SDK,并使用该 SDK 版本支持的 Node.js 运行环境。

安装 SDK
npm install openai

在终端中设置密钥与准确的模型 ID,替换两个占位值。以下环境变量名称是本文的约定,代码会将其明确传入客户端。

macOS / Linux 终端
export PRISMROUTE_API_KEY="YOUR_PRISMROUTE_API_KEY"
export PRISMROUTE_MODEL="YOUR_MODEL_ID"
Windows PowerShell
$env:PRISMROUTE_API_KEY="YOUR_PRISMROUTE_API_KEY"
$env:PRISMROUTE_MODEL="YOUR_MODEL_ID"

发送 Chat Completions 请求

将代码保存为 example.mjs。baseURL 填写 API 根地址,不要填完整的 /chat/completions 地址。请使用明确支持 Chat Completions 的模型。

example.mjs
import OpenAI from "openai";

const apiKey = process.env.PRISMROUTE_API_KEY;
const model = process.env.PRISMROUTE_MODEL;
if (!apiKey || !model) {
  throw new Error("Set PRISMROUTE_API_KEY and PRISMROUTE_MODEL first.");
}

const client = new OpenAI({
  apiKey,
  baseURL: "https://codex.aicpr.icu/v1",
  timeout: 60_000,
  maxRetries: 0,
});

const completion = await client.chat.completions.create({
  model,
  messages: [{ role: "user", content: "Hello, PrismRoute!" }],
});
console.log(completion.choices[0]?.message.content ?? "");
运行示例
node example.mjs

示例设置了 60 秒超时,并在首次连接检查时关闭自动重试。正式应用应根据业务设置明确的超时与有次数上限的重试策略。

读取流式文字

如果模型支持流式输出,可以逐段读取文字增量。部分数据块只包含元信息,示例已处理 choices 为空和 content 缺失的情况。

流式输出示例
import OpenAI from "openai";

const apiKey = process.env.PRISMROUTE_API_KEY;
const model = process.env.PRISMROUTE_MODEL;
if (!apiKey || !model) {
  throw new Error("Set PRISMROUTE_API_KEY and PRISMROUTE_MODEL first.");
}

const client = new OpenAI({
  apiKey,
  baseURL: "https://codex.aicpr.icu/v1",
  timeout: 60_000,
  maxRetries: 0,
});

const stream = await client.chat.completions.create({
  model,
  messages: [{ role: "user", content: "Hello, PrismRoute!" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
process.stdout.write("\n");

流式连接可能在返回部分文字后中断。请保留已收到的内容,查看错误信息后再决定是否重新发起请求。

在模型支持时使用 Responses

可选的 Responses 示例
import OpenAI from "openai";

const apiKey = process.env.PRISMROUTE_API_KEY;
const model = process.env.PRISMROUTE_MODEL;
if (!apiKey || !model) {
  throw new Error("Set PRISMROUTE_API_KEY and PRISMROUTE_MODEL first.");
}

const client = new OpenAI({
  apiKey,
  baseURL: "https://codex.aicpr.icu/v1",
  timeout: 60_000,
  maxRetries: 0,
});

const response = await client.responses.create({
  model,
  input: "Hello, PrismRoute!",
});
console.log(response.output_text);

Responses 使用 input 字段,返回按类型区分的 output 项;SDK 的 output_text 会拼接文字输出。它的流式事件与 Chat Completions 增量不同,请勿直接套用上面的流式循环。

检查接入结果

确认请求发往 codex.aicpr.icu、路径中只包含一次 /v1,并使用准确的模型 ID。若请求失败,请保留状态码和脱敏后的错误信息进行排查。

技术参考