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 URL | https://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 事件结束。详见流式输出。