HOHAI DOCUMENTATION

连接模型,从这里开始。

先选协议,再配密钥,最后用最小请求验证。本站不会要求你提交或粘贴真实 API Key。

开始使用 HOHAI#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

HOHAI 提供多种模型的 API 网关。接入时要同时确认 协议、Base URL、模型 ID、令牌权限,不能只改一个地址就假定所有功能可用。

三种接入地址#

接入方式Base URL主要用途
OpenAI 兼容https://api.hohai.eu.org/v1Chat Completions、Responses、图像接口;以模型声明为准
Anthropichttps://api.hohai.eu.orgClaude Code / Messages;客户端通常自动拼接 /v1/messages
Gemini 原生https://api.hohai.eu.org/v1beta维护记录中的原生入口;客户端如何追加版本路径需单独核验

第一次使用请从 快速开始 阅读。已经配置但出错,请看 分协议验证 和 常见错误。

公开目录能说明模型名称和声明接口,不能代替带密钥的实际请求。本站没有读取你的令牌,也不会要求把令牌发进聊天。

你需要哪篇指南?#

任务推荐入口
写代码调用文本模型Node.js / Python SDK
使用编码代理Codex CLI、Claude Code
使用桌面客户端Codex Desktop、Claude Code 桌面版
生成图片图像生成 API
查看模型和价格模型目录、模型定价

新手快速开始#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

按下面 6 步完成接入,最后一步才是验证。正式运行前先用小额预算测试。

  1. 打开 控制台,注册或登录。
  2. 创建用途明确的 API Key,设置额度、有效期及必要的模型权限。
  3. 从 模型目录 确认模型 ID 和声明接口;价格以模型定价页为准。
  4. 根据 地址对照 填写客户端需要的 Base URL。
  5. 按 密钥配置 在本机设置密钥,然后照对应客户端指南配置。
  6. 执行 分协议验证,检查 HTTP 状态、实际输出和控制台调用记录。

最小成功标准#

不要跳过的安全检查#

获取与保护 API Key#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

在 控制台 找到令牌 / 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。不要只修改本地变量而保留泄露令牌继续有效。

协议与地址对照#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

Base URL 是客户端拼路径的起点,不是完整请求 URL。 是否包含版本前缀取决于客户端,不要机械地给所有工具添加或删除 /v1。

客户端 / 协议Base URL最终请求路径核验重点
OpenAI SDK / Chat Completionshttps://api.hohai.eu.org/v1/v1/chat/completions模型需声明 Chat Completions
Codex / Responseshttps://api.hohai.eu.org/v1/v1/responses模型与渠道需支持 Responses 及所需工具调用
Claude Code / Anthropic SDKhttps://api.hohai.eu.org/v1/messages模型需支持 Anthropic Messages
Images APIhttps://api.hohai.eu.org/v1/v1/images/generations仅对支持此接口的图像模型使用
Gemini 原生维护记录入口 https://api.hohai.eu.org/v1beta/v1beta/models/MODEL:generateContent某些 SDK 自行追加 /v1beta,不能形成重复路径

需要避免的推断#

怎么确认最终请求地址#

查看客户端不含密钥的调试信息,确认没有重复的版本前缀或重复的 /chat/completions。分享日志前移除 Authorization、API Key、Cookie 和敏感输入。

支持的模型#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

当前公开目录共 40 个模型;目录内容更新于 (北京时间)。价格见 模型定价。

在目录中 ≠ 所有 Key 均可调用。实际权限取决于分组、令牌限制、余额与渠道状态。公开目录分组:default(默认分组)。接口列仅展示目录声明;未列出的协议不能据此推断可用或不可用,需独立验证。

点击模型右侧按钮可复制 ID。使用上方搜索框筛选,例如输入 Responses、nano-banana 或 Claude。不要根据模型名称猜测调用接口。

