Расширения-хуки — функция Enterprise Edition,
доступная только в одноарендных (single-tenant) развёртываниях.
Обзор
Расширения-хуки позволяют внедрять собственную логику в конвейер Yahont на определённых этапах — без изменения исходного кода Yahont. Вы предоставляете HTTP-эндпоинт; Yahont вызывает его в нужный момент, отправляет JSON-данные и использует ваш ответ, чтобы повлиять на дальнейший ход событий.Основные понятия
Точки хуков
Точка хука — это определённый этап конвейера Yahont, в который можно внедрить собственную логику. Каждая точка хука определяет:- Когда она срабатывает в конвейере
- Какие данные она отправляет на ваш эндпоинт
- Какой ответ она ожидает
- Тайм-аут и стратегию отказа по умолчанию
Хуки
Хук связывает точку хука с вашим HTTPS-эндпоинтом. Когда точка хука срабатывает, Yahont отправляет POST-запрос на ваш эндпоинт и использует ваш ответ, чтобы продолжить, изменить или прервать конвейер. Для одной точки хука одновременно разрешён только один хук.Как это работает
1
Yahont доходит до точки хука в конвейере
Конвейер срабатывает на определённом этапе.
2
Yahont отправляет POST на ваш эндпоинт
Если для этой точки настроен активный хук, Yahont отправляет JSON-данные на URL вашего эндпоинта.
3
Ваш эндпоинт отвечает
Ваш эндпоинт обрабатывает данные и возвращает ответ в формате JSON.
4
Yahont продолжает работу
Yahont использует ваш ответ, чтобы продолжить, изменить или прервать конвейер.
Добавление хука
1
Откройте «Расширения-хуки»
Откройте панель администратора и выберите Расширения-хуки.
2
Подключите точку хука
Найдите нужную точку хука и нажмите Подключить.
3
Заполните данные хука
Заполните форму:

4
Подключите
Нажмите Подключить. Перед сохранением Yahont проверяет ваш эндпоинт тестовым запросом.
В случае успеха хук появится в списке подключённых.
Управление хуком
После подключения вы можете:- Включить / отключить — переключить, выполняется ли хук
- Изменить — обновить название, URL эндпоинта, API-ключ, тайм-аут или стратегию отказа
- Удалить — полностью удалить хук
- Просмотреть журналы — изучить последние сбои выполнения для отладки
Состояние хука
Yahont отслеживает ваш эндпоинт после регистрации и подключения хука и отображает его текущее состояние.



Приём документов
Точка хука «Приём документов» позволяет перехватывать каждый документ до его попадания в конвейер индексации Yahont. Ваш эндпоинт получает полностью сформированный документ и может отфильтровать его, переписать содержимое или пропустить без изменений. Она срабатывает сразу после внутренней проверки Yahont и до начала конвейера индексации — частичных записей ещё не произошло.Входная схема
Yahont отправляетPOST-запрос на ваш эндпоинт по одному разу для каждого документа со следующим телом JSON:
Все входные поля передаются только для контекста.
Ваш эндпоинт может влиять на конвейер только через выходную схему — а именно поле
sections.Ключи метаданных по коннекторам
Набор ключей вmetadata зависит от источника коннектора. Ниже несколько примеров:
Пример
Выходная схема
Успешный ответ вашего эндпоинта должен возвращать HTTP200 и тело JSON:
Пример: пропустить без изменений
Пример: пропустить без изменений
Пример: переписать содержимое (удаление персональных данных)
Пример: переписать содержимое (удаление персональных данных)
Пример: отбросить документ
Пример: отбросить документ
Аутентификация
Если при регистрации хука вы настроили API-ключ, Yahont включает его в каждый запрос:Пример для Lambda
В качестве эндпоинта хука можно использовать функцию AWS Lambda, открыв её по HTTPS через Lambda Function URL. Это самый простой способ развернуть хук без управления сервером. Когда Yahont вызывает ваш эндпоинт, запрос приходит в виде события в стиле API Gateway. Ваш обработчик читает тело JSON изevent["body"],
обрабатывает документ и возвращает ответ с statusCode и закодированным в JSON body.
Если вы настроили для хука API-ключ, проверьте его по заголовку Authorization в событии,
прежде чем выполнять обработку.
Пример Lambda (Python)
Пример Lambda (Python)
Тестирование
Используйтеcurl, чтобы проверить Lambda Function URL до подключения его к Yahont.
Пропуск без изменений (источник не файловый):



