OneHop Docs

对话与消息

通过同一个网关调用 chat completions、responses 与 Anthropic messages。

OneHop 说你的 SDK 本来就用的协议。把 base URL 指向对应家族、传一个 OneHop 模型 slug, 你现有的客户端无需改动即可工作。

家族Base URL端点
兼容 OpenAIhttps://api.onehop.ai/v1chat/completionsresponses
兼容 Anthropichttps://api.onehop.ai/anthropicv1/messages
Google GenAI / Vertexhttps://api.onehop.ai/vertex-aimodels/{model}:generateContent

请求和响应体会原样透传给上游供应商。OneHop 只读取 modelstream 和少量用量元数据 —— 不改写你的 payload,所以工具调用、system 提示和消息结构的行为完全与供应商文档一致。

Chat completions(OpenAI)

curl https://api.onehop.ai/v1/chat/completions \
  -H "Authorization: Bearer $ONEHOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.5",
    "messages": [{ "role": "user", "content": "用一句话解释预付费计费。" }]
  }'
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ONEHOP_API_KEY,
  baseURL: "https://api.onehop.ai/v1",
});

const completion = await client.chat.completions.create({
  model: "openai/gpt-5.5",
  messages: [{ role: "user", content: "用 OneHop 打个招呼" }],
});

流式

stream: true,像往常一样读取 SSE。OneHop 直接把 chunk 转发,不缓冲整个响应, 并在上游结束后按真实用量结算。

curl https://api.onehop.ai/v1/chat/completions \
  -H "Authorization: Bearer $ONEHOP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.5",
    "stream": true,
    "messages": [{ "role": "user", "content": "流式写一首俳句" }]
  }'

断开会中止上游

如果你的客户端在流中途断开,OneHop 会中止上游请求。你只为供应商实际报告的用量付费; 否则该记录会被对账或标记为失败。

Anthropic messages

推荐的 Anthropic 入口是 /anthropic/v1/messages。用 x-api-key 头,就和原生 Anthropic SDK 一样。

curl https://api.onehop.ai/anthropic/v1/messages \
  -H "x-api-key: $ONEHOP_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-opus-4.8",
    "max_tokens": 256,
    "messages": [{ "role": "user", "content": "用 OneHop 打个招呼" }]
  }'

Responses 与 Vertex

  • Responses:POST /v1/responses(或短路径别名 POST /responses),适用于基于 OpenAI Responses 协议构建的客户端。
  • **Vertex / Gemini:**指向 https://api.onehop.ai/vertex-ai,以 path 里的模型调用 :generateContent / :streamGenerateContent

要查看某个模型支持哪些协议,筛选目录即可 —— /v1/models?protocol=anthropic_messages。 完整筛选项见 模型与发现