只讲接入
不展示套餐、不展示公开价格、不展示固定业务参数。
OpenAI-Compatible · GPT Only
Codex.surf 面向 GPT 模型使用场景。你可以把它理解成一个偏文档化的接入入口: 先在主页获取配置,再按本文档完成 SDK、HTTP 或流式调用。
base_url = "https://your-endpoint/v1"
api_key = "sk-..."
model = "gpt-4.1-mini"
Overview
本文档默认你已经知道如何使用 OpenAI 风格接口,但不想在公开页面暴露太多业务信息。 所以这里采用“教程优先”的写法:文档侧只保留调用方式、字段说明与排错建议。
不展示套餐、不展示公开价格、不展示固定业务参数。
优先覆盖最常见的 SDK 和 `chat/completions` 调用方式。
章节已经按导航层级分好,后续可以直接拆成多页知识库。
Checklist
在 Codex.surf 主页获取你的密钥、接入域名与可用模型名。
推荐优先使用 OpenAI 兼容路径,通常以 `/v1/...` 结尾。
不要把密钥直接写死在仓库里,尤其是示例项目或前端代码中。
模型名不要猜,直接使用主页或后台返回的可用 ID。
Quick Start
CODEX_SURF_API_KEY=sk-xxxxxxxx
CODEX_SURF_BASE_URL=https://your-endpoint/v1
CODEX_SURF_MODEL=gpt-4.1-mini
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("CODEX_SURF_API_KEY"),
base_url=os.getenv("CODEX_SURF_BASE_URL"),
)
response = client.chat.completions.create(
model=os.getenv("CODEX_SURF_MODEL", "gpt-4.1-mini"),
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "用一句话介绍 Codex.surf。"},
],
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CODEX_SURF_API_KEY,
baseURL: process.env.CODEX_SURF_BASE_URL,
});
const completion = await client.chat.completions.create({
model: process.env.CODEX_SURF_MODEL || "gpt-4.1-mini",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "给我一个接入建议。" },
],
});
console.log(completion.choices[0].message.content);
HTTP Examples
如果你不想先上 SDK,可以直接从 HTTP 调用开始。下面给的是最常见的两种形式:普通响应和流式响应。
curl https://your-endpoint/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $CODEX_SURF_API_KEY" \
-d '{
"model": "gpt-4.1-mini",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "请写一段 30 字以内的欢迎语。"}
]
}'
curl https://your-endpoint/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $CODEX_SURF_API_KEY" \
-d '{
"model": "gpt-4.1-mini",
"stream": true,
"messages": [
{"role": "user", "content": "请分三点介绍如何快速接入。"}
]
}'
优先从 `/v1/chat/completions` 开始。如果你后续需要更多兼容接口,再按业务逐步扩展。
`Authorization: Bearer <API_KEY>` 保持不变,这样后续更换 SDK 时迁移成本最低。
首次联通时先关掉复杂参数,只保留 `model` 和 `messages`,确认 200 响应后再加温度、流式等选项。
Models
Codex.surf 当前聚焦 GPT 模型,所以文档不做跨厂商接口说明。你只需要记住两个原则:
FAQ
优先检查 API Key 是否填错、是否多了空格,以及请求头是否使用了 `Bearer` 前缀。
先看 Base URL 是否带了正确的 `/v1`,再检查调用路径有没有拼错,最后确认域名是否就是你主页拿到的接入地址。
先确认客户端确实在消费 SSE/流式响应;很多问题不是接口没返回,而是调用端没有按流模式读取数据。
这是有意为之。本文档只负责教程,具体可用模型以你的主页或后台配置为准,这样页面更干净,也方便后续调整。
Why Codex.surf
不把页面写成产品海报,先让开发者完成接入,转化动作统一回到主页承接。
内容不混杂,少掉不必要的跨模型说明,能显著降低首次阅读成本。
单页先跑起来,后面不论加章节、删章节还是拆分页,结构都已经留好了。
Next Step
文档页负责解释“怎么接”,主页负责承接“去哪里拿配置”。这样页面边界会更清楚。