OpenAI
Admin API OpenAI отдаёт два вида отчётности на уровне всей организации: отчёты об использовании, по одному на каждую возможность API, и ежедневный отчёт о затратах с суммами в долларах США. Отчёты об использовании покрывают completions, embeddings, images, audio, moderations, vector stores и code interpreter sessions.
Renta синхронизирует и те и другие в хранилище данных в виде статистики по временным бакетам с разбивкой по проектам, пользователям, API-ключам и моделям.
Аутентификация
Renta аутентифицируется организационным ключом Admin API key. Создайте его на platform.openai.com в разделе Organization settings > Admin keys: ключ начинается с sk-admin. Обычные проектные API-ключи не подойдут: отчётные эндпоинты Admin API их отклоняют.
При сохранении подключения Renta проверяет ключ через Admin API OpenAI, поэтому недействительный или неадминистративный ключ вернёт ошибку сразу, а не на первом запуске пайплайна.
Подключение источника OpenAI
Выполните эти шаги, чтобы добавить OpenAI как источник в Renta с помощью Admin API key.
- Перейдите в раздел Connections > Catalog в левом меню.
- Откройте категорию AI и нажмите на карточку OpenAI.

Заполните форму подключения:
- Source name.
Укажите название источника данных. Оно используется только в интерфейсе Renta. - Admin API key.
Вставьте ваш Admin API key OpenAI (начинается сsk-admin).
Нажмите Save, чтобы завершить.

Новый источник появится в списке Sources со статусом Active. Теперь его можно использовать в пайплайнах.

С оздание пайплайна
После подключения источника создайте пайплайн, чтобы синхронизировать данные OpenAI с назначением.
Создание пайплайна OpenAI
Свяжите источник OpenAI с назначением и настройте пайплайн.
В левом меню нажмите New pipeline. На шаге Source выберите OpenAI в списке Already connected и нажмите Next step.

Выберите созданное ранее подключение OpenAI и нажмите Next step.

На шаге Destination выберите ваше назначение (например, Google BigQuery) и нажмите Next step.

Выберите подключение назначения, в которое нужно загружать данные, и нажмите Next step.

Настройка пайплайна
На последнем шаге выберите, какой отчёт OpenAI выгружать и как Renta будет его загружать.
Тип отчёта и гранулярность
Выберите отчёт и размер его временных бакетов.

-
Report Types Выберите один из девяти отчётов. Каждый пайплайн выгружает один отчёт в одну таблицу назначения.
Тип отчёта Данные Completions Usage Количество входных и выходных токенов completions, включая разбивку на кэшированные, текстовые, аудио- и графические токены, а также количество запросов. Embeddings Usage Количество входных токенов и запросов для эмбеддингов. Images Usage Количество сгенерированных изображений и запросов с разбивкой по размеру и источнику изображения. Audio Speeches Usage Символы, обработанные синтезом речи (text-to-speech), и количество запросов. Audio Transcriptions Usage Секунды распознанного аудио и количество запросов. Moderations Usage Количество входных токенов и запросов для модерации. Vector Stores Usage Объём хранилища векторных данных в байтах. Code Interpreter Sessions Usage Количество сессий code interpreter. Cost Report Ежедневные затраты в долларах США с разбивкой по проектам, пользователям, API-ключам и статьям расходов. -
Granularity Выберите размер временного бакета: Minute, Hour или Day. Каждая строка таблицы назначения соответствует одному бакету для одной комбинации значений измерений. Для
Cost Reportдоступен только вариант Day: эндпоинт затрат OpenAI поддерживает только дневные бакеты.
В сутках 1 440 минутных бакетов, поэтому гранулярность Minute на длинном диапазоне дат даёт большую таблицу и заметно более долгую первую загрузку. Для исторического анализа обычно достаточно Day.
Параметры
Выберите поля, которые попадут в таблицу назначения. Доступный набор зависит от типа отчёта: каждый отчёт сочетает колонки измерений, собственные метрики и поля временного бакета.

