Возможности

Логи запросов (Request Logs)

Раздел «Логи» в личном кабинете показывает историю обращений к API моделей: таблица запросов, график активности и панель детализации. Базовые метаданные (модель

Кому подходит

  • Участникам — свои запросы: отладка интеграций, ошибки и повторные попытки.
  • Владельцу и администратору — запросы всей организации.
  • Наблюдателю раздел не показывается.

Раздел «Логи» в кабинете

Пункт навигации «Логи» (в личном аккаунте — «Мои логи») находится в группе account. Участник видит запросы только своих ключей. Владелец и администратор видят запросы организации.

Что доступно без дополнительных настроек:

ЭлементОписание
Таблица generationsСписок запросов за выбранный период с фильтрами
Bar chartАктивность по часам или дням
ДетализацияПанель с метриками, повторными попытками и обзором запроса
CSV-выгрузкаЭкспорт отфильтрованного списка
Infinite scrollПодгрузка следующих страниц при прокрутке вниз

Данные появляются после каждого успешного или частично успешного запроса к API моделей.

Базовый список vs RAW I/O

УровеньЧто записываетсяСрок хранения RAWКак включить
БазовыйМодель, провайдер, токены, цены, время ответа, причина завершения, число повторных попыток—Всегда
RAW I/OПолный JSON запроса и ответа (после маскирования), хронология повторных попыток30 днейМодуль logging в Policy Rules

Без включённого I/O-логирования в детализации запроса отображается подсказка и ссылка на раздел Политики. Полный JSON не выгружается архивом — только просмотр по одному запросу через API.

Расширенное I/O-логирование (политики)

Модуль logging в policy rule:

{ "logging": { "enabled": true } }

Включение в кабинете — шаг «Логирование I/O» в мастере Policy Rules:

  • переключатель «Расширенное логирование (RAW запросы и ответы)»;
  • выбор области действия — как у бюджета и контента (organization, api_key, member, system, virtual_group);
  • подсказка: «+1% к комиссии на каждый запрос с включённым логированием. Данные хранятся 30 дней в защищённом хранилище.»

Объединение правил (приоритет более узкого scope)

В отличие от rateLimit (наиболее строгий) и access (пересечение), модуль logging работает по принципу «узкое правило важнее широкого» — как наследование с переопределением:

  1. Собираются подходящие правила по уровням назначения: api_key → system → member → virtual_group → organization → глобальные.
  2. От специфичного к общему: первое правило с модулем logging определяет итоговое значение.
  3. Если ни одно правило не содержит logging — RAW не пишется.

Примеры:

ПравилаРезультат для ключа key_debug
org: enabled=trueRAW для всех ключей
org: enabled=true, key_debug: enabled=falseRAW выключен для debug-ключа
org: enabled=false, key_prod: enabled=trueRAW только для prod-ключа

Комиссия +1%

На запросы, где на момент обработки было включено I/O-логирование (logging_applied=true), к тарифу клиента добавляется +1% (loggingBps = 100). Надбавка начисляется при расчёте стоимости независимо от того, сохранился ли RAW-файл: если запись не удалась, метаданные остаются, RAW может отсутствовать (has_raw_payload=false).

Хранение RAW

  • Срок хранения — 30 дней, после чего данные удаляются автоматически.
  • Просмотр — только через API платформы (GET .../payload), по одному запросу.

В RAW JSON фиксируется тело запроса после применения маскирования; отдельный блок redaction описывает применённые фильтры.

Видимость: personal / member / admin

Один и тот же API применяет разный scope в зависимости от роли в организации:

СценарийСписок и деталиRAW payloadКолонка «Участник»
Личный аккаунтСвои запросыСвои, если логирование включеноскрыта
Участник организации (не admin)Только свои (member_id)Только своискрыта
Администратор / владелецВся организацияВсе с сохранённым RAWвидна (email)

Фильтр memberId в query доступен только администратору. Участник не может просмотреть запросы коллег даже зная request_id.

Таблица: цены и токены

Состав цены

Цены подтягиваются из расчёта стоимости запроса:

Поле API / колонкаСмысл
priceWithoutVatRub / иконка ценыЦена без НДС — чистая цена провайдера
commissionRub / иконка процентаКомиссия (и доплата за логирование, если включена)
vatRub / значок НДСНДС 22%
clientRub / «Итого»Итоговая сумма с комиссией и НДС — списание с баланса

Пока расчёт стоимости в статусе pending, в UI отображается —.

Токены

ПолеОписание
inputTokensТокены ввода
outputTokensТокены вывода
cacheReadTokensТокены чтения кэша; — в таблице, если 0

На узких экранах три значения объединяются в ячейку «Токены» (19 ввод · 185 вывод · 4 096 кэш); на широких — отдельные колонки «Ввод», «Вывод», «Кэш».

Дополнительно в таблице: модель, провайдер, система, скорость (токен/с), причина завершения, ключ, индикатор полной записи.

Infinite scroll и CSV

Пагинация: первая загрузка limit=50, offset=0. При прокрутке к низу таблицы подгружается следующая страница, пока items.length < total. Смена периода или фильтров сбрасывает offset и прокручивает список наверх. Навигация prev/next в панели детализации работает по уже загруженным строкам; при необходимости догружается следующая страница.

CSV: кнопка «Скачать CSV» вызывает export с теми же фильтрами, что и таблица (from, to, model, apiKeyId, memberId, hasRaw). Лимит выгрузки — 50 000 строк; при превышении API возвращает 413 с подсказкой сузить период. Имя файла: generations-{orgSlug}-{from}-{to}.csv.

Колонки CSV зеркалируют таблицу UI, включая cache_read_tokens, price_without_vat_rub, commission_rub, vat_rub, client_cost_rub. Для admin включена member_email; для member/personal — опускается.

API (кратко)

Базовый путь: /api/organization/generations. Требуется членство в организации.

Метод и путьНазначение
GET .../generationsСписок + chartBuckets. Query: from, to (default 7 дней), limit/offset, model, apiKeyId, memberId (admin), hasRaw, chartBucket (hour / day)
GET .../generations/exportCSV за период и фильтры (без limit/offset, max 50k строк)
GET .../generations/{requestId}Метаданные одного запроса и сводка по повторным попыткам
GET .../generations/{requestId}/payloadRAW JSON запроса и ответа. 404 если I/O не включён; 410 Gone если истёк срок хранения (30 дней)

Ответ списка содержит items[] с полями usageEventId, requestId, finishedAt, modelId, providerId, токены, priceWithoutVatRub, commissionRub, vatRub, clientRub, settlementStatus, throughputTps, finishReason, apiKeyAlias, memberEmail (admin), streaming, latencyMs, fallbackCount, hasRawPayload, loggingApplied.

Что дальше