fengzee.me / LLM API

Getting started

LLM API 使用指南

这是一个私有的 AI 模型接口:一个地址、一把 key,就能使用 Claude、GPT 与 GLM 的最新对话模型。本页教你在一台全新的 Mac 上完成配置,全程复制粘贴即可,不需要技术背景。API key 请向管理员索取。

粘贴后,本页所有命令会自动填好 key,直接复制就能用。key 只留在你的浏览器里,不会被上传或保存。

怎么打开终端:按 ⌘ + 空格,输入 Terminal,回车。看到一个可以输入文字的窗口就对了。下面所有命令都粘贴到这个窗口里,按回车执行。
关于可用性:对话模型请求由服务端 CPA 发出,订阅额度也在服务端读取。本机离线时,这两项继续运行。HTTP 502(upstream_unavailable)表示模型上游暂不可达,HTTP 504 表示超时。HTTP 403(upstream_paused)表示提供方暂停,请按提示的恢复时间再使用,不要自动重试。

用 Hermes

Hermes 是一个在终端里对话的 AI 助手,安装和配置最快,共三步。

STEP 1安装 Hermes

粘贴执行,等待安装完成(几分钟)。装完后关掉终端窗口,重新开一个。

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
STEP 2填入接口地址和 key

把下面的命令一起粘贴执行。配置按协议分组:Claude 使用 fengzee-claude(Anthropic Messages),GPT 与 GLM 使用 fengzee-llm(OpenAI Chat Completions)。默认模型按当前目录的推荐项设置;以后切换模型时,请同时选择对应的 provider。

hermes config set providers.fengzee-claude.base_url https://llm.fengzee.me
hermes config set providers.fengzee-claude.api_key YOUR_API_KEY
hermes config set providers.fengzee-claude.api_mode anthropic_messages
hermes config set providers.fengzee-claude.discover_models true
hermes config set providers.fengzee-llm.base_url https://llm.fengzee.me/v1
hermes config set providers.fengzee-llm.api_key YOUR_API_KEY
hermes config set providers.fengzee-llm.api_mode chat_completions
hermes config set providers.fengzee-llm.discover_models true
hermes config set model.provider fengzee-claude
hermes config set model.default claude-opus-5-5
STEP 3开始使用

输入 hermes 回车,直接打字对话。如果首次启动出现设置向导,直接退出即可,接口已在第 2 步配好。

hermes

用 DeepSeek Harness

DeepSeek Harness 在浏览器里提供对话界面,适合不想待在终端里的人。共四步,第一步是装 Node.js 运行环境。

STEP 1安装 Node.js

打开 nodejs.org,点绿色下载按钮(LTS 版本),下载后双击安装包,一路「继续」装完。

STEP 2安装 DeepSeek Harness

粘贴执行,等待完成(几分钟,视网络情况)。

mkdir -p ~/dsh && cd ~/dsh && npm install @deepseek-ai/dsh@0.2.0-rc.2
STEP 3写入配置

以下配置用于 DeepSeek Harness 0.2 新安装。Claude 使用 fengzee-claude(anthropic-messages),baseURL 为 https://llm.fengzee.me;GPT 与 GLM 使用 fengzee-llm(openai-completions),baseURL 为 https://llm.fengzee.me/v1。模型与推荐项按当前目录生成。已有配置请合并相应 provider,保留其他设置。

展开配置收起配置
mkdir -p ~/.dsh/profiles/web
cat > ~/.dsh/profiles/web/package.json <<'EOF'
{"name":"dsh-profile-web","version":"0.0.0","private":true,"dependencies":{},"dsh":{"profile":{"bundles":["@deepseek-ai/dsh-base","@deepseek-ai/dsh-web-app"],"patchReload":"live"}}}
EOF
cat > ~/.dsh/profiles/web/cordis.patch.yml <<'EOF'
- id: agent-default-model
  config:
    provider: fengzee-claude
    model: claude-opus-5-5
    reasoningEffort: high
