GPT Filter - Обработка данных через OpenAI GPT
Описание
Заголовок раздела «Описание»Процессор GPT Filter (внутренне использует GPT Filter V2) — универсальный инструмент для обработки данных через модели OpenAI GPT. Позволяет анализировать, фильтровать, трансформировать и классифицировать данные из входных пакетов с помощью настраиваемых промптов.
Ключевые возможности:
- Структурированный вывод — определение JSON-схемы для получения строго типизированного ответа от GPT (через Zod ResponseFormat).
- Текстовый вывод — свободный текстовый ответ для задач анализа и генерации.
- Подстановка переменных — использование данных из цепочки процессоров прямо в промпте через синтаксис
{{processorName.field}}. - Правила фильтрации — автоматическая фильтрация результатов по числовым порогам или условиям на полях ответа GPT.
- Cost tracking — точный учет расходов с разбивкой по input/output токенам для каждой модели.
Процессор поддерживает все актуальные модели OpenAI: gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo и другие.
Сценарии использования
Заголовок раздела «Сценарии использования»- Фильтрация компаний — отбор компаний по критериям (ОКВЭД, регион, размер) с помощью промпта и структурированного вывода.
- Извлечение данных — парсинг неструктурированного текста (описания с сайтов, поисковые результаты) в структурированные поля.
- Классификация — присвоение категорий, тегов или рейтингов каждому входному пакету.
- Обогащение данных — генерация дополнительной информации на основе имеющихся данных (описание компании, рекомендации).
- Оценка качества — scoring данных по заданным критериям (релевантность, полнота, соответствие).
- Трансформация формата — преобразование данных из одной структуры в другую с помощью GPT.
Конфигурация
Заголовок раздела «Конфигурация»| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
model | string | Да | — | Модель OpenAI: gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo и др. |
prompt | string | Да | — | Промпт для GPT. Поддерживает переменные {{processorName.field}} для подстановки данных из цепочки. |
temperature | number | Нет | 0.7 | Температура генерации (0-2). Низкие значения (0-0.3) для точных задач, высокие (0.7-1.5) для креативных. |
maxPackets | number | Нет | 50 | Максимальное количество входных пакетов для обработки за один запуск. |
outputFormat | object | Нет | — | Настройки формата вывода (см. раздел ниже). |
filterRules | object | Нет | — | Правила фильтрации результатов (см. раздел ниже). |
debugMode | boolean | Нет | false | Подробное логирование промптов, ответов GPT и токенов. |
Формат вывода (outputFormat)
Заголовок раздела «Формат вывода (outputFormat)»| Поле | Тип | Описание |
|---|---|---|
type | string | "structured" — JSON по схеме, "text" — свободный текст. |
name | string | Имя схемы для структурированного вывода (используется в zodResponseFormat). |
schema | object | JSON Schema для structured output. Определяет поля, типы и обязательные свойства. |
Пример outputFormat для структурированного вывода:
{ "type": "structured", "name": "company_analysis", "schema": { "type": "object", "properties": { "relevant": { "type": "boolean", "description": "Компания соответствует критериям" }, "score": { "type": "number", "description": "Оценка релевантности 0-100" }, "reason": { "type": "string", "description": "Обоснование оценки" } }, "required": ["relevant", "score", "reason"] }}Правила фильтрации (filterRules)
Заголовок раздела «Правила фильтрации (filterRules)»| Поле | Тип | Описание |
|---|---|---|
mode | string | "include" — оставить подходящие, "exclude" — убрать подходящие. |
conditions | array | Массив условий фильтрации (см. ниже). |
scoreThreshold | number | Пороговое значение для числовых полей (упрощенный вариант). |
Каждое условие (conditions) содержит:
| Поле | Тип | Описание |
|---|---|---|
field | string | Поле в ответе GPT для проверки. |
operator | string | Оператор: equals, contains, gt, lt, regex. |
value | any | Значение для сравнения. |
Входные данные
Заголовок раздела «Входные данные»Процессор получает DataPackets от родительских процессоров. Данные из пакетов доступны в промпте через переменные {{processorName.field}}.
Поддерживается доступ к данным из всей цепочки процессоров (chainData), не только от прямого родителя. Например, если pipeline содержит yandex-search -> registry-search -> gpt-filter, в промпте GPT Filter доступны поля и из yandex-search, и из registry-search.
Типичные источники:
registry-search— данные из реестров для анализа и классификации.yandex-search— результаты веб-поиска для фильтрации и извлечения данных.site-crawl— содержимое веб-страниц для анализа.contact-search— контактные данные для верификации или обогащения.
Выходные данные
Заголовок раздела «Выходные данные»Формат выходного DataPacket зависит от настройки outputFormat:
Структурированный вывод (type: "structured")
Заголовок раздела «Структурированный вывод (type: "structured")»DataPacket содержит поля, определенные в schema. Структура полностью соответствует указанной JSON Schema.
Текстовый вывод (type: "text")
Заголовок раздела «Текстовый вывод (type: "text")»DataPacket содержит текстовый ответ GPT.
Метаданные пакета
Заголовок раздела «Метаданные пакета»Каждый выходной пакет содержит метаданные:
model: использованная модель GPTpromptTokens: количество входных токеновcompletionTokens: количество выходных токеновtotalTokens: общее количество токеновprocessedAt: ISO-дата обработки
Стоимость
Заголовок раздела «Стоимость»Стоимость определяется количеством использованных токенов OpenAI API. Тарификация зависит от выбранной модели:
| Модель | Input (за 1M токенов) | Output (за 1M токенов) |
|---|---|---|
| gpt-4o | Определяется bg_prices | Определяется bg_prices |
| gpt-4o-mini | Определяется bg_prices | Определяется bg_prices |
| gpt-4-turbo | Определяется bg_prices | Определяется bg_prices |
| gpt-3.5-turbo | Определяется bg_prices | Определяется bg_prices |
Точные цены загружаются из таблицы bg_prices при инициализации процессора. Процессор автоматически рассчитывает стоимость каждого вызова на основе количества input и output токенов.
При ошибках content policy или timeout создается error-пакет, токены за неуспешный вызов не списываются.
Примеры
Заголовок раздела «Примеры»Фильтрация компаний по релевантности
Заголовок раздела «Фильтрация компаний по релевантности»Промпт:
Проанализируй компанию и определи, подходит ли она для B2B-продаж IT-решений.
Данные компании:- Название: {{registry-search.shortName}}- ОКВЭД: {{registry-search.mainOkvedCode}} - {{registry-search.mainOkvedName}}- Регион: {{registry-search.regionCode}}- Количество сотрудников: {{registry-search.workersCount}}
Оцени релевантность от 0 до 100.outputFormat:
{ "type": "structured", "name": "relevance_check", "schema": { "type": "object", "properties": { "relevant": { "type": "boolean" }, "score": { "type": "number" }, "reason": { "type": "string" }, "segment": { "type": "string" } }, "required": ["relevant", "score", "reason", "segment"] }}Извлечение данных из текста
Заголовок раздела «Извлечение данных из текста»Промпт:
Из следующего текста веб-страницы извлеки контактную информацию:
{{site-crawl.content}}
Найди все телефоны, email-адреса и имена сотрудников.Классификация с фильтрацией
Заголовок раздела «Классификация с фильтрацией»Конфигурация:
model: gpt-4o-minitemperature: 0.2maxPackets: 100filterRules: mode: include scoreThreshold: 70Только пакеты с оценкой >= 70 будут переданы дальше по pipeline.
Связанные процессоры
Заголовок раздела «Связанные процессоры»| Процессор | Связь | Описание |
|---|---|---|
registry-search | Входной | Данные из реестров для анализа и классификации |
yandex-search | Входной | Результаты поиска для фильтрации и извлечения данных |
site-crawl | Входной | Содержимое веб-страниц для текстового анализа |
ai-search | Альтернатива | AI-поиск с встроенным анализом (без отдельного промпта) |
contact-search | Входной | Контактные данные для верификации через GPT |