Отправка документов
Точка хука «Отправка документов» срабатывает после успешной индексации каждого документа. Используйте её, чтобы отправлять проиндексированное содержимое во внешнее хранилище, например в вики, хранилище данных или журнал аудита. В отличие от «Приёма документов» (который работает до индексации и может изменять или отбрасывать документы), этот хук срабатывает после записи документа в индекс. Тело ответа не используется — любой ответ2xx считается успешным.
«Отправка документов» срабатывает только для публичных коннекторов в одноарендных (single-tenant)
развёртываниях и только при инкрементальной синхронизации — она не срабатывает при первичной индексации или полной
переиндексации с самого начала.
Входная схема
Yahont отправляетPOST-запрос на ваш эндпоинт по одному разу для каждого успешно проиндексированного документа со
следующим телом JSON:
Пример
Выходная схема
Тело ответа не используется — любой код состояния2xx считается успешным.
Ваш эндпоинт может вернуть пустое тело или любой объект JSON.
Аутентификация
Если при регистрации хука вы настроили API-ключ, Yahont включает его в каждый запрос:Пример для Lambda
В качестве эндпоинта хука можно использовать функцию AWS Lambda, открыв её по HTTPS через Lambda Function URL.Пример Lambda (Python)
Пример Lambda (Python)
Тестирование
Используйтеcurl, чтобы проверить ваш эндпоинт до подключения его к Yahont:
Обработка запросов
Точка хука «Обработка запросов» позволяет перехватывать каждый запрос пользователя до его попадания в конвейер Yahont. Ваш эндпоинт получает исходный запрос и сведения о пользователе и может переписать запрос, полностью отклонить его или пропустить без изменений. Она срабатывает сразу после отправки сообщения пользователем, до сохранения в базу данных и отправки в LLM. Это самая ранняя возможная точка в конвейере — побочных эффектов ещё не было.Входная схема
Yahont отправляетPOST-запрос на ваш эндпоинт со следующим телом JSON:
Выходная схема
Успешный ответ вашего эндпоинта должен возвращать HTTP200 и тело JSON:
Пример: пропустить без изменений
Пример: пропустить без изменений
Пример: переписать запрос
Пример: переписать запрос
Пример: отклонить запрос
Пример: отклонить запрос
Аутентификация
Если при регистрации хука вы настроили API-ключ, Yahont включает его в каждый запрос:Пример для Lambda
В качестве эндпоинта хука можно использовать функцию AWS Lambda, открыв её по HTTPS через Lambda Function URL. Это самый простой способ развернуть хук без управления сервером. Когда Yahont вызывает ваш эндпоинт, запрос приходит в виде события в стиле API Gateway. Ваш обработчик читает тело JSON изevent["body"],
обрабатывает запрос и возвращает ответ с statusCode и закодированным в JSON body.
Если вы настроили для хука API-ключ, проверьте его по заголовку Authorization в событии,
прежде чем выполнять обработку.
Пример Lambda (Python)
Пример Lambda (Python)
Тестирование
Используйтеcurl, чтобы проверить Lambda Function URL до подключения его к Yahont.
Пропуск без изменений (нет заблокированных ключевых слов):

Предложение новой точки хука
Если вашему сценарию нужна точка внедрения в конвейер, которой пока нет, создайте issue на GitHub с описанием:- Где в конвейере нужно внедрить логику (например, после поиска, перед индексацией документа)
- Что получит ваш эндпоинт — какой контекст ему нужен для работы
- Что вернёт ваш эндпоинт — как Yahont должен изменить поведение на основе вашего ответа
- Сценарии использования — какую проблему это решает; нужна ли такая точка другим клиентам

