直接答案
创建官方 OpenAI Python 客户端时设置 base_url="https://www.primoraihub.com/v1",然后调用 client.responses.create(...)。API Key 保存在服务端环境变量中,模型 ID 必须来自使用自己 Key 发出的 GET /v1/models 实时响应。
OpenAI 官方 Python 库记录了 client.responses.create。下方端点行为和验证结果属于 Primordial AI,不代表 OpenAI 对本服务的背书。
Python:先发现模型,再创建 Response
pip install --upgrade openai
export PRIMORDIAL_API_KEY="YOUR_PRIMORDIAL_API_KEY"
export PRIMORDIAL_MODEL_ID="MODEL_ID_FROM_V1_MODELS"
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PRIMORDIAL_API_KEY"],
base_url="https://www.primoraihub.com/v1",
)
model_id = os.environ["PRIMORDIAL_MODEL_ID"]
available_ids = {item.id for item in client.models.list().data}
if model_id not in available_ids:
raise RuntimeError(f"当前模型不可用:{model_id}")
response = client.responses.create(
model=model_id,
input="请只回复一句简短内容。",
max_output_tokens=64,
)
print(response.output_text)
不要替换成从其他提供商复制的模型名。账户权限和模型路由可能不同,实时模型列表才是当前可用性检查。
把 HTTP 路由与 SDK 解析分开检查
SDK 报解析或传输错误时,先用 cURL 重现最小请求,从而区分鉴权、接口行为和客户端解析问题。
curl https://www.primoraihub.com/v1/models \
-H "Authorization: Bearer $PRIMORDIAL_API_KEY"
curl https://www.primoraihub.com/v1/responses \
-H "Authorization: Bearer $PRIMORDIAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID_FROM_V1_MODELS",
"input": "请只回复 ok。",
"max_output_tokens": 16
}'
OpenAI Agents SDK:设置一个自定义客户端
Agents SDK 官方配置指南允许传入自定义 AsyncOpenAI 客户端。该 SDK 默认使用 Responses 路径,但其模型提供商指南也明确提醒兼容提供商的 API 和功能可能不同。
import os
from openai import AsyncOpenAI
from agents import (
Agent,
Runner,
set_default_openai_client,
set_tracing_disabled,
)
client = AsyncOpenAI(
api_key=os.environ["PRIMORDIAL_API_KEY"],
base_url="https://www.primoraihub.com/v1",
)
set_default_openai_client(client, use_for_tracing=False)
set_tracing_disabled(True)
agent = Agent(
name="Assistant",
model=os.environ["PRIMORDIAL_MODEL_ID"],
)
result = await Runner.run(agent, "请只回复一句简短内容。")
print(result.final_output)
本页没有独立验证 Agents SDK 运行。示例遵循官方自定义客户端配置,但 tracing、工具、handoff、session 与提供商语义都需要分别测试。
实际验证了什么
2026 年 8 月 24 日,生产测试使用官方 OpenAI Python 包、自定义 /v1 Base URL、一个当前配置模型、字符串 input 和 max_output_tokens=16。客户端返回已解析的 Response,包含非空 ID、response object 类型和非空 output_text。
该测试覆盖
- 使用有效 Primordial AI Key 的 Bearer 鉴权。
- 一次最小、非流式
POST /v1/responses请求。 - 官方 Python 客户端解析为 Response 类型。
该测试没有覆盖
- 流式响应或 Responses WebSocket 传输。
- 内置工具、自定义函数调用、结构化输出、图片或文件输入。
previous_response_id、conversation 状态、background 模式或响应生命周期方法。- 每个账户当前可见的全部模型。
最小请求成功不是全功能兼容承诺。可选功能必须逐项增加,并为应用实际发布的请求结构保留回归测试。
错误排查顺序
- 401:先用
GET /v1/models验证 Key,并检查是否暴露、过期、停用或带有多余空格。 - 404:确认 Base URL 包含
/v1,应用调用的是 Responses 而不是某个提供商专用路径。 - 模型错误:刷新实时模型列表,并确认选定模型支持 Responses 路由。
- 解析错误:运行原始 cURL 请求,在不记录密钥的情况下保存 HTTP 状态和请求 ID,并比较最小响应结构。
- 高级功能错误:移除工具、流式、状态和可选参数;基线成功后再逐项恢复。
状态码分支和安全日志方法见API 错误排查指南。
常见问题
OpenAI 客户端应该使用什么 Base URL?
使用 https://www.primoraihub.com/v1,客户端会继续拼接 /responses 资源路径。
Responses 与 Chat Completions 有什么区别?
Responses 使用 input 风格请求并返回 Response 对象;Chat Completions 使用 messages 数组并返回 choices。除非需要 Responses 特有能力,否则保留应用当前依赖的接口形态。
OpenAI Agents SDK 能否使用这个端点?
它接受自定义 AsyncOpenAI 客户端。应把该客户端用于模型请求,并关闭或单独配置 tracing,避免把第三方提供商 Key 发送到 OpenAI tracing。
该端点是否用 Python SDK 测试过?
是,但只验证了 2026 年 8 月 24 日的一次最小非流式请求;该测试不覆盖全部模型或 Responses 可选功能。
应该如何选择模型 ID?
使用自己的 Key 调用 GET /v1/models,并选择当前为该账户返回的 ID。