跳转到内容
API 入口

快速开始

如何配置 Base URL

说明 Base URL 是什么,如何在 cURL、OpenAI SDK、Codex CLI 和兼容客户端中配置 OfApp.cn,并避免漏写或重复拼接 /v1。

预计阅读
4 分钟
最近更新
2026/07/03
维护方式
人工编辑

Base URL 决定请求发往哪个 API 入口。API Key 决定“你是谁”,模型名决定“调 用哪个模型”,Base URL 决定“请求去哪里”。很多接入问题不是模型不可用,而 是最终 URL 拼错了。

使用 OfApp.cn 时,本站教程默认把 Base URL 当作完整版本化地址使用:

Terminal window
export OPENAI_BASE_URL="https://api.ofapp.cn/v1"

如果某个工具会自动追加 /v1,则应按照工具说明填写 https://api.ofapp.cn,避免最终请求变成 https://api.ofapp.cn/v1/v1/...。具体写法以工具当前文档和 OfApp.cn 官方 说明为准。

项目 内容
阅读时间 约 7 分钟
更新时间 2026-07-03
适合人群 第一次接入 OfApp.cn 的开发者、配置 OpenAI SDK 的团队、使用 Codex CLI 或兼容客户端的人
核心收益 弄清 Base URL、API Key、模型名和端点路径的分工,避免漏写 /v1 或重复拼接 /v1/v1
你会得到 配置原则、请求流向图、填写决策表、环境变量模板、Models API 验证、SDK 示例、客户端排错和上线前检查
不适合做什么 替代 OfApp.cn 控制台里的模型、价格、额度和能力确认
原则 说明
明确最终请求 URL 你要知道实际请求会落到哪个端点,例如 /v1/chat/completions
只保留一处 /v1 环境变量、SDK 配置和工具配置里不要重复追加版本路径。
不在末尾加 / 避免拼出双斜杠,排错时更清晰。
放进环境变量 本地、测试、生产可分别配置,代码不需要写死服务商地址。
与 Key 和模型分开 Base URL 不是 API Key,也不是模型名。三者分别检查。
先最小请求验证 cURL 成功后,再接 SDK、Codex 或其他客户端。
环境变量Base URL / KeySDK 或工具拼接端点最终 URL只出现一次 /v1OfApp 入口鉴权与转发模型响应记录结果

不同工具对 Base URL 的定义不完全一样。配置前,先确认它要你填写“完整版本 化 Base URL”,还是只填写“服务商 host”。

场景 推荐填写 说明
本站 cURL 示例 https://api.ofapp.cn/v1 后面直接拼 /chat/completions 等端点。
OpenAI JavaScript SDK https://api.ofapp.cn/v1 通过 baseURL 传入完整入口。
OpenAI Python SDK https://api.ofapp.cn/v1 通过 base_url 传入完整入口。
会自动追加 /v1 的客户端 https://api.ofapp.cn 避免形成 /v1/v1
自己写封装函数 统一读取环境变量 不要在多个函数里手写不同地址。

如果不确定,打印或记录脱敏后的最终请求 URL:只看域名、路径和状态码,不打 印完整 Authorization header。

配置 Base URL 时,不要只看环境变量本身,还要看 SDK 或客户端拼出来的最终 URL。下面这张表能快速定位多数路径问题。

你配置的 Base URL 代码或工具追加的端点 最终 URL 是否正常
https://api.ofapp.cn/v1 /chat/completions 正常:https://api.ofapp.cn/v1/chat/completions
https://api.ofapp.cn /v1/chat/completions 正常:https://api.ofapp.cn/v1/chat/completions
https://api.ofapp.cn/v1 /v1/chat/completions 异常:会变成 /v1/v1/chat/completions
https://api.ofapp.cn /chat/completions 异常:缺少 /v1
https://api.ofapp.cn/v1/ /chat/completions 不推荐:可能拼出双斜杠,排错更乱

把 Base URL、API Key 和模型名分开配置,排错时会轻松很多。

Terminal window
export OPENAI_BASE_URL="https://api.ofapp.cn/v1"
export OPENAI_API_KEY="sk-xxxx"
export OPENAI_MODEL="以控制台可用模型为准"

.env.example 可以提交到仓库,但不要提交真实 .env

Terminal window
OPENAI_BASE_URL=https://api.ofapp.cn/v1
OPENAI_API_KEY=sk-xxxx
OPENAI_MODEL=以控制台可用模型为准

模型名、可用能力和价格请以 OfApp.cn 控制台或官方文档为准,不要凭旧示例猜 测。

接聊天、图像、SDK 或 Codex 前,可以先验证入口和 Key 是否连通。Models API 不需要你先猜模型名,适合作为第一步连通性检查。

Terminal window
curl "$OPENAI_BASE_URL/models" \
-H "Authorization: Bearer $OPENAI_API_KEY"