模型 ID目录声明的接口分组
beamChat Completionsdefault
claude-fable-5-1Anthropic Messages Chat Completionsdefault
claude-haiku-5-5Anthropic Messages Chat Completionsdefault
claude-opus-5-5Anthropic Messages Chat Completionsdefault
claude-sonnet-5-5Anthropic Messages Chat Completionsdefault
codex-auto-reviewChat Completionsdefault
deepseek-flashChat Completionsdefault
deepseek-v4-flashChat Completionsdefault
deepseek-v4-proChat Completionsdefault
deepseek-v4.1-flashChat Completionsdefault
gemini-3.8-flashChat Completionsdefault
gemini-4-argonChat Completionsdefault
glm-5.3Chat Completionsdefault
glm-5.3-flashChat Completionsdefault
gpt-6-astraChat Completionsdefault
gpt-6-lunaChat Completionsdefault
gpt-6.1-solChat Completionsdefault
gpt-6.1-terraChat Completionsdefault
gpt-image-2Images Chat Completionsdefault
gpt-image-2.5-flareImages Chat Completionsdefault
gpt-image-2.5-sunburstImages Chat Completionsdefault
grok-4.7Chat Completions Responsesdefault
grok-chat-fastChat Completions Responsesdefault
grok-imagine-image-2.0Chat Completions Responsesdefault
hy4Chat Completionsdefault
kimi-k3Chat Completionsdefault
kimi-k3.1-proChat Completionsdefault
mimo-v2.6-flashChat Completionsdefault
mimo-v2.6-proChat Completionsdefault
minimax-m3Chat Completionsdefault
minimax-m3.1-flashChat Completionsdefault
muse-spark-1.3-contributorChat Completionsdefault
nano-banana-2Chat Completionsdefault
nano-banana-2.1Chat Completionsdefault
nano-banana-proChat Completionsdefault
nemotron-3.5-super-vlChat Completionsdefault
qwen3.8-flashChat Completionsdefault
qwen3.8-maxChat Completionsdefault
solar-mini4Chat Completionsdefault
step-5-previewChat Completionsdefault

Claude Code 配置#

内容审阅:2026-10-18 · 版本范围:npm 2.1.302(仅核对发布版本) · 未进行带密钥的端到端验证

本节目录

使用 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 配置#

内容审阅:2026-10-18 · 版本范围:npm 0.163.0(仅核对发布版本) · 未进行带密钥的端到端验证

本节目录

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 配置#

内容审阅:2026-10-18 · 版本范围:界面随版本变化,未实测客户端 · 未进行带密钥的端到端验证

本节目录

OpenClaw 的界面和配置字段随版本变化。本节提供协议选择原则,不假定每个版本都存在相同菜单。

OpenAI 兼容接入参数#

项目值
服务商自定义 OpenAI 兼容服务商
Base URLhttps://api.hohai.eu.org/v1
模型 IDgpt-6-luna
密钥在本机凭据输入框中填写,不放进聊天
协议先确认客户端使用 Chat Completions 还是 Responses

先验证,再启用代理功能#

参考 协议验证 发起最小请求。若应用需要工具调用、视觉输入或长上下文,需要另外验证这些能力,不能仅根据“文本能回复”认定全部兼容。

请从 OpenClaw 官方项目 查找自己安装版本的配置说明。本次没有运行客户端,也没有核验它对每个模型的工具调用兼容性。

项目代码接入#

内容审阅:2026-10-18 · 版本范围:OpenAI SDK;示例未做带密钥请求 · 未进行带密钥的端到端验证

本节目录

以下示例是 服务端代码,使用 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 openai

Windows 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#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

仅对目录明确声明 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 配置#

内容审阅:2026-10-18 · 版本范围:以安装版本为准;官方页面本次返回 403 · 未进行带密钥的端到端验证

本节目录

桌面应用与 CLI 的版本、登录方式和提供商设置可能不同。本节只说明 HOHAI 接入参数,不保证某个菜单在所有安装版本中存在。

下载和版本核验#

从 OpenAI 官方 Codex 入口 进入下载页,核对发布者和系统要求。不要只在应用商店搜索同名应用,也不要根据旧教程判断 ChatGPT 与 Codex 的产品命名或合并状态。

本次官方文档返回 403,未核验当前商店入口、产品命名及桌面 UI 路径。安装前以官方页面和你实际看到的版本为准。语言切换失败不等于必须开启某种 VPN;先检查客户端更新和资源下载报错。