Отметьте поля в списке или нажмите Select All. Вкладка Selected показывает всё выбранное, а список Selected Parameters ниже позволяет убрать поле. В таблице назначения колонки называются API-именами, указанными под каждым полем: Project ID превращается в project_id.
| Тип отчёта | Измерения | Метрики |
|---|---|---|
| Completions Usage | Project ID, User ID, API Key ID, Model, Batch, Service Tier | Input Tokens (с вариантами cached, uncached, cache write, text, audio, image), Output Tokens (с вариантами text, audio, image), Model Requests |
| Embeddings Usage | Project ID, User ID, API Key ID, Model | Input Tokens, Model Requests |
| Images Usage | Project ID, User ID, API Key ID, Model, Size, Source | Images, Model Requests |
| Audio Speeches Usage | Project ID, User ID, API Key ID, Model | Characters, Model Requests |
| Audio Transcriptions Usage | Project ID, User ID, API Key ID, Model | Seconds, Model Requests |
| Moderations Usage | Project ID, User ID, API Key ID, Model | Input Tokens, Model Requests |
| Vector Stores Usage | Project ID | Usage Bytes |
| Code Interpreter Sessions Usage | Project ID, API Key ID | Sessions |
| Cost Report | Project ID, Project Name, Organization ID, Organization Name, User ID, User Email, API Key ID, Line Item | Amount Value, Amount Currency, Quantity |
В каждом отчёте есть также три временных поля: Bucket Starting At и Bucket Ending At (границы бакета в UTC) и Bucket Starting Date, дата с точностью до дня, по которой партиционируется таблица назначения. Поле Bucket Starting Date отмечено заранее, убрать его нельзя.
Колонки измерений могут быть null: API OpenAI не указывает привязку, когда использование нельзя отнести к конкретному проекту, пользователю или API-ключу. Итоговые значения в таких строках корректны.
Имя таблицы и диапазон дат
Назовите пайплайн и задайте исторический период загрузки.

- Integration name.
Название пайплайна. Используется только в интерфейсе Renta. - Table name.
Имя таблицы назначения. Можно оставить сгенерированное имя или указать своё.

- Date start.
Первая дата периода выгрузки. - Date end.
Последняя дата периода выгрузки. Оставьте значение Today, чтобы продолжать собирать новые данные при каждом запуске.
Период перезаписи
Период перезаписи определяет, сколько последних дней Renta перезагружает при каждом запуске.

При каждом запуске Renta заново запрашивает отчёт начиная с даты последнего успешного запуска минус период перезаписи. Затронутые дни удаляются из таблицы назначения и в ставляются заново, более старые данные не меняются. Значение по умолчанию: Last 1 day.
Расписание
Выберите, как часто запускается пайплайн.

| Тип расписания | Описание |
|---|---|
| Manual | Пайплайн запускается только вручную через интерфейс или по API. |
| Daily | Пайплайн запускается раз в день в указанное время обновления. |
| Interval | Пайплайн запускается через заданные интервалы времени. |
| Cron Expression | Пайплайн запускается по расписанию, заданному cron-выражением. |
Для расписания Daily укажите Update time (точное время запуска), затем нажмите Create pipeline.

Renta также поддерживает запуск по API и интеграцию с внешними оркестраторами: Apache Airflow, Dagster, Prefect. Подробности в документации по расписаниям.
Новый пайплайн появится в разделе Pipelines на вкладке ETL, где можно отслеживать запуски, прогресс и имя таблицы назначения.

Стратегия синхронизации
Все отчёты OpenAI представляют собой статистику по временным бакетам, поэтому у них одна стратегия синхронизации.
| Стратегия | Поддерживаемые типы отчётов | Описание |
|---|---|---|
| Инкрементальное обновление | Completions Usage, Embeddings Usage, Images Usage, Audio Speeches Usage, Audio Transcriptions Usage, Moderations Usage, Vector Stores Usage, Code Interpreter Sessions Usage, Cost Report | Каждая таблица назначения партиционируется по колонке bucket_starting_date. При каждом запуске Renta перезагружает окно от последнего успешного запуска минус период перезаписи до конца диапазона дат: эти дневные партиции удаляются и вставляются заново, более старые партиции не меняются. |
Изменение выбранных параметров обновляет схему таблицы, поэтому следующий запуск после изменения перезагружает весь диапазон дат.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.