Перейти к основному содержанию
x

AI-Support: Подготовка данных (RAG):

   Препроцессинг текстов из Drupal: чанкинг (разбиение на куски) для вектора.

1. Управленческая задача: Подготовка данных для точного и релевантного AI.
Препроцессинг текстов (предварительная обработка) из Drupal с использованием чанкинга (chunking — разбиение на куски) для векторной базы данных (Vector Database) — это ключевой инженерный этап в создании эффективной системы RAG (Retrieval-Augmented Generation — генерация с расширенным поиском). Цель — преобразовать объемные статьи вашей базы знаний (Drupal Wiki) в формат, который AI-агент (через Open WebUI) сможет быстро и точно использовать для поиска релевантной информации и формирования ответов. Без правильного чанкинга, ИИ либо будет "тонуть" в слишком больших кусках текста (теряя контекст), либо получать неполные данные, что приведет к неточным или "галлюцинирующим" ответам.

 

2. Почему "Чанкинг"?

  • Ограничения LLM: Большие языковые модели (LLM) имеют ограничения по размеру входного контекста. Если подать им всю статью целиком (например, 10 страниц), они не смогут её полностью "прочитать" или потеряют важную информацию в середине.
  • Релевантность поиска: Векторный поиск (основа RAG) работает лучше, когда каждый "кусок" информации достаточно автономен и относится к конкретной теме. Если кусок слишком большой, он содержит много лишней информации, что снижает точность поиска.
  • Экономия: Обработка больших объемов текста LLM обходится дороже.
 

3. Механизм Чакинга и Векторизации.

  • Источник данных: Ваши статьи в Drupal (Wiki), содержащие регламенты, инструкции, FAQ.
  • n8n как оркестратор: n8n будет отвечать за процесс препроцессинга.
    1. Извлечение текста: n8n получает содержимое статьи из Drupal (по API) в чистом текстовом виде (без HTML-разметки).
    2. Разбиение на чанки (Chunking):
      • Метод 1: По разделителям. Разбиваем текст по логическим разделителям: заголовки (H1, H2), абзацы, пустые строки.
      • Метод 2: По фиксированному размеру. Разбиваем на куски определенного размера, например, 500-1000 символов, с небольшим перекрытием (overlap) между соседними чанками (например, 10-20% символов), чтобы сохранить контекст на границах.
      • Пример: Статья "Настройка VPN" разбивается на чанки: "Шаг 1: Загрузка клиента", "Шаг 2: Установка сертификата", "Шаг 3: Тестирование соединения". Каждый чанк содержит достаточно информации для самостоятельного ответа.
    3. Векторизация (Embedding): Каждый полученный чанк отправляется в специальную модель эмбеддингов (Embedding Model — модель для преобразования текста в числовой вектор) (например, Open WebUI может предоставлять такую модель или внешний сервис). Модель преобразует текст каждого чанка в числовой вектор (ряд чисел), который отражает его смысловое значение.
    4. Запись в векторную базу данных: Эти векторы вместе с оригинальным текстом чанка и метаданными (ссылка на статью Drupal, ID чанка) сохраняются в векторной базе данных (например, ChromaDB, Weaviate).
 

4. Использование в RAG.
Когда клиент задает вопрос:

  1. Его вопрос также векторизуется.
  2. Вектор вопроса сравнивается с векторами в векторной базе данных для поиска наиболее "смыслово близких" чанков.
  3. Найденные релевантные чанки (не вся статья, а только нужные фрагменты) подаются в LLM (Open WebUI) вместе с исходным вопросом клиента.
  4. LLM использует эту "дополнительную информацию" для генерации точного и обоснованного ответа.
 

5. Управленческие выгоды.

  • Повышение точности ответов AI: ИИ отвечает на основе конкретных, релевантных фрагментов, а не "угадывает".
  • Снижение "галлюцинаций": AI опирается на факты из вашей базы знаний.
  • Эффективное использование ресурсов: Меньше данных подается в LLM, что экономит вычислительные ресурсы и время ответа.
  • Актуальность: Легко обновлять отдельные чанки при изменении информации в Drupal.
  • Масштабируемость: Система легко справляется с огромным объемом базы знаний.
  • Контроль качества: Вы контролируете источник информации, которую использует AI.


   Настройка обновления векторной базы при изменении статьи в Wiki.

