---
title: "Проверка модели и использования"
description: "Что можно проверить в ответах, инструментах и журнале и чего эти проверки не доказывают."
---

<aside className="docs-publication" data-pagefind-ignore>Документацию поддерживает <a href="https://1zheai.com/ru/editorial/#publisher">1ZheAI</a>. <a href="https://1zheai.com/ru/editorial/">Источники, коммерческие интересы и исправления</a>. Об ошибке сообщите на <a href="mailto:support@1zheai.com">support@1zheai.com</a>, указав URL и проверяемое подтверждение, без ключей и данных входа.</aside>

Сверьте запрошенный model ID, возвращённые поля, поддерживаемые функции, использование и запись в журнале. Ответ на вопрос «какая ты модель?» не является надёжным доказательством происхождения.

## Минимальные проверки

Используйте короткий запрос, поток и необходимый инструментальный сценарий из примеров ниже. Проверьте завершение, `usage` и результат обработки инструмента. Для Sonnet 5.5 и других 5.x в указанном инструментальном примере применяется `tool_choice: auto`: принудительный выбор вроде `tool` или `any` может давать 400.

Отдельный успешный ответ не подтверждает все функции, весь диапазон контекста или постоянную доступность. Скорость, стиль текста, поля имени модели и биллинг по отдельности также не доказывают источник.

## При расхождении

Сохраните время, модель, протокол, идентификатор запроса и обезличенный ответ. Сопоставьте с [журналом](/ru/docs/usage-logs/) и [правилами оплаты](/ru/docs/pricing-explained/). Удалите ключ и приватные данные перед отправкой в поддержку.

## Примеры запросов и конфигурации

Используйте пример для выбранного протокола и версии клиента. Замените учебные ключи и идентификаторы моделей своими. Команды выполняются на вашем компьютере или сервере.

```bash
#!/usr/bin/env bash
# Использование:ONEZHE_API_KEY=sk-YOUR_API_KEY bash verify.sh [MODEL_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
```


```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
```


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