Код-блоки
Ворнинг
Хеви ворк ин прогресс.
Без знания JS даже не лезь.
Код-блоки позволяют модифицировать поведение бизнес логики через функции-хуки на js.
Как это работает
- Каждый код-блок представляет собой файл с кодом, в котором должны быть определены глобальные функции с определенными именами
- Код запускается в изолированном воркере, так что не имеет доступа к контексту страницы
- Помимо предзаданных имен, в блоке могут быть объявлены любые глобальные переменные и функции
- Если у промпта несколько код-блоков с одинаковыми хуками, то они будут выполняться последовательно. Каждый следующий хук будет принимать на вход результат выполнения предыдущего
- Посмотреть какие аргументы принимает на вход каждый хук можно в исходном коде, либо по подсказкам в редакторе
- Хук должен возвращать тот же объект, которые принимает на вход. Внутри объекта все данные должны быть сериализуемы
На данный момент реализовано 2 хука:
| Название | Описание |
|---|---|
preHistory | Модифицирует историю перед отправкой в LLM. Срабатывает 1 раз на каждый {{history}} в запросе. Принимает на вход полный массив сообщений. |
onMessage | На лету модифицирует сообщение которое приходит от LLM. Если включен стримминг - срабатывает на каждый полученный чанк. Принимает на вход целое сообщение, а не только полученный чанк |
Пример

На скриншоте выше представлен код-блок, который реализует один из подходов для обхода внешнего фильтра для Gemini. Как он работает:
- Перед отправкой запроса в LLM через хук
preHistoryво всех сообщениях все пробелы заменяются наU+2800 - При получении ответа, все
U+2800меняются обратно на нормальные пробелы