---
title: "モデルと使用量の確認"
description: "呼び出しログと五つの確認項目で、各リクエストのモデル、トークン使用量、料金を確認します。"
headingIds: {"调用日志":"section-1","五つのチェック":"section-2","スクリプトで前4項目を実行":"section-3","thinking ブロック":"section-4","不一致を発見した場合":"section-5","よくある質問":"section-6"}
---

<aside className="docs-publication" data-pagefind-ignore>

ドキュメントは [1ZheAI](https://1zheai.com/en/editorial/#publisher) が管理しています。[出典と訂正](https://1zheai.com/en/editorial/)。

エラーを見つけましたか？ページのアドレスと説明を添えて[サポートに連絡](mailto:support@1zheai.com)してください。API キーやアカウント情報は送信しないでください。

</aside>
## 调用日志

每次调用都记入控制台的[調用ログ](/ja/docs/usage-logs/)、モデル、入力・出力・キャッシュ読み取り・キャッシュ書き込みのトークン使用量、および料金を一覧表示します。

## 五つのチェック

以下のチェックは Anthropic API の公開フォーマットと照合し、返却フィールドやフォーマットの差異を発見するために使用します。

| チェック | 期待される結果 | 留意すべき点 |
|---|---|---|
| 1. 返却される `model` フィールド | リクエストのモデル ID と一致 | 別のモデル名が返る、または当該フィールドが存在しない |
| 2. キャッシュ読み取り | キャッシュ条件を満たす同一リクエストをキャッシュ有効期間内に2回送信し、2回目の `cache_read_input_tokens` が 0 より大きい | 常に 0、または `usage` にキャッシュフィールドが存在しない |
| 3. ツール呼び出し ID | `tool_use` ブロックの `id` が `toolu_` で始まる | 他のフォーマット、またはモデルが要求どおりにツールを呼び出さない |
| 4. ストリーミングイベントの順序 | `message_start`、`content_block_start`、`content_block_delta`、`message_delta`、`message_stop` の順に出現 | OpenAI フォーマットの `data:` ブロックのみ、またはイベントの欠落・順序の乱れ |
| 5. 実タスクとの照合 | 固定のタスクを1つ用い、公式 API またはその他の信頼できるソースと結果を比較 | 結果の明確な悪化、拒否の異常、頻繁な打ち切り |

<Warning>

これらのチェックはフィールドとフォーマットの差異を発見するだけで、実際に使用されているモデルを単独で確認するものではありません。`model` フィールドは改変でき、フォーマットも模倣できます。

</Warning>

## スクリプトで前4項目を実行

`bash`、`curl`、`jq` が必要です。スクリプトは5回の小規模な呼び出しを行い、そのうち1回は約 1.8 万トークンのキャッシュ書き込みを行い、通常の価格で課金されます。

```bash title="verify.sh"
#!/usr/bin/env bash
# 用法：ONEZHE_API_KEY=sk-你的API密钥 bash verify.sh [模型ID]
set -euo pipefail
BASE="https://1zheai.com"
MODEL="${1:-claude-sonnet-5-5}"
H=(-H "x-api-key: $ONEZHE_API_KEY" -H "anthropic-version: 2023-06-01" -H "content-type: application/json")

echo "== 1. model 字段"
curl -s "$BASE/v1/messages" "${H[@]}" \
  -d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:16,messages:[{role:"user",content:"ping"}]}')" \
  | jq 'if .error then .error else {id, model, usage} end'

echo "== 2. 缓存：同一请求发两次，看第二次的 cache_read_input_tokens"
LONG=$(printf '这是一段用来测试缓存的固定文本，内容不重要，长度够就行。%.0s' {1..600})
BODY=$(jq -n --arg m "$MODEL" --arg t "$LONG" '{model:$m,max_tokens:16,
  system:[{type:"text",text:$t,cache_control:{type:"ephemeral"}}],
  messages:[{role:"user",content:"ping"}]}')
for i in 1 2; do
  curl -s "$BASE/v1/messages" "${H[@]}" -d "$BODY" | jq -c 'if .error then .error else .usage end'
done

echo "== 3. 工具调用 ID"
curl -s "$BASE/v1/messages" "${H[@]}" \
  -d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:256,
    tools:[{name:"get_weather",description:"查询城市天气",
      input_schema:{type:"object",properties:{city:{type:"string"}},required:["city"]}}],
    tool_choice:{type:"auto"},
    messages:[{role:"user",content:"北京今天天气怎么样"}]}')" \
  | jq -r 'if .error then .error.message else (.content[]? | select(.type=="tool_use") | .id) end'

echo "== 4. 流式事件序列"
curl -sN "$BASE/v1/messages" "${H[@]}" \
  -d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:32,stream:true,messages:[{role:"user",content:"数到三"}]}')" \
  | grep '^event:' | uniq
```

項目3は `tool_choice: auto` を使用します。Sonnet 5.5 などの 5.x モデルはツールの強制指定（`{"type":"tool"}` または `{"type":"any"}`）に対応しておらず、400 `does not support forced tool_choice` を返します。

2026-10-15 に `claude-sonnet-5-5` で実測した出力は以下のとおりです（項目1は主要フィールドのみを残しています）：

```text
== 1. model 字段
{
  "id": "msg_011Cg3Esh8zeEdLeXAPVALKe",
  "model": "claude-sonnet-5-5",
  "usage": {
    "input_tokens": 518,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "output_tokens": 12,
    ...
  }
}
== 2. 缓存：同一请求发两次，看第二次的 cache_read_input_tokens
{"input_tokens":23,"cache_creation_input_tokens":17920,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":17920,"ephemeral_1h_input_tokens":0},"output_tokens":4,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}
{"input_tokens":23,"cache_creation_input_tokens":0,"cache_read_input_tokens":17920,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}
== 3. 工具调用 ID
toolu_01UPsdyKX8M9fJTTkDoSKHXA
== 4. 流式事件序列
event: message_start
event: content_block_start
event: ping
event: content_block_delta
event: content_block_stop
event: message_delta
event: message_stop
```

`ping` イベントの有無や出現位置は固定ではなく、判定には影響しません。

## thinking ブロック

thinking を有効にすると、返却される `thinking` ブロックに `signature` フィールドが付き、フォーマットチェックの1項目としても使用できます。5.x モデルの書き方は 4.x と異なり、2026-10-15 の実測結果は以下のとおりです：

| モデル | `thinking` パラメータ | 結果 |
|---|---|---|
| `claude-sonnet-4-6` | `{"type":"enabled","budget_tokens":1024}` | `thinking` ブロックが返り、思考テキストと `signature` が含まれる |
| `claude-sonnet-5` | `{"type":"enabled","budget_tokens":1024}` または `{"type":"adaptive"}` | どちらも使用可能 |
| `claude-sonnet-5-5` | `{"type":"adaptive"}` | 使用可能。`enabled` を渡すと 400 が返り、adaptive のみサポートと表示される |

5.x モデルの `thinking` ブロックはデフォルトで `signature` のみで、思考テキストは空文字列です。思考の要約を表示するには、`"display": "summarized"` を追加します：

```json
"thinking": {"type": "adaptive", "display": "summarized"}
```


サードパーティの検証サイトを使用する場合は、専用の API キーを新規作成し、測定後に削除することを推奨します。

## 不一致を発見した場合

support@1zheai.com にメールで、リクエスト時刻、モデル ID、完全な返却内容（API キーは削除）、および該当するチェック項目を添付してください。返却内容やエラーメッセージ内の request id は、当該呼び出しの特定に役立ちます。

## よくある質問

<AccordionGroup>
<Accordion title="モデルに「あなたは誰」と直接聞くのは信頼できますか？">

信頼できません。モデルの自己紹介はシステムプロンプトの影響を受け、特定のプロンプト下では自分のバージョンを誤答することがあります。返却されるフィールドとイベントフォーマットの照合の方が参考になります。

</Accordion>
<Accordion title="Opus を選択したのに、なぜ呼び出しログに Haiku が現れるのですか？">

Claude Code は一部のバックグラウンドタスクを Haiku モデルで処理するため、呼び出しログに対応する記録が表示されます。`ANTHROPIC_DEFAULT_HAIKU_MODEL` 環境変数でこの種のタスクに使用するモデルを指定できます。詳細は [Claude Code 接続](/ja/docs/quickstart-claude-code/) を参照してください。Claude Code を使用していないのにこの状況が発生した場合は、リクエスト時刻を support@1zheai.com までお知らせください。

</Accordion>
</AccordionGroup>
