Учет использования ИИ для каждого клиента — это операционная система, обеспечивающая справедливый биллинг для встроенных функций ИИ. Если в вашем продукте работает помощник службы поддержки, анализатор документов, генератор изображений или агент рабочих процессов, счет от модели не покажет, какой клиент вызвал какие расходы, какая функция создала спрос или следует ли кредитовать оспариваемую позицию.
Этот пробел быстро становится дорогостоящим. Панели управления провайдеров могут показывать использование по проектам, ключам API, пользователям, моделям, позициям или дням. Шлюзы могут сохранять метаданные, логи, количество токенов, статус и стоимость. Биллинговые системы могут получать события использования с идентификаторами клиентов, значениями, временными метками и ключами идемпотентности. Но ни одна из этих частей не станет доказательством для биллинга, пока ваше приложение не проставит правильный контекст клиента на каждом запросе к ИИ и не сверит всю цепочку до закрытия счета.
Flatkey важен в этом рабочем процессе, потому что публичный сайт позиционирует flatkey.ai как единый ключ API для моделей GPT, Claude, Gemini, DeepSeek, а также моделей для работы с изображениями, аудио и видео, с ценообразованием, аналитикой использования, контролем затрат и единым счетом от всех провайдеров. Рассматривайте это как единую поверхность для доступа и анализа. Не считайте это заменой вашему собственному контракту по атрибуции клиентов. Перед запуском биллинга в продакшн проверьте точные поля на панели управления, логи запросов, поведение экспорта, каталог моделей, единицы ценообразования и настройки хранения в вашем текущем аккаунте Flatkey.
Учет использования ИИ для каждого клиента: краткая версия
Учет использования ИИ для каждого клиента должен отвечать на четыре вопроса для каждой встроенной функции ИИ:
| Вопрос | Поле для доказательства | Почему это важно |
|---|---|---|
| Какой клиент инициировал запрос? | customer_meter_id или хешированный ID арендатора | Поддерживает биллинг, кредиты и лимиты на уровне клиента |
| Какая функция создала использование? | feature_id, маршрут, рабочий процесс или SKU | Разделяет чат, поиск, резюме, агентов и фоновые задачи |
| Что потребил вызов ИИ? | модель, входные токены, выходные токены, количество запросов, токены кеша, медиа-единицы | Преобразует использование в единицы провайдера и счета |
| Сможет ли финансовый отдел обосновать списание? | ID запроса, временная метка, биллинговый период, версия ценообразования, ID события учета, статус сверки | Поддерживает аудиторские следы и рассмотрение споров |
Полезный паттерн — это не «логировать всё». Паттерн — это безопасная для конфиденциальности атрибуция клиентов, надежные доказательства запросов и контролируемые свертки в события для биллингового учета. Именно так учет использования ИИ для каждого клиента превращает встроенный ИИ из сюрприза с валовой прибылью в поддающуюся анализу продуктовую линейку.
Почему учета на уровне команды недостаточно
Отслеживание использования на уровне команды помогает инженерам управлять расходами, но оно слишком грубое для биллинга встроенных функций ИИ. Один производственный ключ API может смешивать трафик от бесплатных пробных версий, платных клиентов, внутренних сотрудников, демо-аккаунтов, повторных попыток, фоновой индексации и тестовых данных. Если вы группируете только по команде или среде, обсуждение счета превращается в гадание.
Атрибуция на уровне клиента становится необходимой, когда:
- Вы включаете кредиты на ИИ в платные тарифы.
- Вы взимаете плату за превышение лимита использования премиальных функций ИИ.
- Отдел продаж обещает клиентам специфические кредиты или ограничения.
- Отдел закупок спрашивает, как использование ИИ отображается в счетах.
- Клиент оспаривает списание или утверждает, что функция не использовалась.
- Службе поддержки нужно объяснить, почему один арендатор превысил квоту.
- Финансовому отделу нужна валовая прибыль по аккаунтам, сегментам или функциям.
Учет использования ИИ для каждого клиента не требует отправки персональных данных провайдеру ИИ. На самом деле, этого следует избегать. Ключ клиента, который вы измеряете, обычно должен быть внутренним, безопасным для биллинга идентификатором, таким как cust_meter_8f2a9c, а не адресом электронной почты, названием компании, промптом или именем конечного пользователя.
Сначала создайте контракт по учету для клиентов
Контракт по учету — это небольшой набор полей, которые должен содержать каждый запрос к ИИ, прежде чем он достигнет шлюза или провайдера. Сделайте его стабильным, предсказуемым и проверяемым.
| Поле | Пример | Правило |
|---|---|---|
| customer_meter_id | cust_8f2a9c | Внутренний ID клиента или арендатора, по возможности псевдонимный |
| billing_account_id | acct_2041 | Аккаунт, которому выставляется счет, не обязательно конечный пользователь |
| feature_id | support_summary | Функция продукта или тарифицируемая позиция (SKU) |
| environment | prod | Отделяет производственный трафик от тестового и промежуточного |
| request_id | req_01HX... | Уникальный ID запроса приложения для повторного воспроизведения и поддержки |
| idempotency_key | meter_01HX... | Уникальный ключ события учета, чтобы повторные попытки не приводили к двойному списанию |
| model_requested | gpt-4o-mini или псевдоним шлюза | Что запросило приложение |
| model_served | фактическая модель после маршрутизации | Какая модель фактически выполнилась, если доступно |
| unit_basis | tokens, requests, seconds, images | Единица, которая будет свернута в биллинг |
| pricing_version | ai-plan-2026-07 | Версия, используемая для расчета, видимого клиенту |
| privacy_mode | metadata_only | Сохраняются ли полезные данные промпта/вывода |
Этот контракт должен быть создан совместно командами продукта и финансов. Инженеры отвечают за качество сбора данных; финансовый отдел — за интерпретацию для биллинга; служба поддержки — за объяснения, которые услышат клиенты.
Проставляйте метаданные до того, как вызов ИИ покинет ваше приложение
Самое безопасное место для добавления контекста клиента — это граница сервиса, который уже знает аутентифицированного арендатора и функцию. Не просите фронтенд-клиентов отправлять идентификаторы клиентов в качестве доверенных данных для биллинга. Бэкенд должен извлекать идентификатор для учета клиента из сессии, арендатора, прав доступа или владельца задачи.
type AiMeteringContext = {
customerMeterId: string;
billingAccountId: string;
featureId: "support_summary" | "contract_review" | "agent_run";
environment: "prod" | "staging" | "dev";
requestId: string;
pricingVersion: string;
};
function buildAiMetadata(ctx: AiMeteringContext) {
return {
customer_meter_id: ctx.customerMeterId,
billing_account_id: ctx.billingAccountId,
feature_id: ctx.featureId,
environment: ctx.environment,
app_request_id: ctx.requestId,
pricing_version: ctx.pricingVersion,
};
}
Точный способ передачи зависит от вашего шлюза и SDK. Например, Cloudflare AI Gateway документирует пользовательские метаданные для тегирования запросов и указывает, что значения метаданных появляются в логах для поиска и фильтрации. Его документация по логированию также описывает логирование только метаданных при использовании cf-aig-collect-log-payload: false, что позволяет сохранять количество токенов, модель, провайдера, код состояния, стоимость и продолжительность, пропуская при этом необработанные полезные данные запроса и ответа. Vercel AI Gateway документирует поля user и tag для отчетности, а также заголовки, такие как ai-reporting-user и ai-reporting-tags, для отметки использования без переписывания каждого места вызова.
Эти примеры являются паттернами провайдеров и шлюзов, а не заявлениями о функциях Flatkey. Если вы используете Flatkey, проверьте текущий поддерживаемый путь метаданных и логи в вашем аккаунте, прежде чем полагаться на какое-либо поле для биллинга.
Сохраняйте параметры использования и стоимости от провайдера
Ваш внутренний клиентский журнал не должен слишком рано сводить детали от провайдера. API использования провайдеров часто предоставляют параметры, которые помогают объяснить изменения стоимости в дальнейшем.
Эндпоинт использования организации OpenAI поддерживает группировку использования completions по таким полям, как project, user, API key, model, batch и service tier, и возвращает такие поля использования, как input tokens, output tokens, cached tokens, audio tokens, request count, model, project ID, user ID и API key ID. Эндпоинт затрат организации OpenAI поддерживает группировку затрат по project, line item и API key и возвращает поля amount, currency, line item, project ID, API key ID и quantity.
Это не означает, что ваш клиентский журнал должен использовать идентификаторы пользователей OpenAI в качестве идентификаторов клиентов. Это означает, что ваш уровень учета использования ИИ для каждого клиента должен сохранять достаточно контекста на уровне запроса, чтобы связывать:
- Идентификатор клиента приложения с идентификатором запроса шлюза.
- Идентификатор запроса шлюза с идентификатором запроса или генерации у провайдера.
- Единицы использования провайдера с единицами, выставляемыми клиенту.
- Статью расходов провайдера с категорией использования клиента.
- События повторных попыток/откатов с окончательным решением о выставлении счета.
Если отчет провайдера позже покажет всплеск затрат по модели или API-ключу, вам необходимо будет отследить его до клиента, функции и периода выставления счета, не раскрывая содержимое промпта.
Используйте журнал учета использования для клиентов
Журнал учета использования для клиентов — это таблица для проверки, находящаяся между необработанными логами ИИ и счетами клиентов. Он должен быть только для добавления (append-only) или версионируемым, поскольку споры по счетам часто касаются того, что было известно на момент закрытия, а не того, что показывает текущая панель управления после обратного заполнения данных.
| Столбец | Пример | Назначение |
|---|---|---|
| occurred_at | 2026-07-10T11:03:22Z | Время исходного запроса |
| billing_period | 2026-07 | Группировка для счета |
| customer_meter_id | cust_8f2a9c | Атрибуция клиента |
| feature_id | support_summary | Атрибуция функции |
| environment | prod | Исключение нетарифицируемого трафика |
| app_request_id | req_01HX... | Трассировка для поддержки |
| gateway_request_id | gw_91b... | Трассировка шлюза |
| provider_request_id | gen_72c... | Трассировка провайдера, если доступна |
| model_served | model-alias | Фактически использованная модель |
| input_tokens | 841 | Единица использования |
| output_tokens | 226 | Единица использования |
| requests | 1 | Единица использования |
| raw_provider_cost | 0.0042 | Основа для расчета внутренней стоимости |
| billable_units | 1,067 tokens | Единица, видимая клиенту |
| pricing_version | ai-plan-2026-07 | Интерпретация ценообразования |
| meter_event_id | meter_01HX... | Передача в биллинговую систему |
| reconciliation_state | matched | Качество доказательной базы |
Этот журнал является ценным активом для учета использования ИИ для каждого клиента. Необработанные логи слишком детализированы для финансового отдела. Счета-фактуры появляются слишком поздно для инженерного отдела. Журнал — это общий слой доказательной базы.
Преобразуйте строки журнала в события для биллинга
Если вы используете Stripe или другую систему биллинга на основе использования, не отправляйте каждый необработанный запрос ИИ вслепую. Сначала решите, что считается тарифицируемым использованием.
API для событий счетчика Stripe требует event_name и полезную нагрузку (payload). Полезная нагрузка должна содержать поля, которые соответствуют настройкам сопоставления клиентов и значений счетчика; в документации приводятся примеры с использованием payload[value] и payload[stripe_customer_id]. Stripe также поддерживает identifier для уникальности и timestamp, измеряемый в секундах Unix, с границами временных меток, определенными в API.
Это четко соотносится с журналом:
{
"event_name": "embedded_ai_tokens",
"identifier": "meter_01HX7VJ8AQB8",
"timestamp": 1783681402,
"payload": {
"stripe_customer_id": "cus_123",
"value": 1067,
"feature_id": "support_summary",
"pricing_version": "ai-plan-2026-07"
}
}
Событие биллинга должно быть идемпотентным. Если ваш воркер повторяет попытку после тайм-аута, один и тот же запрос к ИИ не должен создавать два оплачиваемых события. Сохраняйте идентификатор события учета в реестре клиента и храните ответ API биллинга, даже если ответ гласит "уже обработано".
Определите, что не подлежит оплате
Учет использования ИИ для каждого клиента в равной степени касается как исключений, так и начислений. Ваш реестр должен классифицировать трафик до того, как он попадет в систему биллинга:
| Тип трафика | Решение по биллингу по умолчанию | Данные для хранения | |---|---|---| | Действие производственного клиента | Оплачивается, если тарифный план допускает учет использования ИИ | ID клиента, функция, ID запроса, единицы использования | | Внутреннее действие поддержки от имени клиента | Обычно не оплачивается или классифицируется отдельно | ID сотрудника, ID тикета, ID клиента, причина | | Повторная попытка после ошибки провайдера | Оплачивается только успешный логический запрос | ID исходного запроса, количество повторов, окончательный статус | | Переключение с одной модели на другую | Оплата в соответствии с политикой, а не за обе модели без разбора | Запрошенная модель, предоставленная модель, решение о маршрутизации | | Трафик со сред staging/dev/test | Не оплачивается | Среда, владелец, тестовая метка | | Злоупотребление или автоматический цикл | Часто кредитуется или ограничивается | Событие ограничения скорости, причина обнаружения, уведомление клиента | | Заполнение данных или миграция | Обычно не оплачивается | ID задания, оператор, подтверждение |
Опубликуйте эти правила внутри компании, прежде чем клиенты начнут задавать вопросы. Задокументированная политика не позволит службам поддержки, финансов и инженерии делать специальные исключения для каждого спора.
По возможности не включайте содержимое промптов в доказательную базу для биллинга
Доказательная база для биллинга редко требует необработанных промптов или сгенерированных ответов. Большинство споров можно разрешить с помощью временной метки, функции, клиента, модели, количества токенов, статуса запроса и меток событий, видимых клиенту.
Политика учета использования ИИ для каждого клиента, обеспечивающая конфиденциальность, должна разделять:
- Метаданные учета: ID счетчика клиента, функция, среда, ID запроса, модель, токены, стоимость, временная метка.
- Операционные данные: промпты, извлеченные документы, сгенерированный текст, вложения, входные данные инструментов.
- Примечания поддержки: ID тикета, ID проверяющего, причина кредитования, объяснение для клиента.
Храните первую категорию дольше, чем вторую. Более строго ограничивайте доступ ко второй категории. Шаблон логирования только метаданных от Cloudflare здесь полезен, поскольку он демонстрирует распространенное операционное разделение: сохранять метрики использования и метаданные запроса, не сохраняя тела запроса и ответа для этого запроса. Если ваш шлюз или поставщик предлагает аналогичный контроль, протестируйте его, прежде чем отправлять регулируемый клиентский трафик.
Сверка перед закрытием счета-фактуры
Задание по сверке — это этап, на котором учет использования ИИ для каждого клиента становится доказательной базой для биллинга. Запускайте его до окончательного формирования счетов-фактур, а не после первой жалобы.
Используйте этот ежедневный или ежечасный рабочий процесс:
- Извлеките необработанные события ИИ приложения за отчетный период.
- Извлеките логи или экспорты шлюза за тот же период.
- Извлеките сводки по использованию и затратам от провайдера по модели, ключу API, проекту или статье расходов.
- Извлеките подтверждения событий счетчика биллинга.
- Соедините данные по ID запросов, временным меткам, ID счетчиков клиентов и псевдонимам моделей.
- Пометьте каждую строку реестра как
matched(соответствует),missing_gateway_log(отсутствует лог шлюза),missing_provider_usage(отсутствуют данные об использовании от провайдера),meter_not_sent(счетчик не отправлен),meter_duplicate(дубликат счетчика),nonbillable(не подлежит оплате) илиneeds_review(требует проверки). - Блокируйте окончательное формирование счета-фактуры для неразрешенных строк с высокой стоимостью.
- Экспортируйте сводку на уровне клиента для служб поддержки и финансов.
Самый важный отчет — это не общие расходы. Это очередь исключений. Небольшое количество несопоставленных строк может создать самую большую проблему с доверием клиентов.
Сформируйте пакет документов для спора
Когда клиент спрашивает: "Почему с меня списали плату за использование ИИ?", служба поддержки не должна открывать пять панелей мониторинга и импровизировать. Подготовьте формат пакета документов для спора:
| Раздел | Включить | Избегать | |---|---|---| | Сводка | отчетный период, функция, единицы использования, тарифный план клиента, общая сумма | Текст промпта или ответа, если это не является абсолютно необходимым | | Доказательства | ID запросов, временные метки, класс модели, количество токенов/запросов, ID событий счетчика | Внутренние секреты провайдера или необработанные ключи API | | Политика | правило тарификации, политика повторных попыток/переключения, политика включенного кредита | Несогласованные разовые объяснения | | Решение | принято, кредитовано, исправлено или эскалировано | Перекладывание вины между поставщиками | | Последующие действия | изменение лимита, исправление ошибки, уведомление клиента | Незадокументированные ручные правки |
Это особенно важно для встроенных функций ИИ, поскольку пользователь, который воспользовался функцией, может не быть тем покупателем, который просматривает счет-фактуру. Пакет документов должен объяснять начисление на языке продукта, а не только на языке API.
Контрольный список для внедрения
Используйте этот контрольный список перед запуском биллинга за использование ИИ для клиентов:
- Каждый запрос к ИИ получает сгенерированный на бэкенде
customer_meter_id. - Непроизводственный трафик помечается до того, как он достигает шлюза.
- Приложение создает стабильный
app_request_idдля каждого логического действия ИИ. - Повторные попытки используют общий родительский ID запроса и по умолчанию не учитываются дважды.
- События переключения записывают запрошенную модель, предоставленную модель и политику биллинга.
- Лог шлюза или провайдера можно сопоставить с запросом приложения.
- Экспорты данных об использовании и затратах от провайдера сохраняются на полезных уровнях группировки.
- Реестр использования клиента хранит как оплачиваемые, так и неоплачиваемые строки.
- События счетчика биллинга используют идемпотентные идентификаторы.
- Финансовый отдел может просматривать сводки по клиентам, функциям, моделям и периодам.
- У службы поддержки есть шаблон пакета документов для спора.
- Хранение промптов и ответов минимизировано и отделено от метаданных учета.
- Клиенты могут видеть достаточно деталей об использовании, чтобы понять свой счет.
Какое место здесь занимает Flatkey
Flatkey актуален, когда операционная проблема заключается в доступе к моделям и разрастании счетов. Текущий публичный сайт Flatkey делает акцент на одном ключе для моделей GPT, Claude, Gemini, DeepSeek, а также моделей для изображений, аудио и видео, шлюзе, совместимом с OpenAI, аналитике использования и контроле затрат, журналах запросов и едином счете от всех провайдеров. Это практическая основа для команд, которые хотят иметь меньше учетных записей у провайдеров и более простую поверхность для обзора.
Для учета использования ИИ для каждого клиента используйте Flatkey как единый маршрут, где ваш производственный трафик ИИ можно просматривать, оценивать и управлять им. Храните доказательства биллинга на уровне клиента в собственном реестре приложения, если только ваша текущая учетная запись Flatkey явно не поддерживает точное поле, экспорт, хранение и рабочий процесс биллинга, которые вам необходимы. Затем сверяйте записи об использовании Flatkey с отчетами провайдеров и вашим счетчиком биллинга перед отправкой счетов.
Если вы разрабатываете коммерческую модель, используйте это руководство вместе со статьями Атрибуция затрат на AI API по командам, стоимость одного запроса к AI API и сверка счетов за AI API. Когда вам понадобятся актуальные цены на модели и детали планов, используйте страницу с ценами Flatkey.
Часто задаваемые вопросы
Является ли учет использования ИИ для каждого клиента тем же самым, что и логирование использования API?
Нет. Логирование использования API записывает то, что произошло с технической точки зрения. Учет использования ИИ для каждого клиента связывает эту активность с клиентом, функцией, расчетным периодом, версией ценообразования и решением по счету.
Следует ли отправлять идентификаторы клиентов провайдерам моделей?
Обычно нет. Используйте безопасный с точки зрения конфиденциальности внутренний идентификатор счетчика или метаданные шлюза, если это поддерживается. Избегайте отправки электронных писем, названий компаний, промптов или личных данных конечных пользователей в качестве идентификаторов для биллинга, если только ваша юридическая проверка и проверка на соответствие политике конфиденциальности явно не одобрят это.
В каких единицах следует выставлять счета за встроенные функции ИИ?
Лучшая единица измерения зависит от продукта. Токены точны для текста, запросы легче для понимания клиентами, секунды подходят для видео или аудио, а кредиты могут нормализовать несколько модальностей. Какую бы единицу вы ни выбрали, храните исходные единицы провайдера в реестре, чтобы финансовый отдел мог сверять маржу.
Как следует выставлять счета за повторные попытки и резервные варианты?
Выставляйте счет за логическое действие клиента, а не за каждую внутреннюю попытку, если в ваших условиях обслуживания не указано иное. Сохраняйте доказательства повторных попыток и использования резервных вариантов, чтобы инженеры могли отлаживать скачки затрат, не выставляя двойные счета клиентам.
Что представляет собой минимально жизнеспособный пакет доказательств?
Практический пакет включает идентификатор счетчика клиента, функцию, временную метку, идентификатор запроса, модель или класс модели, единицы использования, расчетный период, версию ценообразования, идентификатор события счетчика, статус сверки и решение службы поддержки. Это минимум, который делает учет использования ИИ для каждого клиента обоснованным.
Учет использования ИИ для каждого клиента должен сделать биллинг скучным. Когда идентификаторы клиентов, единицы использования, записи шлюза, затраты провайдера и события биллинга сверяются до закрытия счета, встроенные функции ИИ становится легче оценивать, объяснять и масштабировать. Используйте Flatkey для упрощения уровня доступа к моделям и биллинга от провайдеров, а затем ведите клиентский реестр, которому могут доверять финансовый отдел и служба поддержки. Посмотреть цены.



