Использование и логи
Смотрите, сколько тратит каждый ключ Half Off Dev, читайте токены, задержку и ошибки по каждому запросу, находите вызовы по id запроса и сверяйте баланс.
Полцены имеют смысл, только если видно, куда уходят деньги. Half Off Dev записывает каждый запрос к модели, сделанный вашими ключами, обычно в течение нескольких секунд после его завершения, и даёт четыре места, где на это можно посмотреть.
| Страница | Для чего нужна |
|---|---|
| Обзор | Следить за расходами, долей успешных запросов и задержкой во времени, по группам каналов и по моделям |
| Логи | Разбирать каждый запрос: токены, списание, время, ошибки |
| API-ключи | Сравнивать расходы за всё время и последнее использование по ключам |
| Оплата | Проверять баланс, кредиты и ежедневные расходы |
Панель обзора#
Обзор суммирует трафик всех ваших ключей за последние 24 часа, 7, 30 или 90 дней.
| Показатель | О чём говорит |
|---|---|
| Spend | Сумма, списанная за период, и сколько запросов в неё вошло |
| Success rate | Доля успешных запросов и число неудачных |
| P95 TTFT | Время до первого токена по 95-му перцентилю и среднее значение |
| Throughput | Среднее число выходных токенов в секунду |
| Cache hit rate | Доля входных токенов, взятых из кеша промптов |
| Balance | Остаток и число активных ключей |
Под итогами находятся графики расходов и токенов, разбивки By channel group и By model, а также Error distribution, группирующее неудачные запросы по типу ошибки. Время до первого токена и пропускная способность считаются только по потоковым запросам.
Логи#
Логи показывают ваши запросы к моделям от новых к старым, по 50 на страницу; Load more загружает более ранние. Список можно сузить по группе каналов, модели, статусу (Succeeded или Failed) и, если у вас несколько ключей, по API-ключу.
| Столбец | Содержимое |
|---|---|
| Time | Начало запроса. Наведите курсор, чтобы увидеть точную метку времени. |
| Model | Id модели. Знак ⇢ отмечает потоковый запрос. |
| Group | Группа каналов, которая его обслужила |
| Status | HTTP-статус, который вы получили |
| In | Входные токены, включая записанные в кеш промптов |
| Cached | Входные токены, прочитанные из кеша промптов |
| Out | Выходные токены, включая токены рассуждений |
| TTFT | Время до первого токена для потоковых запросов |
| Tok/s | Выходных токенов в секунду |
| Charge | Сколько вы за него заплатили |
Щёлкните по строке, чтобы открыть подробности: Request id, использованный Key, API format (anthropic, openai или gemini), общую Latency, Cache write и Reasoning tokens, долю Cache hit, тип Error при сбое и Affinity. Внизу Ask support about this request создаёт обращение в поддержку с уже заполненным id.
Привязка (affinity)#
Affinity показывает, был ли запрос оставлен на том же канале, что и остальная часть его диалога; именно это позволяет кешу промптов снижать стоимость длинных чатов. Об экономии рассказывает раздел Кеширование промптов.
| Значение | Что означает |
|---|---|
new | Первый запрос диалога |
sticky | Последующий ход, оставшийся на канале своего диалога, поэтому кеш удалось использовать повторно |
explicit | Сгруппирован по id сессии, отправленному вашим клиентом |
none | Не с чем группировать |
Что попадает в логи#
- Каждый запрос, прошедший проверки ключа и баланса, независимо от успеха или неудачи. У неудачных видны статус и тип ошибки, а списание равно $0.
- Не логируются и никогда не тарифицируются запросы, отклонённые на входе: отсутствующий или недействительный ключ, тело не в формате JSON, неизвестная модель, модель, которую ключу нельзя использовать, нулевой баланс и ключ, превысивший лимит запросов. Ошибка сразу возвращается вашему коду.
Логи хранятся 90 дней.
Id запросов#
Каждый ответ модели содержит заголовок x-halfoff-request-id, например req_3f9c1a7e5b2d4c6e8a0b1d2f. Это тот же Request id, что виден в Логах. Он есть и у ошибок, в том числе у запросов, отклонённых до логирования (неверный ключ, нулевой баланс, неизвестная модель); поддержка может найти их по одному id.
Сохраняйте id рядом со своими записями и сообщайте его, когда обращаетесь в поддержку по конкретному вызову.
curl -sD - -o /dev/null https://halfoff.dev/v1/chat/completions \
-H "Authorization: Bearer $HALFOFF_API_KEY" \
-H "content-type: application/json" \
-d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Reply with one word: ready?"}]}' \
| grep -i '^x-halfoff'Заголовок x-halfoff-group в том же ответе указывает группу каналов, которая его обслужила.
Сверка списаний#
Баланс изменяют две вещи: кредиты его увеличивают, запросы уменьшают.
- Кредиты: пополнения, активированные коды и реферальные начисления, перечисленные в Credit history на странице Оплата.
- Запросы: каждый тарифицируемый запрос к модели, виден в Логах.
Чтобы проверить один ключ, сопоставьте его показатель Spent на странице API-ключи с его запросами в Логах, отфильтрованными по этому ключу.
Небольшие расхождения обычно объясняются одной из причин:
- Списания появляются с задержкой в несколько секунд. Списание записывается вскоре после завершения запроса, поэтому итог, прочитанный во время всплеска трафика, может немного отставать.
- За оборванный поток вы платите за уже сгенерированное. Если закрыть поток до финального события с usage, вывод тарифицируется по оценке текста, уже отправленного вам. См. Потоковая передача.
- Последнее слово за столбцом Charge. Это ровно та сумма, которая ушла с вашего баланса за этот запрос. Цены за токен указаны в списке моделей.
Связь с поддержкой#
Откройте Поддержку и нажмите New request. Если вопрос касается одного вызова, укажите его id запроса (req_…); из строки в Логах это делает за вас Ask support about this request. Ответы появляются на той же странице, а у пункта Support в боковой панели появляется значок. Ответьте, чтобы добавить подробности, или отметьте обращение как решённое.