Фильтрация входных данных
Зачем нужна фильтрация
Заголовок раздела «Зачем нужна фильтрация»Фильтрация позволяет процессору обрабатывать только те входные DataPackets, которые соответствуют заданным условиям. Это экономит токены и время: вместо обработки всех входных данных процессор работает только с нужными записями.
Например, если предыдущий процессор нашёл 500 компаний, а вам нужны только те, у которых указан ИНН и выручка больше миллиона рублей, вы задаёте условие фильтрации — и процессор обработает только подходящие записи.
Где настраивается фильтр
Заголовок раздела «Где настраивается фильтр»Фильтр настраивается в параметрах процессора. Откройте настройки процессора и найдите поле “Условия фильтрации входных данных” (Filter Conditions). В это поле вводится выражение фильтра.
Базовый синтаксис
Заголовок раздела «Базовый синтаксис»Условие фильтра записывается в формате, похожем на SQL:
{{поле}} оператор "значение"Имя поля заключается в двойные фигурные скобки {{}}, а строковые значения — в двойные кавычки.
Примеры простых условий
Заголовок раздела «Примеры простых условий»{{inn}} IS NOT NULL{{status}} == "active"{{companyName}} != "Тест"Операторы сравнения
Заголовок раздела «Операторы сравнения»Доступны следующие операторы:
| Оператор | Описание | Пример |
|---|---|---|
== | Равно | {{status}} == "active" |
!= | Не равно | {{type}} != "individual" |
IS NULL | Значение отсутствует | {{email}} IS NULL |
IS NOT NULL | Значение присутствует | {{inn}} IS NOT NULL |
Операторы IS NULL и IS NOT NULL не требуют значения для сравнения.
Логические операторы
Заголовок раздела «Логические операторы»Несколько условий можно объединить с помощью логических операторов AND и OR:
- AND — оба условия должны быть истинны.
- OR — хотя бы одно из условий должно быть истинно.
Примеры составных условий
Заголовок раздела «Примеры составных условий»Компании с заполненным ИНН и активным статусом:
{{inn}} IS NOT NULL AND {{status}} == "active"Компании с email или телефоном:
{{email}} IS NOT NULL OR {{phone}} IS NOT NULLКомпании из Москвы с выручкой:
{{city}} == "Москва" AND {{revenue}} IS NOT NULLФильтрация по данным родительских процессоров
Заголовок раздела «Фильтрация по данным родительских процессоров»Условия фильтрации могут обращаться к данным не только текущего процессора-источника, но и любого процессора выше по цепочке. Для этого используйте синтаксис с именем процессора:
{{имяПроцессора.поле}} оператор "значение"Примеры фильтрации по цепочке данных
Заголовок раздела «Примеры фильтрации по цепочке данных»Фильтровать по полю из процессора “search”:
{{search.region}} == "Москва" AND {{inn}} IS NOT NULLКомбинация условий из разных уровней цепочки:
{{hhSearch.name}} IS NOT NULL AND {{enrichment.hasFinanceData}} == "true"Как работает фильтрация
Заголовок раздела «Как работает фильтрация»При запуске процессора система выполняет следующие шаги:
- Получает все необработанные входные пакеты от подключённых процессоров-источников.
- Для каждого пакета строит полный набор данных цепочки (chain data), включая данные от всех предков.
- Проверяет каждый пакет на соответствие заданным условиям.
- Пакеты, прошедшие фильтр, передаются на обработку.
- Пакеты, не прошедшие фильтр, получают статус
filteredи исключаются из обработки.
Рекомендации по использованию
Заголовок раздела «Рекомендации по использованию»Фильтруйте как можно раньше
Заголовок раздела «Фильтруйте как можно раньше»Чем раньше в цепочке вы отсеиваете нерелевантные данные, тем меньше токенов тратится на обработку. Если вам нужны только компании с ИНН, добавьте фильтр {{inn}} IS NOT NULL на первом обогащающем процессоре, а не на последнем.
Проверяйте наличие данных
Заголовок раздела «Проверяйте наличие данных»Перед сравнением значения убедитесь, что поле не пустое. Комбинация IS NOT NULL AND == "значение" гарантирует, что пакет с отсутствующим полем не вызовет ошибки.
Тестируйте фильтры на небольших выборках
Заголовок раздела «Тестируйте фильтры на небольших выборках»При первой настройке фильтра ограничьте количество обрабатываемых пакетов (параметр maxPackets) и проверьте, что фильтр работает корректно, прежде чем запускать обработку всего объёма данных.
Валидация фильтра
Заголовок раздела «Валидация фильтра»Система автоматически проверяет синтаксис фильтра при сохранении настроек процессора. Если фильтр содержит ошибки — несбалансированные скобки, некорректные операторы или отсутствующие выражения — будет показано сообщение об ошибке с указанием проблемы.
Следующие шаги
Заголовок раздела «Следующие шаги»- Переменные шаблонов — как ссылаться на данные из других процессоров
- Связывание процессоров — как данные передаются по цепочке
- Система DataPackets — подробнее о пакетах данных и их статусах