使用自定义提供商#

先阅读 Codex CLI 配置模板。适用版本可共享用户目录中的 config.toml,但请先备份并合并,不要整份覆盖已有配置或清空 auth.json。

兼容性待实测:当前目录未给此示例模型声明 Responses。此配置是接入模板,不是可用性保证。必须先完成 Responses 验证;失败时请联系平台确认支持工具调用的模型,不要仅凭聊天接口成功就启动 Codex。

配置项值
提供商 IDhohai
显示名称HOHAI
Base URLhttps://api.hohai.eu.org/v1
协议Responses
示例模型gpt-6-luna
密钥来源本机凭据管理或 HOHAI_API_KEY 环境变量;以版本支持为准

环境变量不生效时#

从 Finder、Dock 或开始菜单启动的应用不一定继承终端变量。优先使用客户端支持的安全凭据界面;使用环境变量方案时,需要确认启动进程实际具有此变量。不要为排错把真实值写进对话。

验证与保留已有账号#

先完成 Responses 最小请求,再重启客户端并发一个简单问题。保留原有登录信息;如果要切回官方或其他提供商,应切换配置,不要对所有历史会话做批量改名。

Claude Code 桌面版#

内容审阅:2026-10-18 · 版本范围:第三方推理入口需按实际版本核验 · 未进行带密钥的端到端验证

本节目录

Claude 桌面应用中的聊天、Code、Projects 等功能不一定共享同一种第三方推理能力。接入网关不代表保留全部订阅功能,也不保证无需登录。

安装与适用范围#

从 Claude 官方下载页 获取应用,记录安装版本。下面的第三方推理面板来自原维护记录,本次没有运行桌面客户端核验;如果你的版本没有该入口,不要通过来源不明的补丁强行开启。

如果当前版本提供第三方推理设置#

在客户端官方支持的第三方推理 / Gateway 配置面板中填写:

项目内容
Gateway base URLhttps://api.hohai.eu.org
Gateway API key在本机凭据输入框中填写
Model IDclaude-sonnet-5-5
协议Anthropic Messages

有些版本曾通过 Developer → Configure Third-Party Inference 暴露该面板,但不要把这一菜单路径视为所有版本都具备。分组以自己的 HOHAI 控制台为准。

验证与替代入口#

先用 Anthropic 最小请求 验证 Key、模型和协议,再在客户端中测试。若当前桌面版本不支持自定义网关,可使用 Claude Code CLI;不要向聊天界面发送密钥来尝试“配置 API”。

Gemini CLI 配置#

内容审阅:2026-10-18 · 版本范围:npm 0.64.0(仅核对发布版本) · 未进行带密钥的端到端验证

本节目录

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 配置#

内容审阅:2026-10-18 · 版本范围:npm 1.19.3(仅核对发布版本) · 未进行带密钥的端到端验证

本节目录

本节使用 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 工作流#

内容审阅:2026-10-18 · 版本范围:节点名称随版本变化,未实测客户端 · 未进行带密钥的端到端验证

本节目录

推荐先使用支持自定义 Base URL 的 OpenAI 凭证 / 节点接入 HOHAI。这是一条推荐路线,不表示网关只支持 OpenAI 协议。 Google Gemini 节点能否使用取决于该版本是否支持自定义原生地址。

最小工作流#

  1. 新建工作流,添加 Manual Trigger 便于手动测试。
  2. 添加 OpenAI 节点或 OpenAI Chat Model 节点,按工作流需要连接。
  3. 在 n8n 凭据管理中填写密钥,不放在消息内容或公开导出的工作流 JSON 中。
  4. Base URL 填 https://api.hohai.eu.org/v1;Organization ID 无平台要求时留空。
  5. 选择适合当前节点版本的文本操作,模型填 gpt-6-luna,User 内容填 Hello。
  6. 手动执行一次,检查实际文本输出及控制台调用记录。

版本差异#

节点名称、操作名称、模型选择器、是否默认使用 Responses 都可能随版本变化。若节点提供 Responses 开关,按实际所需协议和模型声明选择;不要把旧版 “Message a Model” 当成唯一有效操作。

