🧠 База знаний (RAG)

Научите вашего агента вашему бизнесу с помощью базы знаний. RAG (Retrieval-Augmented Generation) обеспечивает точные, контекстно-зависимые ответы.

Как работает RAG

1

Вы добавляете знания

Загрузите FAQ, информацию о продуктах, инструкции в виде текста

2

Текст разбивается на чанки

Разделение на чанки по 512 токенов с перекрытием 50 токенов

3

Генерируются эмбеддинги

Каждый чанк преобразуется в 384-мерный вектор (all-MiniLM-L6-v2)

4

Пользователь задаёт вопрос

Вопрос преобразуется в эмбеддинг и сравнивается с векторами знаний

5

Найдено топ-5 совпадений

Наиболее релевантные чанки извлекаются через косинусное сходство

6

Агент отвечает

ИИ использует извлечённый контекст для генерации точного ответа

🏗️ Архитектура

┌─────────────────┐     ┌──────────────────────┐
│  Ваш текст      │     │  Разбиение           │
│  (FAQ, документы)│────►│  (512 токенов/чанк)  │
└─────────────────┘     └──────────────────────┘
                               │
                               ▼
                        ┌──────────────────────┐
                        │  Модель эмбеддингов  │
                        │  (384 измерения)     │
                        └──────────────────────┘
                               │
                               ▼
                        ┌──────────────────────┐
                        │  Векторная БД        │
                        │  (Сохранённые векторы)│
                        └──────────────────────┘
                               │
                               ▼
                        ┌──────────────────────┐     ┌─────────────────┐
│  Вопрос пользователя│────►│  Семантический поиск│
│  (Эмбеддинг)        │     │  (Топ-5 совпадений) │
└─────────────────┘     └──────────────────────┘
                               │
                               ▼
                        ┌──────────────────────┐
                        │  Ответ ИИ            │
                        │  (С контекстом)      │
                        └──────────────────────┘

📝 Добавление знаний через UI

  1. Перейдите в панель управления вашего агента
  2. Нажмите вкладку «Знания»
  3. Нажмите «Добавить знание»
  4. Вставьте или введите ваш контент (до 10 000 символов)
  5. При необходимости добавьте метаданные (имя файла источника, категорию)
  6. Нажмите «Сохранить»

Пример: Добавление FAQ

Содержимое:
В: Какая у вас политика возврата?
О: Мы предлагаем 14-дневную гарантию возврата денег. Если вы не
   удовлетворены покупкой, свяжитесь с поддержкой в течение
   14 дней для полного возврата. Без вопросов.

В: Как получить доступ к курсу?
О: После покупки вы получите email с инструкциями по входу.
   Доступ к курсу на learn.example.com используя ваш
   зарегистрированный email.

В: Вы выдаёте сертификаты?
О: Да! По завершении 100% курса вы получите
   проверенный сертификат о завершении по email.

👨‍💻 Добавление знаний через API

curl -X POST https://api.aigonka.ru/api/v1/agents/AGENT_ID/knowledge \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "В: Какая у вас политика возврата?\nО: Мы предлагаем 14-дневную гарантию...",
    "metadata": {
      "source": "faq.txt",
      "category": "billing"
    }
  }'

💡 Примечание: Текст автоматически разбивается на чанки и создаются эмбеддинги. Вы увидите, сколько записей было создано в ответе.

✨ Лучшие практики

✅ НУЖНО:

  • Использовать чёткий формат вопросов и ответов
  • Включать конкретные числа (цены, даты, длительность)
  • Группировать связанные темы вместе
  • Использовать заголовки и разделы
  • Включать распространённые возражения и ответы
  • Добавлять примеры и граничные случаи

❌ НЕЛЬЗЯ:

  • Писать длинные абзацы без структуры
  • Использовать расплывчатый язык («скоро», «доступно»)
  • Смешивать несвязанные темы в одной записи
  • Включать устаревшую информацию
  • Предполагать, что агент знает контекст
  • Использовать жаргон без объяснения

📋 Примеры форматирования

Хороший пример:

ПРОДУКТ: Курс "Мастер Python"

Цена: $99
Длительность: 8 недель
Формат: Видеоуроки + живые сессии вопросов и ответов
Уровень: От начинающего до продвинутого

ЧТО ВКЛЮЧЕНО:
• 40 видеоуроков (2-15 мин каждый)
• Еженедельные живые сессии вопросов и ответов
• Закрытое Discord-сообщество
• 10 проектов по кодированию с проверкой
• Сертификат о завершении

ПОЛИТИКА ВОЗВРАТА:
Полный возврат в течение 14 дней, если пройдено менее 20%.

ТРЕБОВАНИЯ:
• Базовые компьютерные навыки
• Опыт программирования не требуется

ВРЕМЕННЫЕ ЗАТРАТЫ:
Рекомендуется 5-7 часов в неделю

Плохой пример:

У нас есть отличный курс по Python, который очень популярен.
Он довольно комплексный и охватывает много всего.
Цена разумная и большинству людей нравится.
Вы выучите Python и сможете работать программистом.
Свяжитесь с нами для большей информации.

❌ Расплывчато, нет конкретики, нет структуры, нет actionable информации

🔧 Управление знаниями

ДействиеКак сделать
Просмотр всех записейВкладка «Знания» → Смотрите список с предпросмотром
Удалить записьНажмите иконку 🗑️ рядом с записью
Редактировать записьУдалите и добавьте заново с обновлённым контентом
ПоискИспользуйте поиск браузера (Ctrl+F) на странице

📊 Детали разбиения на чанки

Автоматическое разбиение

  • Размер чанка: 512 токенов (примерно 400-500 слов)
  • Перекрытие: 50 токенов между чанками (для непрерывности контекста)
  • Метод разбиения: По границам слов (сохраняет смысл)
  • Минимальный чанк: Пропускает чанки менее 10 слов

Пример:

Если вы вставите 2000 слов, они будут разбиты примерно на 4-5 чанков с перекрывающимися секциями для сохранения контекста.

🧠 Модель эмбеддингов

Технические детали

  • Модель: all-MiniLM-L6-v2 (через @xenova/transformers)
  • Измерения: 384-мерные векторы
  • Сходство: Косинусное сходство для поиска
  • Top K: Возвращает топ-5 наиболее релевантных чанков
  • Резерв: Ключевой поиск, если модель не загружается

🔧 Решение проблем

Агент даёт общие ответы?

  • Добавьте более конкретные знания с деталями
  • Используйте формат вопросов и ответов для распространённых вопросов
  • Включите числа и конкретику (цены, даты)

Знания не используются?

  • Проверьте, были ли знания добавлены успешно
  • Перефразируйте вопросы пользователя, чтобы они соответствовали формулировкам знаний
  • Добавьте больше записей знаний по теме

Создано слишком много чанков?

  • Разбейте большие тексты на меньшие, сфокусированные записи
  • Удалите избыточный или повторяющийся контент
  • Используйте чёткие заголовки для разделения тем

📚 Следующие шаги