TokenHub 邀请内测已开放 · 账号由管理员开通了解详情
subfor.me

从第一次 API 调用开始。

联系管理员开通账号并分配测试额度,再使用你自己的 API Key。示例中的密钥由环境变量读取。

打开密钥管理 · 内测额度说明

1. 配置密钥

export SUBFOR_API_KEY="your-own-api-key"
export SUBFOR_BASE_URL="https://token.subfor.me/v1"

请只在你的终端中填入真实密钥,不要将它提交到代码仓库或截图中。

2. 查询可用模型

curl "$SUBFOR_BASE_URL/models" \
  -H "Authorization: Bearer $SUBFOR_API_KEY"

3. 发起对话

curl "$SUBFOR_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $SUBFOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gemini-3.5-flash-lite","messages":[{"role":"user","content":"Hello!"}],"max_tokens":128}'

4. 流式输出与用量

curl -N "$SUBFOR_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $SUBFOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gemini-3.5-flash-lite","messages":[{"role":"user","content":"Count from 1 to 10."}],"max_tokens":128,"stream":true,"stream_options":{"include_usage":true}}'

有效文本在 SSE 数据事件中返回,用量通常出现在末尾。心跳不是输出 token;客户端断开后可能仍产生已执行部分的用量。

5. Python SDK

pip install openai

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SUBFOR_API_KEY"],
    base_url="https://token.subfor.me/v1",
)
response = client.chat.completions.create(
    model="gemini-3.5-flash-lite",
    messages=[{"role": "user", "content": "Hello!"}],
    max_tokens=128,
)
print(response.choices[0].message.content)

工具调用与客户端兼容

已验证 Gemini Flash Lite 的 Chat Completions 工具调用与工具结果续接。客户端须保留 tool_call_id,并以 role: "tool" 发送结果。

设置客户端时选择 OpenAI 兼容协议,Base URL 填入上面的地址。当前不承诺所有客户端或 Responses / WebSocket 功能兼容;Codex++ 专用接入将在独立验收后提供。

常见问题

  • 401:检查 Key 是否正确、过期或已撤销。
  • 403 / 额度不足:检查账号余额、Key 限额和模型权限;新用户需要邀请人分配额度。
  • 429:降低并发并退避重试,遵守 Retry-After。
  • 5xx / 超时:查看性能页;不要对已经执行的工具或付款操作自动重试。