模型下拉可能受节点版本、服务商模型列表或凭据影响。若支持手填 ID,可从 模型目录 复制;不能手填时查看当前节点官方说明,不擅自替换成名字相似的官方模型。

验证层级#

凭据保存成功只证明凭据检查通过;工作流真正调用模型成功才算接入完成。执行失败时先看节点实际调用的是 /chat/completions 还是 /responses。

参考:n8n OpenAI 节点官方文档。

在 Codex 中调用生图接口#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

如果你明确希望 Codex 通过 HOHAI 生图,可让它运行你审核过的服务端调用脚本。是否使用应用内置生图工具取决于版本与配置,不能笼统说“默认一定调用哪个服务”。

一次性准备#

  1. 按 密钥设置 在本机提供 HOHAI_API_KEY,不要把值贴进对话。
  2. 按 图像生成 API 保存 image.py,安装依赖并阅读代码。
  3. 确认模型 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 配置#

内容审阅:2026-10-18 · 版本范围:npm 1.3.0(仅核对发布版本) · 未进行带密钥的端到端验证

本节目录

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 配置#

内容审阅:2026-10-18 · 版本范围:以官方发行版为准,未实测客户端 · 未进行带密钥的端到端验证

本节目录

Hermes 是 Nous Research 的代理工具。安装与模型配置以 官方文档 和 官方项目 为准。本次核对了提供商说明,未运行客户端。

安装与平台支持#

从官方文档选择适合系统的安装路径,先阅读安装脚本及其权限需求。Windows 是否需要 WSL、是否支持原生安装,以你选择的发行版为准。本页不提供删除整个用户配置目录的卸载命令。

安装后执行:

hermes version
hermes doctor

配置自定义 OpenAI 兼容服务#

hermes model

在版本提供的 Custom endpoint 配置中填写:

项目内容
API base URLhttps://api.hohai.eu.org/v1
模型gpt-6-luna
API key在本机配置向导或安全凭据文件中输入
协议Chat Completions;其他协议需单独确认

本节明确选择 OpenAI 兼容路线,所以使用带 /v1 的地址。若当前版本会自动追加版本前缀,请按其说明调整,并确认最终路径,而不是无条件照抄根地址。

验证与配置保护#

先运行 最小协议请求,再启动 hermes 发一个简单问题。能力、上下文长度、模型推理参数以渠道和客户端的实际支持为准。

编辑配置前备份,尤其不要覆盖其他 profile。参考:官方提供商配置、环境变量与配置参考。

CC Switch 切换工具#

内容审阅:2026-10-18 · 版本范围:官方桌面项目;不使用同名未核验 npm 包 · 未进行带密钥的端到端验证

本节目录

这里指 farion1231/cc-switch 官方桌面项目,用于管理多个客户端的提供商配置。它不是原教程中未经核验的同名 npm 命令行包。

获取正确的软件#

从 官方 GitHub Releases 选择符合系统与架构的发行包,核对仓库所有者、版本及发行说明。不要通过同名搜索结果安装来源不明的软件。

本次核实了项目身份与发行入口,未安装或运行桌面应用,因此具体按钮名称请以版本为准。

添加 HOHAI#

先选择需要管理的客户端,再按 协议地址表 新建提供商。Codex 使用 Responses 和带 /v1 的 Base URL;Claude Code 使用 Anthropic 入口。模型 ID 从 当前目录 复制。

密钥在本机配置界面中输入。切换前备份客户端配置,阅读工具将修改哪些文件,避免覆盖已有账号或其他服务商。

切换后的验证#

重启对应客户端,完成相应协议的最小请求,并核对实际模型与用量。切回其他提供商时保留各自配置;不需要为普通切换批量改写历史会话。

Node.js 安装#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

本维护工程使用 Node.js 24 LTS。客户端请优先选官方仍支持的 LTS,并以其包的 engines 或安装文档为准;“存在任意 Node 版本”不代表兼容。

先检查版本#

node --version
npm --version

macOS / Linux#

