HOHAI DOCUMENTATION
连接模型,从这里开始。
先选协议,再配密钥,最后用最小请求验证。本站不会要求你提交或粘贴真实 API Key。
输入关键词筛选章节;支持多个关键词。
没有匹配的章节。请缩短关键词,或点击“清除”恢复全文。
开始使用 HOHAI#
HOHAI 提供多种模型的 API 网关。接入时要同时确认 协议、Base URL、模型 ID、令牌权限,不能只改一个地址就假定所有功能可用。
三种接入地址#
| 接入方式 | Base URL | 主要用途 |
|---|---|---|
| OpenAI 兼容 | https://api.hohai.eu.org/v1 | Chat Completions、Responses、图像接口;以模型声明为准 |
| Anthropic | https://api.hohai.eu.org | Claude Code / Messages;客户端通常自动拼接 /v1/messages |
| Gemini 原生 | https://api.hohai.eu.org/v1beta | 维护记录中的原生入口;客户端如何追加版本路径需单独核验 |
第一次使用请从 快速开始 阅读。已经配置但出错,请看 分协议验证 和 常见错误。
公开目录能说明模型名称和声明接口,不能代替带密钥的实际请求。本站没有读取你的令牌,也不会要求把令牌发进聊天。
你需要哪篇指南?#
| 任务 | 推荐入口 |
|---|---|
| 写代码调用文本模型 | Node.js / Python SDK |
| 使用编码代理 | Codex CLI、Claude Code |
| 使用桌面客户端 | Codex Desktop、Claude Code 桌面版 |
| 生成图片 | 图像生成 API |
| 查看模型和价格 | 模型目录、模型定价 |
新手快速开始#
按下面 6 步完成接入,最后一步才是验证。正式运行前先用小额预算测试。
- 打开 控制台,注册或登录。
- 创建用途明确的 API Key,设置额度、有效期及必要的模型权限。
- 从 模型目录 确认模型 ID 和声明接口;价格以模型定价页为准。
- 根据 地址对照 填写客户端需要的 Base URL。
- 按 密钥配置 在本机设置密钥,然后照对应客户端指南配置。
- 执行 分协议验证,检查 HTTP 状态、实际输出和控制台调用记录。
最小成功标准#
- 不是“程序能打开”,而是完成一次实际模型请求并收到预期格式的输出。
- Chat Completions 成功不代表 Responses、Anthropic 或生图接口也成功。
- 控制台记录的模型、时间和用量应与测试吻合;测试可能产生费用。
不要跳过的安全检查#
- 不在聊天、截图、Git 或浏览器前端里放密钥。
- 不用生产环境的高额度 Key 做初次测试。
- 不照抄要求覆盖全部认证文件、关闭安全限制或执行未知脚本的说明。
获取与保护 API Key#
在 控制台 找到令牌 / API Key 页面,新建一个 Key。菜单名称以当前界面为准。建议按用途命名,例如 codex-laptop,并设置预算和有效期。
分组以自己的控制台为准。 不要为了照抄旧教程去找不存在的 codex 或 claude 分组;公开目录当前有哪些分组见 模型目录。
在终端安全输入密钥#
下面命令只在本机接收输入,不回显密钥,也不会把密钥值写入命令历史。环境变量仍可被同一用户的进程读取,请只在可信设备使用。
macOS / Linux(Bash 或 Zsh)#
printf '请输入 HOHAI API Key(输入不显示): '
IFS= read -r -s HOHAI_API_KEY
printf '\n'
export HOHAI_API_KEY
test -n "$HOHAI_API_KEY" && printf '密钥已设置\n'Windows PowerShell#
$secret = Read-Host '请输入 HOHAI API Key' -AsSecureString
$env:HOHAI_API_KEY = [System.Net.NetworkCredential]::new('', $secret).Password
$secret.Dispose()
Remove-Variable secret
if ([string]::IsNullOrWhiteSpace($env:HOHAI_API_KEY)) {
throw '密钥为空'
}
'密钥已设置'生效范围与长期保存#
当前终端及从它启动的子进程可读取变量。关闭终端后通常需要重新设置。通过 Dock、开始菜单或 Finder 启动的桌面应用不一定继承终端变量。
长期使用优先选择客户端明确支持的系统凭据管理器。若使用本地环境文件,应排除 Git 跟踪、限制文件权限,并了解它仍是明文存储。不要把真实值写入教程、提示词或提交到仓库。
泄露后怎么办#
立即在控制台禁用泄露的 Key、检查异常调用,再创建新 Key。不要只修改本地变量而保留泄露令牌继续有效。
协议与地址对照#
Base URL 是客户端拼路径的起点,不是完整请求 URL。 是否包含版本前缀取决于客户端,不要机械地给所有工具添加或删除 /v1。
| 客户端 / 协议 | Base URL | 最终请求路径 | 核验重点 |
|---|---|---|---|
| OpenAI SDK / Chat Completions | https://api.hohai.eu.org/v1 | /v1/chat/completions | 模型需声明 Chat Completions |
| Codex / Responses | https://api.hohai.eu.org/v1 | /v1/responses | 模型与渠道需支持 Responses 及所需工具调用 |
| Claude Code / Anthropic SDK | https://api.hohai.eu.org | /v1/messages | 模型需支持 Anthropic Messages |
| Images API | https://api.hohai.eu.org/v1 | /v1/images/generations | 仅对支持此接口的图像模型使用 |
| Gemini 原生 | 维护记录入口 https://api.hohai.eu.org/v1beta | /v1beta/models/MODEL:generateContent | 某些 SDK 自行追加 /v1beta,不能形成重复路径 |
需要避免的推断#
/v1/models或公开目录列出模型,不代表你的 Key 有权限或渠道当前健康。- 模型名称包含
image不代表一定走 Images API;请读接口声明。 - Claude 系列可能同时声明 OpenAI 与 Anthropic 格式,不要把兼容调用一概判定为错误。
- Gemini 原生入口来自维护记录,当前目录未明确声明该协议;使用前先做独立验证。
怎么确认最终请求地址#
查看客户端不含密钥的调试信息,确认没有重复的版本前缀或重复的 /chat/completions。分享日志前移除 Authorization、API Key、Cookie 和敏感输入。
支持的模型#
当前公开目录共 40 个模型;目录内容更新于 (北京时间)。价格见 模型定价。
点击模型右侧按钮可复制 ID。使用上方搜索框筛选,例如输入 Responses、nano-banana 或 Claude。不要根据模型名称猜测调用接口。
| 模型 ID | 目录声明的接口 | 分组 |
|---|---|---|
beam | Chat Completions | default |
claude-fable-5-1 | Anthropic Messages Chat Completions | default |
claude-haiku-5-5 | Anthropic Messages Chat Completions | default |
claude-opus-5-5 | Anthropic Messages Chat Completions | default |
claude-sonnet-5-5 | Anthropic Messages Chat Completions | default |
codex-auto-review | Chat Completions | default |
deepseek-flash | Chat Completions | default |
deepseek-v4-flash | Chat Completions | default |
deepseek-v4-pro | Chat Completions | default |
deepseek-v4.1-flash | Chat Completions | default |
gemini-3.8-flash | Chat Completions | default |
gemini-4-argon | Chat Completions | default |
glm-5.3 | Chat Completions | default |
glm-5.3-flash | Chat Completions | default |
gpt-6-astra | Chat Completions | default |
gpt-6-luna | Chat Completions | default |
gpt-6.1-sol | Chat Completions | default |
gpt-6.1-terra | Chat Completions | default |
gpt-image-2 | Images Chat Completions | default |
gpt-image-2.5-flare | Images Chat Completions | default |
gpt-image-2.5-sunburst | Images Chat Completions | default |
grok-4.7 | Chat Completions Responses | default |
grok-chat-fast | Chat Completions Responses | default |
grok-imagine-image-2.0 | Chat Completions Responses | default |
hy4 | Chat Completions | default |
kimi-k3 | Chat Completions | default |
kimi-k3.1-pro | Chat Completions | default |
mimo-v2.6-flash | Chat Completions | default |
mimo-v2.6-pro | Chat Completions | default |
minimax-m3 | Chat Completions | default |
minimax-m3.1-flash | Chat Completions | default |
muse-spark-1.3-contributor | Chat Completions | default |
nano-banana-2 | Chat Completions | default |
nano-banana-2.1 | Chat Completions | default |
nano-banana-pro | Chat Completions | default |
nemotron-3.5-super-vl | Chat Completions | default |
qwen3.8-flash | Chat Completions | default |
qwen3.8-max | Chat Completions | default |
solar-mini4 | Chat Completions | default |
step-5-preview | Chat Completions | default |
Claude Code 配置#
使用 Anthropic 兼容入口。示例模型 claude-sonnet-5-5 从实时目录选择,并要求目录声明 Anthropic Messages。
安装与版本#
从 Claude Code 官方安装文档 选择适合系统的安装方式。若使用 npm 路线,先安装受支持的 Node.js LTS,再运行:
npm install -g @anthropic-ai/claude-code
claude --version
不要把“能打印版本号”当作模型连接成功。
配置当前终端#
先完成 安全输入密钥。以下变量只影响当前终端及子进程,不覆盖其他账户的认证文件。
macOS / Linux#
export ANTHROPIC_BASE_URL="https://api.hohai.eu.org"
export ANTHROPIC_API_KEY="$HOHAI_API_KEY"
claude --model "claude-sonnet-5-5"Windows PowerShell#
$env:ANTHROPIC_BASE_URL = 'https://api.hohai.eu.org'
$env:ANTHROPIC_API_KEY = $env:HOHAI_API_KEY
claude --model 'claude-sonnet-5-5'验证和冲突处理#
先用 Anthropic 最小请求 测试。若此前配置过其他认证变量或客户端登录,按当前版本官方说明检查优先级,不要同时混用多套凭据。首次只发送一句简单文本,并核对控制台调用记录。
Codex CLI 配置#
Codex 使用 Responses 协议。仅有 OpenAI 风格地址或 Chat Completions 成功,不足以证明 Codex 能工作。
兼容性待实测:当前目录未给此示例模型声明 Responses。此配置是接入模板,不是可用性保证。必须先完成 Responses 验证;失败时请联系平台确认支持工具调用的模型,不要仅凭聊天接口成功就启动 Codex。
安装#
安装 Node.js LTS 后,在自己的终端执行:
npm install -g @openai/codex
codex --version
本次仅核对 npm 发布版本,没有安装或运行你的客户端。官方配置文档本次访问返回 403,下面保留最小模板及 官方配置参考,请结合安装版本核验。
添加提供商,不覆盖已有配置#
先关闭 Codex,备份 ~/.codex/config.toml,再用编辑器合并以下内容。Windows 的位置为 %USERPROFILE%\.codex\config.toml。
前两项是 TOML 顶层键,放在任何 [表名] 之前;如果已存在同名键或同名提供商表,应修改原项,不要重复追加。 不要清空 auth.json,也不要把真实密钥写入 TOML。
model_provider = "hohai"
model = "gpt-6-luna"
[model_providers.hohai]
name = "HOHAI"
base_url = "https://api.hohai.eu.org/v1"
wire_api = "responses"
env_key = "HOHAI_API_KEY"
这份模板使用提供商环境变量认证,不与 requires_openai_auth = true 混用。旧教程中的其他参数不作为通用必需项保留。
启动和验证#
在已设置 HOHAI_API_KEY 的同一终端完成 Responses 请求验证,成功后再运行 codex,发送一个不涉及文件修改的简单问题。
若出现模型或协议错误,记录客户端版本、模型、协议、时间和脱敏错误,请平台确认;不要反复更换密钥、覆盖认证文件或自动重试。
OpenClaw 配置#
OpenClaw 的界面和配置字段随版本变化。本节提供协议选择原则,不假定每个版本都存在相同菜单。
OpenAI 兼容接入参数#
| 项目 | 值 |
|---|---|
| 服务商 | 自定义 OpenAI 兼容服务商 |
| Base URL | https://api.hohai.eu.org/v1 |
| 模型 ID | gpt-6-luna |
| 密钥 | 在本机凭据输入框中填写,不放进聊天 |
| 协议 | 先确认客户端使用 Chat Completions 还是 Responses |
先验证,再启用代理功能#
参考 协议验证 发起最小请求。若应用需要工具调用、视觉输入或长上下文,需要另外验证这些能力,不能仅根据“文本能回复”认定全部兼容。
请从 OpenClaw 官方项目 查找自己安装版本的配置说明。本次没有运行客户端,也没有核验它对每个模型的工具调用兼容性。
项目代码接入#
以下示例是 服务端代码,使用 Chat Completions 和当前目录中的 gpt-6-luna。请先在 本机设置 HOHAI_API_KEY。不要在浏览器网页、客户端打包资源或公开仓库里保存密钥。
Node.js:从安装到运行#
在空的示例项目目录安装依赖:
npm init -y
npm install openai
将下面内容保存为 hello.mjs,使用 .mjs 避免 ESM / CommonJS 混淆。
import OpenAI from 'openai';
if (!process.env.HOHAI_API_KEY) throw new Error('请先设置 HOHAI_API_KEY');
const client = new OpenAI({
apiKey: process.env.HOHAI_API_KEY,
baseURL: 'https://api.hohai.eu.org/v1',
timeout: 120000,
maxRetries: 0
});
const result = await client.chat.completions.create({
model: 'gpt-6-luna',
messages: [{ role: 'user', content: 'Hello' }]
});
console.log(result.choices[0]?.message?.content ?? '响应没有文本,请检查响应结构');
node hello.mjs
预期:终端输出模型回复;控制台出现对应调用。没有输出、HTTP 报错或仅返回登录页面都不算成功。
Python:使用虚拟环境#
macOS / Linux#
python3 -m venv .venv
. .venv/bin/activate
python -m pip install openaiWindows PowerShell#
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install openai
Windows 不必修改执行策略来激活环境,可以直接使用虚拟环境里的 Python。
保存为 hello.py:
import os
from openai import OpenAI
key = os.environ.get('HOHAI_API_KEY')
if not key:
raise SystemExit('请先设置 HOHAI_API_KEY')
client = OpenAI(api_key=key, base_url='https://api.hohai.eu.org/v1',
timeout=120.0, max_retries=0)
result = client.chat.completions.create(
model='gpt-6-luna',
messages=[{'role': 'user', 'content': 'Hello'}]
)
print(result.choices[0].message.content)运行 Python(macOS / Linux)#
python hello.py运行 Python(Windows)#
.\.venv\Scripts\python.exe hello.py重试与计费#
示例关闭自动重试,以免初次排错产生重复请求。生产环境应区分可重试错误,设置退避和重试上限;超时不能证明上游没有处理请求,尤其生图请求不要盲目重发。
图像生成 API#
仅对目录明确声明 Images 的模型使用 /v1/images/generations。当前示例为 gpt-image-2。其他带 image、imagine 或 banana 名称的模型,按 模型目录 声明的接口另行接入,不统一套用这个地址。
先设置密钥,再发一个小请求#
完成 密钥配置。以下请求采用普通 JSON 响应,不是流式请求;本教程不声称切换流式即可解决超时。
macOS / Linux#
curl --fail-with-body --show-error --max-time 300 \
https://api.hohai.eu.org/v1/images/generations \
-H "Authorization: Bearer $HOHAI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-image-2","prompt":"A blue circle on white background","n":1}'Windows PowerShell#
if ([string]::IsNullOrWhiteSpace($env:HOHAI_API_KEY)) { throw '请先设置密钥' }
$headers = @{ Authorization = "Bearer $env:HOHAI_API_KEY" }
$body = @{ model = 'gpt-image-2'; prompt = 'A blue circle on white background'; n = 1 } | ConvertTo-Json
$result = Invoke-RestMethod -Method Post -Uri 'https://api.hohai.eu.org/v1/images/generations' -Headers $headers -ContentType 'application/json' -Body $body -TimeoutSec 300
if ($result.data[0].b64_json) {
[IO.File]::WriteAllBytes((Join-Path $PWD 'generated-image.png'), [Convert]::FromBase64String($result.data[0].b64_json))
'已保存 generated-image.png;请打开确认实际文件格式'
} elseif ($result.data[0].url) {
$imageUrl = [Uri]$result.data[0].url
if ($imageUrl.Scheme -ne 'https') { throw '拒绝非 HTTPS 图片地址' }
Invoke-WebRequest -Uri $imageUrl.AbsoluteUri -OutFile 'generated-image.png'
'已下载 generated-image.png;请打开确认实际文件格式'
} else {
throw '响应中没有 url 或 b64_json'
}Python:兼容 URL 与 Base64#
按 SDK 教程 安装 openai,保存为 image.py 并在虚拟环境中运行。不会向图片下载域名发送 HOHAI 密钥。
import os
import base64
from pathlib import Path
from urllib.parse import urlparse
from urllib.request import urlopen
from openai import OpenAI
client = OpenAI(api_key=os.environ['HOHAI_API_KEY'],
base_url='https://api.hohai.eu.org/v1',
timeout=300.0, max_retries=0)
result = client.images.generate(model='gpt-image-2',
prompt='A blue circle on white background', n=1)
if not result.data:
raise RuntimeError('空图像响应')
image = result.data[0]
if image.b64_json:
data = base64.b64decode(image.b64_json, validate=True)
elif image.url and urlparse(image.url).scheme == 'https':
with urlopen(image.url, timeout=60) as response:
if urlparse(response.url).scheme != 'https':
raise RuntimeError('拒绝非 HTTPS 重定向')
data = response.read()
else:
raise RuntimeError('响应缺少有效的 url / b64_json')
if not data:
raise RuntimeError('图片内容为空')
suffix = '.png' if data.startswith(b'\x89PNG') else '.jpg' if data.startswith(b'\xff\xd8\xff') else '.bin'
path = Path('generated-image' + suffix)
path.write_bytes(data)
print(f'已保存 {path};请打开验证图片,.bin 需要进一步检查格式')
参数与成功标准#
先用模型最小必需参数测试,再按渠道支持添加 size、quality 等。不要假设所有模型都支持同一尺寸、比例或 4K。
成功必须同时满足:HTTP 成功、data 非空、存在 URL 或 Base64、下载/解码后的内容可打开。URL 可能有有效期,及时保存。超时先查调用记录,不要连续重复生图。
图片编辑走独立的 /v1/images/edits,通常需要 multipart 上传。当前目录没有单独声明编辑能力;请先向平台确认具体模型和文件字段,不把生成成功视为编辑接口也成功。
Codex Desktop 配置#
桌面应用与 CLI 的版本、登录方式和提供商设置可能不同。本节只说明 HOHAI 接入参数,不保证某个菜单在所有安装版本中存在。
下载和版本核验#
从 OpenAI 官方 Codex 入口 进入下载页,核对发布者和系统要求。不要只在应用商店搜索同名应用,也不要根据旧教程判断 ChatGPT 与 Codex 的产品命名或合并状态。
本次官方文档返回 403,未核验当前商店入口、产品命名及桌面 UI 路径。安装前以官方页面和你实际看到的版本为准。语言切换失败不等于必须开启某种 VPN;先检查客户端更新和资源下载报错。
使用自定义提供商#
先阅读 Codex CLI 配置模板。适用版本可共享用户目录中的 config.toml,但请先备份并合并,不要整份覆盖已有配置或清空 auth.json。
兼容性待实测:当前目录未给此示例模型声明 Responses。此配置是接入模板,不是可用性保证。必须先完成 Responses 验证;失败时请联系平台确认支持工具调用的模型,不要仅凭聊天接口成功就启动 Codex。
| 配置项 | 值 |
|---|---|
| 提供商 ID | hohai |
| 显示名称 | HOHAI |
| Base URL | https://api.hohai.eu.org/v1 |
| 协议 | Responses |
| 示例模型 | gpt-6-luna |
| 密钥来源 | 本机凭据管理或 HOHAI_API_KEY 环境变量;以版本支持为准 |
环境变量不生效时#
从 Finder、Dock 或开始菜单启动的应用不一定继承终端变量。优先使用客户端支持的安全凭据界面;使用环境变量方案时,需要确认启动进程实际具有此变量。不要为排错把真实值写进对话。
验证与保留已有账号#
先完成 Responses 最小请求,再重启客户端并发一个简单问题。保留原有登录信息;如果要切回官方或其他提供商,应切换配置,不要对所有历史会话做批量改名。
Claude Code 桌面版#
Claude 桌面应用中的聊天、Code、Projects 等功能不一定共享同一种第三方推理能力。接入网关不代表保留全部订阅功能,也不保证无需登录。
安装与适用范围#
从 Claude 官方下载页 获取应用,记录安装版本。下面的第三方推理面板来自原维护记录,本次没有运行桌面客户端核验;如果你的版本没有该入口,不要通过来源不明的补丁强行开启。
如果当前版本提供第三方推理设置#
在客户端官方支持的第三方推理 / Gateway 配置面板中填写:
| 项目 | 内容 |
|---|---|
| Gateway base URL | https://api.hohai.eu.org |
| Gateway API key | 在本机凭据输入框中填写 |
| Model ID | claude-sonnet-5-5 |
| 协议 | Anthropic Messages |
有些版本曾通过 Developer → Configure Third-Party Inference 暴露该面板,但不要把这一菜单路径视为所有版本都具备。分组以自己的 HOHAI 控制台为准。
验证与替代入口#
先用 Anthropic 最小请求 验证 Key、模型和协议,再在客户端中测试。若当前桌面版本不支持自定义网关,可使用 Claude Code CLI;不要向聊天界面发送密钥来尝试“配置 API”。
Gemini CLI 配置#
Gemini CLI 走 Google 原生协议。HOHAI 维护记录中的原生服务前缀为 https://api.hohai.eu.org/v1beta;当前公开目录未单列原生 Gemini 协议,因此 需要先验证该入口和目标模型,不能保证全部 Gemini 模型均可用。
安装#
先安装受支持的 Node.js LTS,再运行:
npm install -g @google/gemini-cli
gemini --version
配置密钥与模型#
先完成 本机密钥设置。以下是环境变量模板,请按你的 CLI / SDK 版本核验 Base URL 拼接行为。
macOS / Linux#
export GEMINI_API_KEY="$HOHAI_API_KEY"
export GOOGLE_GEMINI_BASE_URL="https://api.hohai.eu.org"
export GEMINI_MODEL="gemini-3.8-flash"Windows PowerShell#
$env:GEMINI_API_KEY = $env:HOHAI_API_KEY
$env:GOOGLE_GEMINI_BASE_URL = 'https://api.hohai.eu.org'
$env:GEMINI_MODEL = 'gemini-3.8-flash'这里给会自动追加 API 版本的客户端填写主机根地址,最终请求应为 /v1beta/models/…。 如果你的版本把该变量当作完整 API 前缀且不再追加版本,应使用 https://api.hohai.eu.org/v1beta。先检查脱敏请求路径,不能出现重复的版本前缀。
选择认证并验证#
在 CLI 中选择 API Key 认证,不混用另一个账户的 Google 登录或 Vertex 配置。如果编辑 ~/.gemini/settings.json,只合并所需配置,不覆盖原有 MCP、权限或其他设置。
gemini -m gemini-3.8-flash
先发一个简单文本问题。工具调用、Google 搜索、图像输入、上下文长度等功能都需要各自的渠道支持,不作统一承诺。
安全排错#
只检查变量是否存在,不打印完整密钥。Windows 当前示例在本窗口立即生效;如果改用系统持久化配置,需要新开终端。记录 CLI 版本、最终请求路径、模型和脱敏错误。
参考:Gemini CLI 官方文档、官方项目。
OpenCode 配置#
本节使用 OpenAI 兼容提供商和环境变量引用,不需要把密钥写进 JSON。接口类型和环境变量引用语法已对照 OpenCode 官方提供商文档;未执行带密钥的客户端测试。
安装#
npm install -g opencode-ai
opencode --version
合并提供商配置#
先设置 HOHAI_API_KEY。编辑 ~/.config/opencode/opencode.json,Windows 对应用户目录下的 .config\opencode\opencode.json。已有配置先备份,再合并 provider.hohai,不要整文件覆盖。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"hohai": {
"npm": "@ai-sdk/openai-compatible",
"name": "HOHAI",
"options": {
"baseURL": "https://api.hohai.eu.org/v1",
"apiKey": "{env:HOHAI_API_KEY}"
},
"models": {
"gpt-6-luna": { "name": "HOHAI 文本模型" }
}
}
}
}
使用环境变量路线时,不要再为同一个 provider 随意填入占位凭据造成混用。若你的版本要求通过 /connect 注册自定义服务商,provider ID 必须同为 hohai,按官方说明选择一种认证来源。
启动与验证#
从设置了变量的终端运行 opencode,输入 /models,选择上述提供商和模型。先测试文本,再单独验证工具调用。
为该 Key 设置适当预算、有效期和频率限制。分组以控制台实际选项为准。
n8n 工作流#
推荐先使用支持自定义 Base URL 的 OpenAI 凭证 / 节点接入 HOHAI。这是一条推荐路线,不表示网关只支持 OpenAI 协议。 Google Gemini 节点能否使用取决于该版本是否支持自定义原生地址。
最小工作流#
- 新建工作流,添加 Manual Trigger 便于手动测试。
- 添加 OpenAI 节点或 OpenAI Chat Model 节点,按工作流需要连接。
- 在 n8n 凭据管理中填写密钥,不放在消息内容或公开导出的工作流 JSON 中。
- Base URL 填
https://api.hohai.eu.org/v1;Organization ID 无平台要求时留空。 - 选择适合当前节点版本的文本操作,模型填
gpt-6-luna,User 内容填Hello。 - 手动执行一次,检查实际文本输出及控制台调用记录。
版本差异#
节点名称、操作名称、模型选择器、是否默认使用 Responses 都可能随版本变化。若节点提供 Responses 开关,按实际所需协议和模型声明选择;不要把旧版 “Message a Model” 当成唯一有效操作。
模型下拉可能受节点版本、服务商模型列表或凭据影响。若支持手填 ID,可从 模型目录 复制;不能手填时查看当前节点官方说明,不擅自替换成名字相似的官方模型。
验证层级#
凭据保存成功只证明凭据检查通过;工作流真正调用模型成功才算接入完成。执行失败时先看节点实际调用的是 /chat/completions 还是 /responses。
在 Codex 中调用生图接口#
如果你明确希望 Codex 通过 HOHAI 生图,可让它运行你审核过的服务端调用脚本。是否使用应用内置生图工具取决于版本与配置,不能笼统说“默认一定调用哪个服务”。
一次性准备#
- 按 密钥设置 在本机提供
HOHAI_API_KEY,不要把值贴进对话。 - 按 图像生成 API 保存
image.py,安装依赖并阅读代码。 - 确认模型
gpt-image-2的 Images 接口、额度和计费。
可复制的任务描述#
请使用我本机审核过的 image.py,通过 HOHAI 图像接口生成一张蓝色圆形图。
API 地址是 https://api.hohai.eu.org/v1/images/generations。
密钥只从本机 HOHAI_API_KEY 环境变量读取,不要打印、记录或写进源文件。
如果环境变量不存在,请停下让我在本机配置,不要要求我把密钥贴进对话。
只发起一次请求;超时或返回错误时先报告,不要自动重复生图。
成功后保存返回的 URL 或 Base64 图像,并验证文件可打开。
超时与编辑图片#
普通响应和流式响应是不同协议行为。本教程使用普通响应和有限超时;没有声明任何模型一定支持流式生图。超时不代表未扣费,先查调用记录。
编辑图片需另行核验 /v1/images/edits、模型能力和上传字段。不要因为文生图可用,就直接把未经测试的 multipart 示例当作通用接口。
Pi 配置#
Pi 通过用户目录下的 ~/.pi/agent/models.json 配置自定义提供商。Windows 对应 %USERPROFILE%\.pi\agent\models.json。
安装#
先安装受支持的 Node.js,再按 Pi 官方文档 选择安装方式。npm 入口为:
npm install -g @earendil-works/pi-coding-agent
pi --version
使用环境变量引用#
先完成 HOHAI_API_KEY 配置。已有 models.json 请备份并合并下面的提供商,不要覆盖其他服务商。
{
"providers": {
"hohai": {
"name": "HOHAI",
"baseUrl": "https://api.hohai.eu.org/v1",
"api": "openai-completions",
"apiKey": "$HOHAI_API_KEY",
"models": [
{ "id": "gpt-6-luna", "name": "HOHAI 文本模型", "input": ["text"] }
]
}
}
}
$NAME 环境变量插值已对照 Pi 模型配置参考。这里选用目录已声明的 Chat Completions,不凭空标注上下文上限、价格或视觉能力。
选择模型并验证#
从设置了变量的终端启动 pi,用 /model 选择 HOHAI。先验证文本,再测试工具调用。
如果使用 Anthropic,另建一个不同的 provider ID,例如 hohai-claude,使用 anthropic-messages、Base URL https://api.hohai.eu.org 和模型 claude-sonnet-5-5。不要用同一个 JSON 键覆盖原来的 OpenAI 配置。
Responses 配置对应 openai-responses,仍需先验证模型与渠道的实际支持。储存在客户端凭据文件中的旧 Key 可能优先于环境引用;遇到冲突按官方认证优先级检查,不打印密钥。
Hermes 配置#
Hermes 是 Nous Research 的代理工具。安装与模型配置以 官方文档 和 官方项目 为准。本次核对了提供商说明,未运行客户端。
安装与平台支持#
从官方文档选择适合系统的安装路径,先阅读安装脚本及其权限需求。Windows 是否需要 WSL、是否支持原生安装,以你选择的发行版为准。本页不提供删除整个用户配置目录的卸载命令。
安装后执行:
hermes version
hermes doctor
配置自定义 OpenAI 兼容服务#
hermes model
在版本提供的 Custom endpoint 配置中填写:
| 项目 | 内容 |
|---|---|
| API base URL | https://api.hohai.eu.org/v1 |
| 模型 | gpt-6-luna |
| API key | 在本机配置向导或安全凭据文件中输入 |
| 协议 | Chat Completions;其他协议需单独确认 |
本节明确选择 OpenAI 兼容路线,所以使用带 /v1 的地址。若当前版本会自动追加版本前缀,请按其说明调整,并确认最终路径,而不是无条件照抄根地址。
验证与配置保护#
先运行 最小协议请求,再启动 hermes 发一个简单问题。能力、上下文长度、模型推理参数以渠道和客户端的实际支持为准。
CC Switch 切换工具#
这里指 farion1231/cc-switch 官方桌面项目,用于管理多个客户端的提供商配置。它不是原教程中未经核验的同名 npm 命令行包。
获取正确的软件#
从 官方 GitHub Releases 选择符合系统与架构的发行包,核对仓库所有者、版本及发行说明。不要通过同名搜索结果安装来源不明的软件。
本次核实了项目身份与发行入口,未安装或运行桌面应用,因此具体按钮名称请以版本为准。
添加 HOHAI#
先选择需要管理的客户端,再按 协议地址表 新建提供商。Codex 使用 Responses 和带 /v1 的 Base URL;Claude Code 使用 Anthropic 入口。模型 ID 从 当前目录 复制。
密钥在本机配置界面中输入。切换前备份客户端配置,阅读工具将修改哪些文件,避免覆盖已有账号或其他服务商。
切换后的验证#
重启对应客户端,完成相应协议的最小请求,并核对实际模型与用量。切回其他提供商时保留各自配置;不需要为普通切换批量改写历史会话。
Node.js 安装#
本维护工程使用 Node.js 24 LTS。客户端请优先选官方仍支持的 LTS,并以其包的 engines 或安装文档为准;“存在任意 Node 版本”不代表兼容。
先检查版本#
node --version
npm --versionmacOS / Linux#
从 Node.js 官方下载页 选择 LTS 安装方式。已使用 nvm 等版本管理器时,在同一工具内安装 / 切换,不混用多个全局安装目录。
# 仅适用于已经安装并初始化 nvm 的终端
nvm install 24
nvm use 24
node --version
npm --versionWindows PowerShell#
可从官方安装包安装,或用系统支持的包管理器:
winget install --id OpenJS.NodeJS.LTS --exact
安装结束后新开 PowerShell,再运行版本检查。
安装失败怎么办#
遇到全局安装 EACCES,优先使用官方推荐的版本管理器或用户级安装方式。不要默认加 sudo、全局关闭执行策略,或在已有 nvm 环境里随意修改 npm prefix。
需要下载并运行安装脚本时,先阅读官方来源、脚本内容和将修改的位置。本指南不要求直接执行不透明的第三方安装脚本。
分协议验证连接#
先在 本机设置密钥。测试会真实调用模型,可能产生费用;每种协议只先发一次最小请求。以下例子均未在本次维护中使用真实 Key 执行。
检查凭据是否存在#
macOS / Linux#
if test -n "$HOHAI_API_KEY"; then
printf 'HOHAI_API_KEY 已设置\n'
else
printf '请先设置 HOHAI_API_KEY\n'
fiWindows PowerShell#
if ([string]::IsNullOrWhiteSpace($env:HOHAI_API_KEY)) {
throw '请先设置 HOHAI_API_KEY'
}
'HOHAI_API_KEY 已设置'Chat Completions 验证#
curl(macOS / Linux)#
curl --fail-with-body --show-error --max-time 120 \
https://api.hohai.eu.org/v1/chat/completions \
-H "Authorization: Bearer $HOHAI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-6-luna","messages":[{"role":"user","content":"Hello"}]}'PowerShell#
$headers = @{ Authorization = "Bearer $env:HOHAI_API_KEY" }
$body = @{ model = 'gpt-6-luna'; messages = @(@{ role = 'user'; content = 'Hello' }) } | ConvertTo-Json -Depth 5
$result = Invoke-RestMethod -Method Post -Uri 'https://api.hohai.eu.org/v1/chat/completions' -Headers $headers -ContentType 'application/json' -Body $body -TimeoutSec 120
$result.choices[0].message.content预期:成功响应中有 choices,其中包含模型消息;同时核对实际调用记录。返回网页 HTML 不算成功。
Responses 验证(Codex)#
兼容性待实测:当前目录未给此示例模型声明 Responses。此配置是接入模板,不是可用性保证。必须先完成 Responses 验证;失败时请联系平台确认支持工具调用的模型,不要仅凭聊天接口成功就启动 Codex。
curl(macOS / Linux)#
curl --fail-with-body --show-error --max-time 120 \
https://api.hohai.eu.org/v1/responses \
-H "Authorization: Bearer $HOHAI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-6-luna","input":"Hello"}'PowerShell#
$headers = @{ Authorization = "Bearer $env:HOHAI_API_KEY" }
$body = @{ model = 'gpt-6-luna'; input = 'Hello' } | ConvertTo-Json
$result = Invoke-RestMethod -Method Post -Uri 'https://api.hohai.eu.org/v1/responses' -Headers $headers -ContentType 'application/json' -Body $body -TimeoutSec 120
$result.output | ConvertTo-Json -Depth 10预期:成功响应包含有效的 output 内容,不是 Chat Completions 的 choices。普通文本通过后,工具调用、流式响应等仍需单独验证。
Anthropic Messages 验证#
curl(macOS / Linux)#
curl --fail-with-body --show-error --max-time 120 \
https://api.hohai.eu.org/v1/messages \
-H "x-api-key: $HOHAI_API_KEY" \
-H 'anthropic-version: 2023-06-01' \
-H 'Content-Type: application/json' \
-d '{"model":"claude-sonnet-5-5","max_tokens":128,"messages":[{"role":"user","content":"Hello"}]}'PowerShell#
$headers = @{ 'x-api-key' = $env:HOHAI_API_KEY; 'anthropic-version' = '2023-06-01' }
$body = @{ model = 'claude-sonnet-5-5'; max_tokens = 128; messages = @(@{ role = 'user'; content = 'Hello' }) } | ConvertTo-Json -Depth 5
$result = Invoke-RestMethod -Method Post -Uri 'https://api.hohai.eu.org/v1/messages' -Headers $headers -ContentType 'application/json' -Body $body -TimeoutSec 120
$result.content | ConvertTo-Json -Depth 5预期:成功返回 content 内容块,而不是把 CLI 界面打开当作成功。
Gemini 原生验证#
此入口来自维护记录,未被当前公开目录单独声明,按需测试,不要因未验证就批量重试。
curl(macOS / Linux)#
curl --fail-with-body --show-error --max-time 120 \
'https://api.hohai.eu.org/v1beta/models/gemini-3.8-flash:generateContent' \
-H "x-goog-api-key: $HOHAI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"contents":[{"parts":[{"text":"Hello"}]}]}'PowerShell#
$headers = @{ 'x-goog-api-key' = $env:HOHAI_API_KEY }
$body = @{ contents = @(@{ parts = @(@{ text = 'Hello' }) }) } | ConvertTo-Json -Depth 8
$result = Invoke-RestMethod -Method Post -Uri 'https://api.hohai.eu.org/v1beta/models/gemini-3.8-flash:generateContent' -Headers $headers -ContentType 'application/json' -Body $body -TimeoutSec 120
$result.candidates | ConvertTo-Json -Depth 10预期:有效的 candidates 内容。密钥使用请求头,不写进 URL 查询参数。
图像验证单独见 图像生成 API,需要验证返回文件而非只检查 HTTP 状态。
常见错误与求助#
先分清故障发生在网络、认证、模型、协议还是客户端。浏览器能打开官网,仅证明网页可访问;401 也只能说明认证被拒绝,不能证明该模型接口完整可用。
常见错误对照#
| 错误 / 现象 | 优先检查 | 建议动作 |
|---|---|---|
| 401 | Key、认证头、变量生效范围、客户端凭据优先级 | 只检查变量是否存在;核对当前使用哪套认证,不清空全部登录文件 |
| 403 | 分组、模型权限、访问策略 | 检查自己的控制台权限,联系平台确认 |
| 404 / HTML 页面 | 最终请求路径、版本前缀、协议 | 对照地址表,不把根站页面当作模型接口 |
| model not found | ID、令牌权限、渠道、客户端默认模型 | 从当前目录复制 ID,检查请求实际使用的模型 |
| 400 / 字段不支持 | 请求协议、参数、模型能力 | 回到最小请求,逐项添加可选参数 |
| 余额 / quota 不足 | 余额、令牌预算、渠道限额 | 检查额度,不直接取消全部预算限制 |
| 429 | 并发、频率、tokens、渠道配额 | 降低并发,尊重 Retry-After,设置有上限的退避 |
| 502 / 524 / timeout | 渠道错误、上游耗时、连接 | 先查调用记录,不自动重复生图 |
| Connection refused | 主机、端口、网络、代理 | 检查连接层;只改 URL 路径通常不会导致 TCP 拒绝连接 |
| No eligible media accounts | 图像渠道暂无可用资源 | 普通用户联系平台;渠道管理员再查媒体账号与配额 |
环境与安装问题#
node: command not found:检查 Node.js 安装和新终端的 PATH。- npm
EACCES:优先用户级安装 / 版本管理器,不默认加 sudo。 - Windows 变量不生效:区分当前窗口变量与持久化变量;新开终端或重启客户端。
- 桌面应用不读取终端变量:确认实际启动进程的环境或使用官方支持的凭据管理。
- 代码能聊天但客户端失败:分别验证 Responses、工具调用、流式响应等能力。
求助时提供什么#
通过控制台当前公开的客服 / 支持入口提交以下信息,不要把完整 Key 发给任何人:
操作系统及版本:
客户端名称及版本:
Base URL(不含凭据):
最终请求路径及协议:
模型 ID:
请求时间(注明时区):
HTTP 状态及脱敏错误:
请求 ID(如果响应提供):
最小复现步骤:
控制台是否出现本次调用:
截图、日志中先移除 Authorization、API Key、Cookie、个人数据和敏感提示词;不要上传完整认证文件。
安全使用建议#
API Key 相当于可消耗额度的凭证。建议将风险控制作为接入的一部分,而不是出错后再补。
密钥管理#
- 不在聊天、论坛、截图、Git 或浏览器前端中放真实密钥。
- 为不同工具 / 项目使用不同 Key,设置预算、有效期及频率限制。
- 使用系统凭据管理器,或限制本地环境文件权限并排除 Git。
- 不把密钥放入 URL;排错不打印完整值。
- 发生泄露立即禁用旧 Key、核对用量,再创建新 Key。
运行与计费#
- 首次用小额预算,先做一次最小请求。
- 超时不等于请求未执行,生图等昂贵操作不盲目重试。
- 不自动执行网页提供的安装、迁移或删除命令;先核对来源和影响。
- 改配置前备份;不为连接网关而关闭客户端权限保护。
- 生产环境设置监控、并发上限和有限重试,保护下游用户数据。
数据与服务边界#
请求内容会经过网关及对应上游。发送个人、商业或受监管数据前,应确认相关隐私、保存期限和合规要求;本页不承诺未核实的数据保留政策。
不要利用服务从事违法、侵权、诈骗、攻击或滥用行为。面向下游提供服务时,应自行落实用户告知、访问控制与用量限制。
FAQ#
本节目录
模型在目录中,为什么仍不能调用?#
目录不是实时健康检查。令牌分组、模型权限、余额、渠道状态及请求协议都可能影响可用性。先做一次 最小验证。
可以把同一把 Key 用在多个工具里吗?#
技术上取决于权限,但建议不同工具单独建 Key,便于统计、限额和吊销。不能推断任意 Key 都能调用目录中的全部模型。
Claude 与 OpenAI 地址为什么不同?#
多数 Anthropic 客户端从根地址追加 /v1/messages;多数 OpenAI SDK 从带 /v1 的 Base URL 追加资源路径。具体看 地址对照 和客户端实际请求。
Gemini 地址到底填根地址还是 /v1beta?#
网关原生前缀为 /v1beta。客户端若自己追加版本,就填根地址;若要求完整 API 前缀,就填到 /v1beta。以最终请求路径为准,不允许重复版本前缀。
为什么 Codex 示例带兼容性提示?#
公开目录的协议元数据与客户端需要的 Responses 能力不一定完整对应。本站会如实展示缺少声明的情况,不把“ID 存在”当作已实测兼容。先验证 Responses,必要时联系平台确认工具调用支持。
为什么不建议把 Key 发给 AI 帮我配置?#
真实密钥可能进入聊天记录、日志或共享截图。让工具读取本机变量即可;变量不存在时应由你在本机设置,不必把值发进对话。
这份文档验证到了什么程度?#
页面结构、当前目录一致性、示例语法、安全规则和响应式交互由维护测试验证;未用真实 Key 做所有客户端的端到端测试。每节标明内容审阅日期和适用范围,模型表另标目录更新日期。