如果这一步失败,优先检查三件事:环境变量是否生效、Base URL 是否只包含一 次 /v1、API Key 是否复制完整。模型能力、可用范围和价格请回到 OfApp.cn 控 制台或官方文档确认。

接 SDK 前,先用 cURL 验证最小请求。这样可以把“连接问题”和“业务代码问题” 分开。

Terminal window
curl "$OPENAI_BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "'"$OPENAI_MODEL"'",
"messages": [{"role": "user", "content": "测试 Base URL 是否可用。"}]
}'

如果返回 404,先检查最终 URL 是否变成了 https://api.ofapp.cn/v1/v1/chat/completions 或缺少 /v1

JavaScript SDK 使用 baseURL,Python SDK 使用 base_url。两者都应从环境 变量读取,而不是在业务函数里写死。

import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.OPENAI_BASE_URL,
});
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url=os.environ["OPENAI_BASE_URL"],
)

如果 SDK 请求失败,先不要改复杂业务逻辑。回到 cURL 最小请求确认 Base URL、 API Key 和模型名都可用。

Codex CLI、Claude Code、OpenClaw、桌面客户端或聚合客户端通常都有自己的 Base URL 配置入口。配置思路相同,但字段名可能不同。

工具类型 你要确认什么
Codex CLI 配置项是否要求 OpenAI Base URL,以及是否需要 /v1
Claude 兼容工具 它使用的是 OpenAI 风格端点,还是 Anthropic Messages 风格端点。
桌面聊天客户端 UI 是否会自动拼接 /v1,以及 Key 是否存到本地。
自写脚本 Base URL、Key、模型名、超时和重试是否都是配置项。

不要把不同协议混在一起排查。OpenAI 风格的 /v1/chat/completions 和 Claude/Anthropic 风格的 /v1/messages 请求体不同,路径不同,错误表现也 可能不同。

现象 常见原因 处理
404 Not Found 缺少 /v1,或重复拼接 /v1/v1 打印最终请求路径,对照本文表格。
401 Unauthorized Key 缺失、复制错、环境变量没生效 重新读取环境变量,确认没有空格。
模型不存在 模型名不是当前账号可用模型 从 OfApp.cn 控制台复制,别猜。
本地成功生产失败 部署平台没有配置同名环境变量 检查 Secret 名称和部署日志。
SDK 成功但客户端失败 客户端自动改写路径或协议不一致 查看客户端实际请求 URL 和端点类型。
  1. OPENAI_BASE_URL 只出现一处 /v1
  2. API Key 只在服务端、终端或 Secret 中保存。
  3. 生产环境和本地环境分别配置,不共用测试 Key。
  4. 日志只记录状态码、端点和脱敏错误,不记录完整 Key。
  5. cURL 最小请求成功后,再接 SDK、Codex 或客户端。
  6. 代码里没有多个硬编码 Base URL。
  7. 模型名、能力和价格以 OfApp.cn 控制台或官方文档为准。
  • OfApp.cn:用于确认 OfApp.cn 的统一入口、API Key、Base URL、Genius Playground 和相关生态入口。
  • OfApp.cn API 文档:用于确认 OpenAI/Codex 生态 Base URL、Models API 验证方式和工具自动追加 /v1 时的填写边界。
  • OfApp.cn Genius Playground:用于确认网页端 Key、聊天、图像和参数入口。
  • OpenAI CLI 文档:用于确认 OpenAI CLI 可以通过 OPENAI_BASE_URL 指向兼容端点。

不要。模型名放在请求体里的 model 字段中,具体可用模型以 OfApp.cn 控制 台为准。

建议不要加。统一写成 https://api.ofapp.cn/v1,后续路径由 SDK 或请求代码 拼接,排查时也更容易发现双斜杠和重复 /v1

为什么有的工具只填 https://api.ofapp.cn

Section titled “为什么有的工具只填 https://api.ofapp.cn?”

有些工具会自动追加 /v1。如果你再手动填写 /v1,最终路径可能变成 /v1/v1。遇到这种工具,应按它的说明填写 host,并用最小请求验证。

可以为不同环境使用不同 Base URL 吗?

Section titled “可以为不同环境使用不同 Base URL 吗?”

可以。把 Base URL 放在环境变量中,本地、测试和生产环境分别配置,代码保持 一致。

不一定。404 更常见的原因是路径错误、端点不匹配或重复 /v1。先确认最终请 求 URL,再检查 Key、模型名和服务状态。

本站 API 示例统一使用 https://api.ofapp.cn/v1。配置 Base URL 时,关键是 确认最终请求 URL:不要漏写 /v1,也不要重复拼接 /v1/v1。把 Base URL、 API Key 和模型名放进环境变量,用 cURL 最小请求验证,再接 SDK、Codex CLI、 兼容客户端和自动化脚本。