从 Node.js 官方下载页 选择 LTS 安装方式。已使用 nvm 等版本管理器时,在同一工具内安装 / 切换,不混用多个全局安装目录。

# 仅适用于已经安装并初始化 nvm 的终端
nvm install 24
nvm use 24
node --version
npm --version

Windows PowerShell#

可从官方安装包安装,或用系统支持的包管理器:

winget install --id OpenJS.NodeJS.LTS --exact

安装结束后新开 PowerShell,再运行版本检查。

安装失败怎么办#

遇到全局安装 EACCES,优先使用官方推荐的版本管理器或用户级安装方式。不要默认加 sudo、全局关闭执行策略,或在已有 nvm 环境里随意修改 npm prefix。

需要下载并运行安装脚本时,先阅读官方来源、脚本内容和将修改的位置。本指南不要求直接执行不透明的第三方安装脚本。

分协议验证连接#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

先在 本机设置密钥。测试会真实调用模型,可能产生费用;每种协议只先发一次最小请求。以下例子均未在本次维护中使用真实 Key 执行。

检查凭据是否存在#

macOS / Linux#

if test -n "$HOHAI_API_KEY"; then
  printf 'HOHAI_API_KEY 已设置\n'
else
  printf '请先设置 HOHAI_API_KEY\n'
fi

Windows 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 状态。

常见错误与求助#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

先分清故障发生在网络、认证、模型、协议还是客户端。浏览器能打开官网,仅证明网页可访问;401 也只能说明认证被拒绝,不能证明该模型接口完整可用。

常见错误对照#

错误 / 现象优先检查建议动作
401Key、认证头、变量生效范围、客户端凭据优先级只检查变量是否存在;核对当前使用哪套认证,不清空全部登录文件
403分组、模型权限、访问策略检查自己的控制台权限,联系平台确认
404 / HTML 页面最终请求路径、版本前缀、协议对照地址表,不把根站页面当作模型接口
model not foundID、令牌权限、渠道、客户端默认模型从当前目录复制 ID,检查请求实际使用的模型
400 / 字段不支持请求协议、参数、模型能力回到最小请求,逐项添加可选参数
余额 / quota 不足余额、令牌预算、渠道限额检查额度,不直接取消全部预算限制
429并发、频率、tokens、渠道配额降低并发,尊重 Retry-After,设置有上限的退避
502 / 524 / timeout渠道错误、上游耗时、连接先查调用记录,不自动重复生图
Connection refused主机、端口、网络、代理检查连接层;只改 URL 路径通常不会导致 TCP 拒绝连接
No eligible media accounts图像渠道暂无可用资源普通用户联系平台;渠道管理员再查媒体账号与配额

环境与安装问题#

求助时提供什么#

通过控制台当前公开的客服 / 支持入口提交以下信息,不要把完整 Key 发给任何人:

操作系统及版本:
客户端名称及版本:
Base URL(不含凭据):
最终请求路径及协议:
模型 ID:
请求时间(注明时区):
HTTP 状态及脱敏错误:
请求 ID(如果响应提供):
最小复现步骤:
控制台是否出现本次调用:

截图、日志中先移除 Authorization、API Key、Cookie、个人数据和敏感提示词;不要上传完整认证文件。

安全使用建议#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

API Key 相当于可消耗额度的凭证。建议将风险控制作为接入的一部分,而不是出错后再补。

密钥管理#

运行与计费#

数据与服务边界#

请求内容会经过网关及对应上游。发送个人、商业或受监管数据前,应确认相关隐私、保存期限和合规要求;本页不承诺未核实的数据保留政策。

不要利用服务从事违法、侵权、诈骗、攻击或滥用行为。面向下游提供服务时,应自行落实用户告知、访问控制与用量限制。

FAQ#

内容审阅:2026-10-18 · 未进行带密钥的端到端验证

本节目录

模型在目录中,为什么仍不能调用?#

目录不是实时健康检查。令牌分组、模型权限、余额、渠道状态及请求协议都可能影响可用性。先做一次 最小验证。

可以把同一把 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 做所有客户端的端到端测试。每节标明内容审阅日期和适用范围,模型表另标目录更新日期。