Продолжаем делать сложные штуки - сегодня гайд про то, как улучшить выдачу RAG агента.
Представим, что у вас сотня файлов и несколько тысяч векторов.
При поиске среди векторов вы можете получить в выдаче пару десятков результатов, которые могут попросту не влезть в input ИИ или же ответ на ваш вопрос будет лежать в следующей десятке, которая останется за бортом.
Что делать? Сужать поиск.
Нет смысла искать информацию о ракетах в баснях Крылова, поэтому есть смысл предварительно отфильтровать файлы, среди которых мы хотим делать поиск.
Также это может помочь, если у вас много файлов с близкой по смыслу информацией, и тонкую разницу между файлами можно понять по их описанию.
Итак, чтобы реализовать это, мы:
1️⃣ Добавляем таблицы
files (с описанием файлов) и documents (с векторами) в Supabase2️⃣ Добавляем данные в таблицы - в
files у нас будут ссылки на файлы и описание с векторами, в documents куски текста и вектора с ссылкой на file. 3️⃣ Создаем Supabase функции для поиска по векторам
files и documents4️⃣ Топаем в N8N и делаем флоу с кодом для поиска по файлам и далее для поиска по
documents с фильтром по найденным файлам.Таким образом - сначала мы находим подходящие файлы в списке файлов, используя их описание, а далее ищем подходящие куски текста только в этих файлах, чем сужаем поиск.
Также, засчет кастомной функции нам удается получить ссылку на файл для найденных векторов, которую мы можем вернуть вместе с ответом пользователю.
Ссылка на видео гайд (английский) - https://www.youtube.com/watch?v=asXVOHg89hs
Ссылка на сообщество с шаблоном - https://www.skool.com/5minai-pro


