OhMyGPT

Messages

通过 Anthropic Messages 协议调用 Claude 以及其他任意对话模型。

POST /v1/messages 使用 Anthropic Messages 协议。用 Anthropic SDK 和 Claude Code 调用 Claude 时用它;模型列表中的其他对话模型也能在这里调用,同样以 content block 的形式返回。完整的 schema 见端点参考。

端点POST https://api.ohmygpt.com/v1/messages
SDK Base URLhttps://api.ohmygpt.com
鉴权x-api-key: $OHMYGPT_API_KEY 或 Authorization: Bearer $OHMYGPT_API_KEY

Base URL 不要带 /v1。Anthropic SDK 和 Claude Code 会自己拼上 /v1/messages,所以写成 https://api.ohmygpt.com/v1 会变成请求 /v1/v1/messages,返回 404。

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.ohmygpt.com",
    api_key=os.environ["OHMYGPT_API_KEY"],
)

message = client.messages.create(
    model="anthropic/claude-haiku-4-5",
    max_tokens=256,
    messages=[{"role": "user", "content": "Explain QUIC in two sentences."}],
)
print(message.content[0].text)

不需要发送 anthropic-version,缺省时会自动补上 2023-06-01。使用 Claude Code 见 Claude Code。

Claude

Claude 模型收到的请求体和 anthropic-* 请求头(包括 anthropic-beta)都与你发送的一致。提示词缓存、扩展思考、服务端工具和 beta 功能都按 Anthropic 文档的说明生效。

其他模型

其他任何对话模型也能在这里调用,包括工具调用:

curl https://api.ohmygpt.com/v1/messages \
  -H "x-api-key: $OHMYGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ohmygpt/mock",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "What is the weather in Paris?"}],
    "tools": [{
      "name": "get_weather",
      "description": "Get weather",
      "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}
    }]
  }'
{
  "type": "message",
  "role": "assistant",
  "model": "mock",
  "content": [
    { "type": "tool_use", "id": "call_mock_1", "name": "get_weather", "input": { "city": "" } }
  ],
  "stop_reason": "tool_use",
  "usage": { "input_tokens": 71, "output_tokens": 8 }
}

在这些模型上:

  • stop_reason 取值为 end_turn、max_tokens、tool_use 或 refusal。
  • usage.output_tokens 包含模型的推理 token。
  • anthropic-* 请求头、container、mcp_servers 以及 web_search_20250305 等服务端工具是 Claude 的功能,请配合 Claude 模型使用。
  • cache_control 不会发送。它只决定缓存哪些内容,不影响回答。

通用规则见协议。

计算 token 数

POST /v1/messages/count_tokens 返回一个 Claude 请求的输入 token 数。它是免费的,也不会产生用量记录。

curl https://api.ohmygpt.com/v1/messages/count_tokens \
  -H "x-api-key: $OHMYGPT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "anthropic/claude-haiku-4-5", "messages": [{"role": "user", "content": "Hello, Claude"}]}'
{ "input_tokens": 10 }

请配合 Claude 模型使用。

流式输出

stream: true 返回 Anthropic 的事件序列,从 message_start 到 message_stop,中间穿插 ping 事件。message_stop 之前有一行 : x-cost-credits 注释。如果流开始后模型出错,流会以一个 error 事件结束。详见流式输出。

本页目录