1. Управленческая задача: Актуальность знаний AI и предотвращение "устаревания" ответов.
Настройка автоматического обновления векторной базы данных (Vector Database) при изменении статьи в Wiki (Drupal) — это критически важный процесс для поддержания актуальности вашей системы RAG (Retrieval-Augmented Generation — генерация с расширенным поиском). Если AI-агент (через Open WebUI) будет отвечать на основе устаревших данных, это приведет к некорректным ответам, дезинформации клиентов и подрыву доверия к вашей службе поддержки. Цель — создать механизм, который гарантирует, что любое изменение в вашей базе знаний (например, обновленный регламент или инструкция) немедленно отражается в информации, доступной для AI, обеспечивая "единый источник правды" для всех.

 

2. Архитектура обновления.

  • Источник изменений: Drupal Wiki (ваша база знаний).
  • Цель обновления: Векторная база данных, содержащая эмбеддинги (числовые векторы) ваших статей.
  • Оркестратор: n8n.
 

3. Механизм автоматического обновления через n8n.

  1. Триггер изменения в Drupal:
    • Метод 1 (Webhook): В Drupal устанавливается модуль, который при сохранении/обновлении/удалении статьи отправляет веб-хук (Webhook — механизм обратного вызова) в n8n с информацией об измененной статье (ее ID, URL). Это наиболее эффективный способ.
    • Метод 2 (Polling): n8n периодически (например, раз в час) опрашивает API Drupal, запрашивая список недавно измененных статей. Этот метод менее оперативный, но не требует доработки Drupal.
  2. Получение данных из Drupal: При срабатывании триггера, n8n получает измененное содержимое статьи из Drupal (по ее ID) в чистом текстовом виде.
  3. Очистка и Чакинг (Preprocessing & Chunking): Полученный текст проходит предварительную обработку, как описано ранее: удаление HTML-разметки, разбиение на логические "чанки" (куски текста).
  4. Векторизация (Embedding): Каждый новый или измененный чанк отправляется в модель эмбеддингов (Embedding Model) (через Open WebUI или внешний сервис) для преобразования в числовой вектор (эмбеддинг).
  5. Обновление векторной базы: n8n отправляет полученные эмбеддинги и соответствующие чанки текста (вместе с метаданными, такими как ID статьи Drupal, ID чанка, дата изменения) в вашу векторную базу данных (например, ChromaDB, Weaviate).
    • Операции: Векторная база данных либо обновляет существующие чанки (если они изменились), либо удаляет старые и добавляет новые (если статья была переструктурирована), либо удаляет все чанки, если статья была удалена в Drupal.
    • Оптимизация: Важно настроить так, чтобы при небольшом изменении статьи не перевекторизировалась вся статья, а только измененные чанки.
 

4. Контроль и мониторинг.

  • Логирование: n8n должен логировать все операции по обновлению векторной базы: какие статьи были обновлены, когда, успешно ли прошла векторизация.
  • Уведомления: При возникновении ошибок в процессе обновления n8n должен отправлять уведомление администратору.
 

5. Управленческие выгоды.

  • Актуальность информации: AI всегда оперирует самой свежей и точной информацией из вашей базы знаний.
  • Предотвращение ошибок AI: Минимизация риска дачи неверных ответов на основе устаревших регламентов.
  • Единый источник правды: Гарантия, что изменения, сделанные L2/L3 инженерами в Wiki, немедленно доступны AI и L1-операторам.
  • Повышение доверия к AI: Улучшение качества ответов укрепляет доверие клиентов и сотрудников к автоматизированной поддержке.
  • Экономия времени: Устранение ручной синхронизации данных между Wiki и AI.
  • Согласованность: Обеспечение согласованности информации между человеком и ИИ.