- id: llm-pi-ai
  config:
    providers:
      fengzee-claude:
        apiKeyEnv: FENGZEE_LLM_API_KEY
        api: anthropic-messages
        baseURL: https://llm.fengzee.me
        reasoning: high
        compat:
          forceAdaptiveThinking: true
          allowEmptySignature: false
          supportsLongCacheRetention: true
          supportsCacheControlOnTools: true
        defaultContextWindow: 1000000
        defaultMaxTokens: 128000
        defaultInput: [text, image]
        streamIdleTimeoutMs: 1800000
        models:
          - id: claude-opus-5-5
            name: Claude Opus 5.5
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: claude-sonnet-5-5
            name: Claude Sonnet 5.5
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: claude-haiku-5-5
            name: Claude Haiku 5.5
            contextWindow: 1000000
            maxTokens: 128000
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: claude-fable-5-1
            name: Claude Fable 5.1
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
      fengzee-llm:
        apiKeyEnv: FENGZEE_LLM_API_KEY
        api: openai-completions
        baseURL: https://llm.fengzee.me/v1
        reasoning: high
        compat:
          supportsDeveloperRole: false
        defaultContextWindow: 1000000
        defaultMaxTokens: 128000
        defaultInput: [text, image]
        streamIdleTimeoutMs: 1800000
        models:
          - id: gpt-6-astra
            name: GPT 6 Astra
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-6.1-sol
            name: GPT 6.1 Sol
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-6-sol
            name: GPT 6 Sol
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-6-luna
            name: GPT 6 Luna
            input:
              - text
              - image
            reasoningEfforts:
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-5.6-sol
            name: GPT 5.6 Sol
            input:
              - text
              - image
            reasoningEfforts:
              off: none
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-5.6-terra
            name: GPT 5.6 Terra
            input:
              - text
              - image
            reasoningEfforts:
              off: none
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: gpt-5.6-luna
            name: GPT 5.6 Luna
            input:
              - text
              - image
            reasoningEfforts:
              off: none
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: glm-5.3
            name: GLM 5.3
            input:
              - text
            reasoningEfforts:
              minimal: minimal
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
          - id: glm-5.3-flash
            name: GLM 5.3 Flash
            input:
              - text
              - image
            reasoningEfforts:
              minimal: minimal
              low: low
              medium: medium
              high: high
              xhigh: xhigh
              max: max
EOF
cat > ~/.dsh/.credentials.yaml <<'EOF'
version: 1
refs:
  FENGZEE_LLM_API_KEY: YOUR_API_KEY
EOF
chmod 600 ~/.dsh/.credentials.yaml
STEP 4启动

执行后浏览器会自动打开 http://127.0.0.1:3080,在网页里对话。以后每次使用都执行这一条。

cd ~ && ~/dsh/node_modules/.bin/dsh web

已经在用别的 AI 工具?

如果你的电脑上已经有任何能执行任务的 AI 助手(Claude Code、Codex、Cursor 等),把下面这段话直接发给它,它会替你完成接入。

请帮我把这台电脑上的 AI 工具接入一个私有 LLM API:
- 服务地址:https://llm.fengzee.me
- Claude:Anthropic Messages,POST /v1/messages;Anthropic 客户端的 baseURL 为 https://llm.fengzee.me,版本头为 anthropic-version: 2023-06-01
- GPT 与 GLM:OpenAI Chat Completions,POST /v1/chat/completions;OpenAI 客户端的 baseURL 为 https://llm.fengzee.me/v1
- 按上述协议分别配置 provider;DeepSeek Harness 的 api 分别为 anthropic-messages 与 openai-completions
- API key:YOUR_API_KEY(Authorization: Bearer 或 X-Api-Key 鉴权)
- 可用模型列表:GET https://llm.fengzee.me/v1/models(按当前 key 权限过滤)
- 提供的模型:claude-opus-5-5、claude-sonnet-5-5、claude-haiku-5-5、claude-fable-5-1、gpt-6-astra、gpt-6.1-sol、gpt-6-sol、gpt-6-luna、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、glm-5.3、glm-5.3-flash
- 推荐默认模型:claude-opus-5-5
- 对话模型请求由服务端 CPA 发出,订阅额度在服务端读取;本机离线时继续运行
- 错误处理:HTTP 502(upstream_unavailable)为上游暂不可达,HTTP 504 为超时;HTTP 403(upstream_paused)为提供方暂停,不要自动重试,按提示的恢复时间再使用
请完成配置,按所选模型的协议发送一条测试消息,然后告诉我以后怎么切换模型和对应的 provider。

通用接入信息

请按模型选择客户端协议:Claude 使用 Anthropic Messages(POST /v1/messages),GPT 与 GLM 使用 OpenAI Chat Completions(POST /v1/chat/completions),两者都支持流式响应。Anthropic 客户端的 baseURL 使用站点根地址,OpenAI 客户端使用下方带 /v1 的地址。鉴权头二选一即可。

Base URLClaude: https://llm.fengzee.me
GPT / GLM: https://llm.fengzee.me/v1
协议Claude:Anthropic Messages;GPT / GLM:OpenAI Chat Completions
鉴权Authorization: Bearer <key>
X-Api-Key: <key>
可用模型claude-opus-5-5 / claude-sonnet-5-5 / claude-haiku-5-5 / claude-fable-5-1 / gpt-6-astra / gpt-6.1-sol / gpt-6-sol / gpt-6-luna / gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna / glm-5.3 / glm-5.3-flash
推荐模型claude-opus-5-5
上游异常502:上游不可达;504:超时;403 upstream_paused:等待恢复,不自动重试
TEST连通性测试

第一条命令按当前推荐模型的协议生成,返回回答即可确认连通;第二条列出当前 key 可用的模型。若返回 upstream_paused,请等待提示的恢复时间,或选择其他未暂停的提供方。

curl https://llm.fengzee.me/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"claude-opus-5-5","max_tokens":1024,"messages":[{"content":"你好","role":"user"}]}'
curl https://llm.fengzee.me/v1/models -H "Authorization: Bearer YOUR_API_KEY"