halfoff.devДокументация
Получить ключ
Аккаунт

Использование и логи

Смотрите, сколько тратит каждый ключ 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Начало запроса. Наведите курсор, чтобы увидеть точную метку времени.
ModelId модели. Знак ⇢ отмечает потоковый запрос.
GroupГруппа каналов, которая его обслужила
StatusHTTP-статус, который вы получили
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 в боковой панели появляется значок. Ответьте, чтобы добавить подробности, или отметьте обращение как решённое.