直接答案
将 SDK Base URL 设置为 https://www.primoraihub.com/v1。Python 构造参数是 base_url,JavaScript 参数是 baseURL。API Key 只保存在服务端,并从 GET /v1/models 返回结果中选择模型 ID。
OpenAI 官方 SDK 文档说明安装和标准客户端初始化;本页的自定义端点和兼容方式来自 Primordial AI,不代表 OpenAI 对第三方服务的背书。
Python:使用 base_url
安装官方 Python 包,把 Primordial API Key 放入环境变量,然后初始化一个客户端:
pip install openai
export PRIMORDIAL_API_KEY="YOUR_PRIMORDIAL_API_KEY"
export PRIMORDIAL_MODEL_ID="从_V1_MODELS_返回的_MODEL_ID"
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PRIMORDIAL_API_KEY"],
base_url="https://www.primoraihub.com/v1",
)
configured_id = os.environ["PRIMORDIAL_MODEL_ID"]
models = client.models.list()
available_ids = {model.id for model in models.data}
if configured_id not in available_ids:
raise RuntimeError(f"配置的模型不可用:{configured_id}")
response = client.chat.completions.create(
model=configured_id,
messages=[{"role": "user", "content": "只回复:connected"}],
)
print(response.choices[0].message.content)
JavaScript:使用 baseURL
在服务端 JavaScript 运行时中使用客户端,不要把高权限 API Key 放进发送给浏览器的代码。
npm install openai
export PRIMORDIAL_API_KEY="YOUR_PRIMORDIAL_API_KEY"
export PRIMORDIAL_MODEL_ID="从_V1_MODELS_返回的_MODEL_ID"
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.PRIMORDIAL_API_KEY,
baseURL: "https://www.primoraihub.com/v1",
});
const models = await client.models.list();
const configuredId = process.env.PRIMORDIAL_MODEL_ID;
const availableIds = new Set(models.data.map((model) => model.id));
if (!configuredId || !availableIds.has(configuredId))
throw new Error(`配置的模型不可用:${configuredId}`);
const response = await client.chat.completions.create({
model: configuredId,
messages: [{ role: "user", content: "只回复:connected" }],
});
console.log(response.choices[0].message.content);
先完成最小测试
- 使用
GET /v1/models验证鉴权和路由。 - 从实时响应中复制一个模型 ID,不要猜测模型名称。
- 发送一次简短、非流式的对话请求。
- 基础请求成功后,再测试当前文档明确支持的流式输出、工具、结构化输出、图像或其他可选功能。
curl https://www.primoraihub.com/v1/models \
-H "Authorization: Bearer $PRIMORDIAL_API_KEY"
常见配置错误
Python 与 JavaScript 参数名混用
Python 使用 base_url;JavaScript 使用 baseURL。参数写错可能导致客户端仍然请求默认端点。
Base URL 缺少 /v1
使用上方完整 Base URL。SDK 会继续拼接 /models、/chat/completions 等资源路径。
直接复制其他提供商的模型名
模型目录可能变化;请使用实时 /v1/models 返回的 ID,参考模型发现指南,并在当前 API 文档中确认该模型支持的接口。
在前端代码中放入 API Key
浏览器 Bundle 对访问者公开。应通过自己的服务端或可信运行时发送请求,让密钥保持私密;创建、保存、鉴权测试和轮换步骤见API Key 快速入门。
可选参数被拒绝
先移除可选参数,确认最小请求成功,再根据兼容文档逐项增加功能。
自定义 Base URL 是请求路由,不是全功能兼容承诺
修改 Base URL 只会改变 SDK 的请求目标,不能证明所有 OpenAI 接口、参数、模型、流式事件、工具行为或响应字段都完全一致。
生产环境需要验证实际使用的接口和功能,处理非成功状态码,在不记录密钥的前提下保存请求 ID,并为关键请求结构保留小型回归测试。
常见问题
应该使用什么自定义 Base URL?
使用 https://www.primoraihub.com/v1。
配置项是 base_url 还是 baseURL?
Python 使用 base_url,JavaScript 使用 baseURL。
URL 是否必须包含 /v1?
是。包含 /v1,让 SDK 资源路径落在文档指定的 API 版本下。
如何选择模型 ID?
调用 GET /v1/models,使用实时接口返回的 ID。
这样是否代表 OpenAI 所有功能都兼容?
不是。请根据 Primordial AI 当前文档验证应用实际需要的接口、参数、流式行为和响应字段。