[English](../../docs.en/back-docs/setup-ai-assistant.md) | **Русский** # Инструкция по настройке AI Ассистента с векторным поиском ## 🤖 Полное руководство по запуску интеллектуального помощника Этот документ описывает пошаговый процесс настройки AI ассистента для решения бизнес-задач через электронные таблицы и векторный поиск. --- ## 📚 Что вы настроите После выполнения инструкции у вас будет: ✅ Работающий AI ассистент с локальной моделью (Ollama) ✅ База знаний для ответов клиентам (FAQ) ✅ Автоматизация работы с поставщиками ✅ Система обучения персонала ✅ Векторный поиск по вашим данным ✅ Значительная экономия времени и ресурсов > 💡 **Экономический эффект**: См. [ИИ-агенты DLE](../ai-assistant.md) — архитектура, примеры агентов и расчёты экономии. --- ## ⏱️ Время настройки - **Быстрая настройка**: 20-30 минут (базовый FAQ) - **Полная настройка**: 1-2 часа (все возможности) --- ## Шаг 1: Установка и запуск Ollama ### 1.1 Проверка статуса Ollama 1. Перейдите в **Настройки** → вкладка **Интеграции** 2. Найдите блок **"Ollama"** и нажмите **"Подробнее"** 3. Проверьте статус подключения: - ✅ **"Ollama is running"** — все готово, переходите к шагу 1.3 - ❌ **"Ollama API not responding"** — переходите к шагу 1.2 ### 1.2 Запуск Ollama (если не запущен) Если Ollama не запущен, выполните в терминале: ```bash # Для Docker (рекомендуется) docker-compose up -d ollama # Или локально ollama serve ``` Обновите страницу и проверьте статус снова. ### 1.3 Установка модели для AI 1. В разделе **Ollama** нажмите **"Установить модель"** 2. Выберите модель: - **qwen2.5:7b** (рекомендуется) — для русского языка, 4.7 GB - **llama2:7b** — для английского, 3.8 GB - **mistral:7b** — универсальная, 4.1 GB 3. Нажмите **"Установить"** 4. Дождитесь завершения загрузки (5-10 минут в зависимости от скорости интернета) > 💡 **Подсказка**: Модель скачивается один раз и хранится локально ### 1.4 Установка Embedding модели 1. В том же разделе найдите **"Установить Embedding модель"** 2. Выберите модель: - **mxbai-embed-large:latest** (рекомендуется) — 670 MB - **nomic-embed-text:latest** — альтернатива, 274 MB 3. Нажмите **"Установить"** > ⚠️ **Важно**: Embedding модель нужна для векторного поиска (RAG) --- ## Шаг 2: Создание базы знаний (электронные таблицы) ### 2.1 Создание таблицы FAQ 1. Перейдите в **Таблицы** (в главном меню) 2. Нажмите **"+ Создать таблицу"** 3. Заполните: - **Название**: `FAQ - Часто задаваемые вопросы` - **Описание**: `База знаний для AI ассистента по работе с клиентами` 4. Нажмите **"Создать"** ### 2.2 Настройка столбцов таблицы Добавьте следующие столбцы: #### Столбец 1: Вопрос (обязательный для RAG) 1. Нажмите **"+ Добавить столбец"** 2. Заполните: - **Название**: `Вопрос` - **Тип**: `Текст` - **Назначение**: Выберите `Вопрос для AI` ⭐ 3. Нажмите **"Сохранить"** > ⚠️ **Критично**: Обязательно выберите назначение "Вопрос для AI" — это поле будет индексироваться для векторного поиска #### Столбец 2: Ответ (обязательный для RAG) 1. Нажмите **"+ Добавить столбец"** 2. Заполните: - **Название**: `Ответ` - **Тип**: `Текст` - **Назначение**: Выберите `Ответ AI` ⭐ 3. Нажмите **"Сохранить"** #### Столбец 3: Продукт (опционально, для фильтрации) 1. Нажмите **"+ Добавить столбец"** 2. Заполните: - **Название**: `Продукт` - **Тип**: `Множественный выбор` - **Варианты**: `Базовый`, `Премиум`, `Корпоративный` - **Назначение**: Выберите `Фильтр по продукту` 3. Нажмите **"Сохранить"** #### Столбец 4: Теги (опционально, для категоризации) 1. Нажмите **"+ Добавить столбец"** 2. Заполните: - **Название**: `Теги` - **Тип**: `Множественный выбор` - **Варианты**: `Оплата`, `Доставка`, `Возврат`, `Гарантия`, `Техподдержка` - **Назначение**: Выберите `Теги пользователя` 3. Нажмите **"Сохранить"** #### Столбец 5: Приоритет (опционально) 1. Нажмите **"+ Добавить столбец"** 2. Заполните: - **Название**: `Приоритет` - **Тип**: `Число` - **Назначение**: Выберите `Приоритет` 3. Нажмите **"Сохранить"** > 💡 **Подсказка**: Вопросы с более высоким приоритетом будут показываться AI первыми ### 2.3 Заполнение базы знаний Добавьте типовые вопросы и ответы: **Пример 1: Оплата** | Вопрос | Ответ | Продукт | Теги | Приоритет | |--------|-------|---------|------|-----------| | Как оплатить заказ? | Мы принимаем оплату банковской картой, через PayPal, или банковским переводом. Выберите удобный способ при оформлении заказа. | Все | Оплата | 10 | | Можно ли оплатить частями? | Да, для заказов от 50,000₽ доступна рассрочка на 3, 6 или 12 месяцев без переплаты. | Премиум, Корпоративный | Оплата | 8 | **Пример 2: Доставка** | Вопрос | Ответ | Продукт | Теги | Приоритет | |--------|-------|---------|------|-----------| | Сколько времени занимает доставка? | Стандартная доставка: 3-5 рабочих дней по России. Экспресс-доставка: 1-2 дня в крупных городах. | Все | Доставка | 10 | | Сколько стоит доставка? | Бесплатная доставка при заказе от 5,000₽. Для заказов менее 5,000₽ стоимость доставки 300₽. | Все | Доставка | 9 | **Пример 3: Возврат** | Вопрос | Ответ | Продукт | Теги | Приоритет | |--------|-------|---------|------|-----------| | Как вернуть товар? | Возврат возможен в течение 14 дней с момента получения. Товар должен быть в оригинальной упаковке, с сохранением товарного вида. Свяжитесь с поддержкой для оформления возврата. | Все | Возврат | 10 | | Когда вернут деньги? | Возврат денежных средств производится в течение 5-10 рабочих дней после получения товара на наш склад. | Все | Возврат | 8 | > 💡 **Рекомендация**: Добавьте минимум 20-30 вопросов для качественной работы AI. Чем больше вопросов, тем точнее ответы! ### 2.4 Активация таблицы как источника для AI 1. В правом верхнем углу таблицы найдите **⚙️ Настройки таблицы** 2. Включите переключатель **"Использовать как источник для AI"** ✅ 3. Нажмите **"Сохранить"** > ✅ **Готово!** Таблица теперь индексируется для векторного поиска --- ## Шаг 3: Настройка AI провайдера (Ollama) ### 3.1 Открытие настроек Ollama 1. Перейдите в **Настройки** → **Интеграции** 2. Найдите блок **"Ollama"** и нажмите **"Подробнее"** ### 3.2 Проверка Base URL 1. Проверьте поле **Base URL**: - Для Docker: `http://ollama:11434` ✅ - Для локального: `http://localhost:11434` 2. Если URL неверный, исправьте и нажмите **"Сохранить"** ### 3.3 Выбор модели 1. В поле **"Модель (LLM)"** выберите установленную модель: - `qwen2.5:7b` (рекомендуется для русского) 2. В поле **"Embeddings-модель"** выберите: - `mxbai-embed-large:latest` 3. Нажмите **"Сохранить"** --- ## Шаг 4: Настройка AI Ассистента ### 4.1 Открытие настроек ассистента 1. Перейдите в **Настройки** → **Интеграции** 2. Найдите блок **"ИИ-ассистент"** и нажмите **"Подробнее"** ### 4.2 Настройка системного промта В поле **"Системный промт"** введите инструкции для AI: **Базовый промт (для начала)**: ``` Вы — профессиональный ассистент службы поддержки компании. Правила: 1. Отвечайте вежливо и профессионально 2. Используйте информацию из базы знаний 3. Если информации нет — предложите связаться с оператором 4. Отвечайте кратко и по существу 5. Всегда заканчивайте вопросом "Чем еще могу помочь?" ``` **Продвинутый промт (с персонализацией)**: ``` Вы — профессиональный ассистент службы поддержки компании "Название вашей компании". О компании: - Мы занимаемся [краткое описание бизнеса] - Наши ценности: качество, надежность, клиентоориентированность Стиль общения: - Дружелюбный, но профессиональный - Обращайтесь к клиенту на "Вы" - Используйте эмодзи умеренно (1-2 на сообщение) Правила ответа: 1. ОБЯЗАТЕЛЬНО: Отвечайте ТОЛЬКО на русском языке. Все вопросы и ответы должны быть на русском языке 2. Сначала ищите ответ в базе знаний (RAG) 3. Если нашли — отвечайте на основе найденной информации 4. Если не нашли — честно скажите и предложите помощь оператора 5. Не придумывайте информацию о ценах, сроках, условиях 6. При сложных вопросах предлагайте связаться с менеджером Всегда заканчивайте: "Чем еще могу помочь? 😊" ``` ### 4.3 Выбор моделей 1. **LLM-модель**: Выберите `qwen2.5:7b (ollama)` 2. **Embedding-модель**: Выберите `mxbai-embed-large:latest (ollama)` > 💡 **Подсказка**: Модели автоматически подтянутся из настроек Ollama > 📊 **Размер контекстного окна**: > - **Qwen2.5:7b**: Базовый контекст = **32,768 токенов** (~24,000 русских слов) > - Всего данных, отправляемых в модель: > - Системный промпт: ~500-2000 символов (~300-1200 токенов) > - История диалога: до 20 сообщений (~100-500 токенов на сообщение = ~2000-10000 токенов) > - RAG контекст: ~500-2000 токенов (из найденных данных) > - Текущий вопрос: ~50-200 токенов > - **Итого**: примерно 3,000-15,000 токенов (запас достаточен) > - Если нужен больший контекст → используйте Qwen3 с YaRN (до 131K токенов) ### 4.4 Выбор RAG-таблицы 1. В поле **"Выбранные RAG-таблицы"** выберите созданную таблицу: - `FAQ - Часто задаваемые вопросы` 2. Нажмите **"Сохранить"** ### 4.5 Настройка правил AI (Rules) Создайте набор правил для управления поведением AI: 1. Нажмите кнопку **"Создать"** рядом с полем "Набор правил" 2. В модальном окне заполните: **Название**: `Гибридный режим (RAG + генерация)` **Описание**: `AI сначала ищет в базе знаний, если не находит — генерирует ответ` **Правила (JSON)**: ```json { "checkUserTags": true, "searchRagFirst": true, "generateIfNoRag": true, "temperature": 0.7, "maxTokens": 500 } ``` 3. Нажмите **"Сохранить"** 4. Выберите созданное правило в выпадающем списке > 💡 **Что означают параметры**: > - `checkUserTags: true` — учитывать теги пользователя при поиске > - `searchRagFirst: true` — сначала искать в базе знаний > - `generateIfNoRag: true` — генерировать ответ, если ничего не найдено > - `temperature: 0.7` — баланс между точностью и креативностью (0.0-1.0) > - `maxTokens: 500` — максимальная длина ответа ### 4.6 Настройки RAG поиска Разверните раздел **"🔍 Настройки RAG поиска"**: **Базовые настройки:** 1. **Метод поиска**: Выберите `Гибридный поиск` (рекомендуется) 2. **Максимальное количество результатов**: `5` 3. **Порог релевантности**: `0.1` (от 0.01 до 1.0) **Извлечение ключевых слов:** 1. ✅ **Включить извлечение ключевых слов** 2. **Минимальная длина слова**: `3` 3. **Максимальное количество ключевых слов**: `10` 4. ✅ **Удалять стоп-слова** **Веса поиска (для гибридного):** 1. **Семантический поиск**: `70%` (точность) 2. **Поиск по ключевым словам**: `30%` (скорость) **Дополнительные настройки:** 1. ✅ **Нечеткий поиск** (для опечаток) 2. ✅ **Стемминг слов** (находит разные формы слова) 3. ☐ **Поиск синонимов** (пока отключен) ### 4.7 Сохранение настроек Нажмите кнопку **"Сохранить"** внизу формы. --- ## Шаг 5: Тестирование AI Ассистента ### 5.1 Использование встроенного тестера 1. На странице настроек AI ассистента прокрутите вниз до блока **"🔍 Мониторинг системы"** 2. В разделе **"🧠 Тест RAG-функциональности"**: - Убедитесь, что выбрана таблица `FAQ - Часто задаваемые вопросы` - Введите тестовый вопрос: `Как оплатить заказ?` - Нажмите **"Тестировать RAG"** 3. Наблюдайте за процессом: - 🔍 Ищем ответ в базе знаний... (векторный поиск) - 🤖 Генерируем ответ с помощью ИИ... (LLM генерация) - ✅ Готово! 4. Проверьте результат: - Должен отобразиться ответ из вашей таблицы - Score (оценка близости): чем ближе к 0, тем лучше > 💡 **Хороший Score**: от -300 до 0 (ответ найден) > ⚠️ **Плохой Score**: больше 300 (ответ не найден, AI придумает свой) ### 5.2 Тестирование через Web Chat 1. Перейдите на главную страницу приложения 2. Найдите виджет **"💬 Чат с AI"** (обычно справа внизу) 3. Нажмите на виджет, чтобы открыть чат 4. Введите вопрос: `Сколько стоит доставка?` 5. Проверьте ответ AI **Ожидаемый результат:** ``` 🤖 AI Ассистент: Бесплатная доставка при заказе от 5,000₽. Для заказов менее 5,000₽ стоимость доставки 300₽. Чем еще могу помочь? 😊 ``` ### 5.3 Тестирование разных сценариев Попробуйте задать различные вопросы: **✅ Вопрос из базы знаний:** ``` Пользователь: "Как вернуть товар?" AI: [Ответ из таблицы FAQ] ``` **⚠️ Вопрос НЕ из базы знаний:** ``` Пользователь: "Какая погода сегодня?" AI: "Извините, я специализируюсь на вопросах о нашей компании и продуктах. По вопросам погоды обратитесь к специализированным сервисам. Чем еще могу помочь?" ``` **🎯 Вопрос с опечаткой:** ``` Пользователь: "Как аплатить заказ?" (опечатка) AI: [Найдет правильный ответ благодаря нечеткому поиску] ``` --- ## Шаг 6: Расширенные возможности (опционально) ### 6.1 Создание таблицы для работы с поставщиками #### Структура таблицы "База поставщиков" 1. Создайте новую таблицу: `База поставщиков` 2. Добавьте столбцы: | Столбец | Тип | Описание | |---------|-----|----------| | Название компании | Текст | Наименование поставщика | | Категория товаров | Множественный выбор | Электроника, Мебель, Одежда, и т.д. | | Контактное лицо | Текст | ФИО менеджера | | Email | Текст | Электронная почта | | Телефон | Текст | Контактный телефон | | Цены | Текст | Прайс-лист (краткое описание) | | Условия оплаты | Текст | Отсрочка, предоплата, и т.д. | | Минимальный заказ | Число | Минимальная сумма заказа | | Срок доставки | Текст | Сроки поставки | | Рейтинг | Число | Оценка от 1 до 10 | | Примечания | Текст | Дополнительная информация | 3. Активируйте как источник для AI 4. Заполните данными о ваших поставщиках #### Промт для AI закупщика Добавьте в системный промт: ``` ДОПОЛНИТЕЛЬНО - Работа с поставщиками: Когда пользователь спрашивает о поставщиках: 1. Ищите в базе "База поставщиков" 2. Фильтруйте по категории товаров 3. Сортируйте по рейтингу и условиям 4. Предоставьте ТОП-3 рекомендации Формат ответа: 🏆 TOP-3 поставщика по запросу "[категория]": 1. [Название] ⭐ [Рейтинг]/10 📧 [Email] | 📞 [Телефон] 💰 Условия: [Условия оплаты] 🚚 Доставка: [Срок доставки] 📦 Минимум: [Минимальный заказ]₽ 2. ... 3. ... Рекомендую связаться с [Название первого поставщика] — лучшие условия. ``` ### 6.2 Создание таблицы для обучения персонала #### Структура таблицы "База знаний для сотрудников" 1. Создайте новую таблицу: `База знаний для сотрудников` 2. Добавьте столбцы: | Столбец | Тип | Описание | |---------|-----|----------| | Вопрос | Текст | Вопрос сотрудника (назначение: Вопрос для AI) | | Ответ | Текст | Подробный ответ (назначение: Ответ AI) | | Категория | Множественный выбор | Продажи, HR, Финансы, IT, Маркетинг | | Отдел | Множественный выбор | Для какого отдела актуально | | Сложность | Число | От 1 (простой) до 5 (сложный) | | Инструкции | Текст | Пошаговые инструкции (если есть) | | Ссылки | Текст | Ссылки на документы/видео | | Дата обновления | Дата | Когда информация обновлялась | 3. Примеры вопросов: **Категория "Продажи":** - "Как оформить возврат клиенту?" - "Какие скидки можно давать постоянным клиентам?" - "Как работать с корпоративными клиентами?" **Категория "HR":** - "Как оформить отпуск?" - "Куда обращаться по больничному?" - "Как происходит адаптация новых сотрудников?" **Категория "IT":** - "Как получить доступ к корпоративной почте?" - "Что делать при проблемах с VPN?" - "Как создать заявку в техподдержку?" ### 6.3 Создание связей между таблицами #### Пример: Связь "Клиенты" → "Заказы" 1. Создайте таблицу **"Клиенты"**: - Название, Email, Телефон, Статус (VIP/Обычный) 2. Создайте таблицу **"Заказы"**: - Номер заказа, Дата, Сумма 3. В таблице "Заказы" добавьте столбец: - **Название**: `Клиент` - **Тип**: `Связь (Relation)` - **Связанная таблица**: выберите `Клиенты` - **Показывать поле**: выберите `Название` 4. Добавьте еще один столбец в "Заказы": - **Название**: `Email клиента` - **Тип**: `Lookup (Подстановка)` - **Связь через**: выберите столбец `Клиент` - **Подставлять поле**: выберите `Email` **Результат**: При выборе клиента автоматически подставится его Email! #### Использование AI с связанными таблицами AI автоматически понимает связи и может отвечать на вопросы: ``` Пользователь: "Покажи все заказы клиента Иванов" AI: [Ищет в таблице Заказы, фильтрует по клиенту Иванов] ``` --- ## Шаг 7: Интеграция с Telegram и Email (опционально) ### 7.1 Настройка Telegram бота 1. Перейдите в **Настройки** → **Интеграции** → **Telegram** 2. Создайте бота через [@BotFather](https://t.me/botfather) в Telegram: - Отправьте `/newbot` - Выберите имя и username бота - Скопируйте **Bot Token** 3. В настройках DLE введите: - **Bot Token**: вставьте токен от BotFather - **Bot Username**: username вашего бота (например, `@mycompany_bot`) 4. Нажмите **"Сохранить"** 5. В настройках AI ассистента выберите этот Telegram бот в поле **"Telegram-бот"** **Результат**: AI будет отвечать на сообщения в Telegram! ### 7.2 Настройка Email интеграции 1. Перейдите в **Настройки** → **Интеграции** → **Email** 2. Заполните IMAP настройки (для получения писем): - **IMAP Host**: `imap.gmail.com` (для Gmail) - **IMAP Port**: `993` - **IMAP User**: ваш email - **IMAP Password**: пароль приложения (не основной пароль!) 3. Заполните SMTP настройки (для отправки писем): - **SMTP Host**: `smtp.gmail.com` - **SMTP Port**: `587` - **SMTP User**: ваш email - **SMTP Password**: пароль приложения - **From Email**: email для отправки 4. Нажмите **"Тест IMAP"** и **"Тест SMTP"** для проверки 5. Нажмите **"Сохранить"** 6. В настройках AI ассистента выберите этот Email в поле **"Email для связи"** > ⚠️ **Важно для Gmail**: Создайте "Пароль приложения" в настройках безопасности Google **Результат**: AI будет отвечать на входящие email автоматически! --- ## Шаг 8: Мониторинг и оптимизация ### 8.1 Проверка статуса сервисов 1. Перейдите в **Настройки** → **Интеграции** → **ИИ-ассистент** 2. Прокрутите вниз до **"🔍 Мониторинг системы"** 3. Нажмите **"🔄 Обновить статус"** 4. Проверьте статусы: - 🟢 **Backend**: должен быть "Работает" - 🟢 **Postgres**: должен быть "Работает" - 🟢 **Ollama**: должен показывать количество моделей - 🟢 **Vector Search**: должен быть "Работает" > ⚠️ Если что-то красное (🔴) — см. раздел "Решение проблем" ниже ### 8.2 Анализ качества ответов Регулярно проверяйте качество ответов AI: 1. **Score в тестере RAG**: - **-300 до 0** ✅ — отличное совпадение - **0 до 300** ⚠️ — среднее совпадение - **>300** ❌ — совпадение не найдено 2. **Если Score плохой**: - Добавьте больше похожих вопросов в таблицу - Используйте разные формулировки одного вопроса - Увеличьте порог релевантности (например, до 0.2) ### 8.3 Оптимизация настроек RAG Экспериментируйте с настройками для улучшения результатов: **Для более точных ответов:** ``` Метод поиска: Семантический Порог релевантности: 0.05 (ниже = строже) Веса: Семантический 100% / Ключевые слова 0% ``` **Для более быстрых ответов:** ``` Метод поиска: Поиск по ключевым словам Максимальное количество результатов: 3 ``` **Для баланса (рекомендуется):** ``` Метод поиска: Гибридный Веса: Семантический 70% / Ключевые слова 30% Порог релевантности: 0.1 ``` --- ## ✅ AI Ассистент готов к работе! ### Что у вас теперь есть ✅ **Локальный AI ассистент** без зависимости от облака ✅ **База знаний FAQ** для ответов клиентам ✅ **Векторный поиск** для точных ответов ✅ **Настроенные правила** поведения AI ✅ **Система мониторинга** для контроля качества ### Экономический эффект При правильной настройке AI ассистента вы получите: ✅ **Автоматизацию рутинных задач** - высвобождение времени для стратегии ✅ **Повышение качества обслуживания** - AI работает 24/7 без усталости ✅ **Снижение операционных расходов** - меньше персонала на рутинных задачах ✅ **Ускорение принятия решений** - мгновенный доступ к информации > 💡 **Подробная информация**: См. [ИИ-агенты DLE](../ai-assistant.md#экономический-эффект) — архитектура, примеры агентов и расчёты экономии. --- ## 📚 Следующие шаги ### Расширьте возможности AI 1. **Добавьте больше таблиц**: - База знаний для партнеров - Инструкции для персонала - Каталог продуктов - База контактов 2. **Создайте правила для разных сценариев**: - Строгий режим (только RAG) — для финансов - Креативный режим (больше генерации) — для маркетинга - Гибридный режим (баланс) — для поддержки 3. **Интегрируйте с другими системами**: - CRM (синхронизация клиентов) - Складская система (остатки товаров) - Бухгалтерия (счета и оплаты) ### Обучите команду 1. Покажите сотрудникам, как работает AI 2. Объясните, как добавлять новые вопросы в базу 3. Установите процесс регулярного обновления базы знаний 4. Назначьте ответственного за качество ответов AI --- ## 🆘 Решение проблем ### Проблема: Ollama не запускается **Симптомы**: Статус "Ollama API not responding" **Решение**: ```bash # Проверить контейнер docker ps | grep ollama # Перезапустить docker-compose restart ollama # Проверить логи docker-compose logs ollama ``` ### Проблема: AI отвечает неточно **Симптомы**: Ответы не соответствуют базе знаний **Решение**: 1. Проверьте Score в тестере (должен быть < 300) 2. Добавьте больше вариантов вопросов в таблицу 3. Уменьшите порог релевантности (например, до 0.05) 4. Проверьте, что столбцы имеют правильные назначения ("Вопрос для AI", "Ответ AI") ### Проблема: Vector Search не работает **Симптомы**: Статус Vector Search показывает ошибку **Решение**: 1. Проверьте, установлена ли Embedding модель 2. Пересоберите индекс: на странице таблицы нажмите **"🔄 Пересобрать индекс"** 3. Проверьте, что таблица активирована как источник для AI ### Проблема: AI отвечает на неправильном языке **Симптомы**: Ответы на английском вместо русского **Решение**: 1. Измените системный промт, добавив в начало: `ВСЕГДА отвечай на русском языке.` 2. Используйте модель `qwen2.5:7b` вместо `llama2:7b` 3. В правилах AI установите `"language": "ru"` ### Проблема: Медленные ответы **Симптомы**: AI отвечает дольше 5-10 секунд **Решение**: 1. Используйте меньшую модель (`mistral:7b` вместо `qwen2.5:14b`) 2. Уменьшите `maxResults` в настройках RAG (например, до 3) 3. Отключите "Поиск синонимов" в дополнительных настройках 4. Используйте SSD для хранения моделей --- ## 📖 Дополнительная документация ### Изучите возможности AI - 🤖 **[ИИ-агенты DLE](../ai-assistant.md)** — архитектура, примеры агентов и экономический эффект - 📊 **[Система электронных таблиц](./tables-system.md)** - техническое описание таблиц - ⚙️ **[Конфигурация AI](./setup-ai-assistant.md#техническая-документация-для-разработчиков)** - технические детали настройки ### Общая документация - 🛡️ **[Безопасность](../security.md)** - как AI защищает ваши данные - 💼 **[Блокчейн для бизнеса](../blockchain-for-business.md)** - интеграция AI с блокчейном - 📋 **[FAQ](../FAQ.md)** - часто задаваемые вопросы ### Поддержка - 💬 **Чат поддержки**: https://hb3-accelerator.com/ - 📧 **Email**: info@hb3-accelerator.com - 📚 **База знаний**: https://hb3-accelerator.com --- ## 🔧 Техническая документация (для разработчиков) ### Архитектура системы AI ``` ┌───────────────────────────────────────────────────────────┐ │ Настройка AI Ассистента в DLE │ ├───────────────────────────────────────────────────────────┤ │ │ │ 🤖 AI Провайдеры: │ │ ├── OpenAI (GPT-4, GPT-3.5) │ │ ├── Anthropic (Claude) │ │ ├── Google (Gemini) │ │ └── Ollama (локальные модели) │ │ │ │ ⚙️ Настройки AI: │ │ ├── System Prompt │ │ ├── Выбор LLM модели │ │ ├── Выбор Embedding модели │ │ ├── Выбор RAG-таблиц │ │ ├── Правила (Rules) │ │ └── Настройки RAG поиска │ │ │ │ 📋 Правила (Rules): │ │ ├── JSON конфигурация поведения │ │ ├── Создание/редактирование/удаление │ │ └── Привязка к AI ассистенту │ │ │ │ 🔗 Интеграции: │ │ ├── Email (IMAP + SMTP) │ │ └── Telegram Bot │ │ │ │ 🔍 RAG: │ │ ├── Выбор таблиц для поиска │ │ ├── Настройки поиска (гибридный/семантический) │ │ ├── Порог релевантности │ │ └── Извлечение ключевых слов │ │ │ │ 📊 Мониторинг: │ │ ├── Статус сервисов (Backend, Ollama, Postgres) │ │ ├── Тест RAG-функциональности │ │ └── Отслеживание прогресса │ │ │ └───────────────────────────────────────────────────────────┘ ``` ### База данных #### Таблица: `ai_providers_settings` ```sql CREATE TABLE IF NOT EXISTS ai_providers_settings ( id SERIAL PRIMARY KEY, provider_encrypted TEXT, -- Провайдер: openai, anthropic, google, ollama api_key_encrypted TEXT, -- API ключ (зашифрован) base_url_encrypted TEXT, -- Base URL для API selected_model_encrypted TEXT, -- Выбранная LLM модель embedding_model_encrypted TEXT, -- Выбранная Embedding модель created_at TIMESTAMP NOT NULL DEFAULT NOW(), updated_at TIMESTAMP NOT NULL DEFAULT NOW() ); ``` #### Таблица: `ai_assistant_settings` ```sql CREATE TABLE IF NOT EXISTS ai_assistant_settings ( id SERIAL PRIMARY KEY, system_prompt_encrypted TEXT, -- Системный промт selected_rag_tables INTEGER[], -- Массив ID RAG-таблиц languages TEXT[], -- Массив поддерживаемых языков model_encrypted TEXT, -- Выбранная LLM модель embedding_model_encrypted TEXT, -- Выбранная Embedding модель rules JSONB, -- Правила (DEPRECATED) rules_id INTEGER REFERENCES ai_assistant_rules(id), -- Ссылка на правило telegram_settings_id INTEGER, -- Ссылка на Telegram бота email_settings_id INTEGER, -- Ссылка на Email настройки rag_settings JSONB, -- Настройки RAG поиска updated_at TIMESTAMP DEFAULT NOW(), updated_by INTEGER ); ``` #### Таблица: `ai_assistant_rules` ```sql CREATE TABLE IF NOT EXISTS ai_assistant_rules ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, -- Название набора правил description TEXT, -- Описание правила rules JSONB NOT NULL, -- JSON конфигурация rules_encrypted TEXT, -- Зашифрованная версия правил created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW() ); ``` ### Backend API #### Настройки AI провайдеров - **GET** `/settings/ai-settings/:provider` — Получить настройки провайдера - **PUT** `/settings/ai-settings/:provider` — Сохранить настройки провайдера - **DELETE** `/settings/ai-settings/:provider` — Удалить настройки провайдера - **GET** `/settings/ai-settings/:provider/models` — Получить список моделей - **POST** `/settings/ai-settings/:provider/verify` — Проверить API ключ #### Настройки AI ассистента - **GET** `/settings/ai-assistant` — Получить настройки ассистента - **PUT** `/settings/ai-assistant` — Сохранить настройки ассистента #### Правила AI - **GET** `/settings/ai-assistant-rules` — Получить все правила - **GET** `/settings/ai-assistant-rules/:id` — Получить правило по ID - **POST** `/settings/ai-assistant-rules` — Создать правило - **PUT** `/settings/ai-assistant-rules/:id` — Обновить правило - **DELETE** `/settings/ai-assistant-rules/:id` — Удалить правило #### Ollama (локальные модели) - **GET** `/ollama/status` — Проверить статус Ollama - **GET** `/ollama/models` — Получить список моделей - **POST** `/ollama/install` — Установить модель - **DELETE** `/ollama/models/:modelName` — Удалить модель ### Frontend страницы - **`/settings/ai`** — Главная страница интеграций - **`/settings/ai/:provider`** — Настройки AI провайдера - **`/settings/ai/assistant`** — Настройки AI ассистента ### Процесс обработки сообщения ``` 1. Пользователь → Сообщение ↓ 2. UnifiedMessageProcessor ↓ 3. Проверка языка (только русский) ↓ 4. Дедупликация (хеш сообщения) ↓ 5. Загрузка настроек (aiAssistantSettingsService) ↓ 6. Загрузка правил (aiAssistantRulesService) ↓ 7. RAG поиск (ragService) ├── Семантический поиск (vector search) ├── Поиск по ключевым словам └── Гибридный поиск ↓ 8. Генерация ответа (generateLLMResponse) ├── System Prompt ├── История разговора ├── Контекст из RAG └── Правила ↓ 9. Ответ → Пользователь ``` ### Безопасность - **Шифрование**: Все чувствительные поля зашифрованы с помощью AES-256 - **Права доступа**: Только администраторы могут изменять настройки - **Валидация**: Проверка всех входных данных и API ключей --- **© 2024-2025 Тарабанов Александр Викторович. Все права защищены.** **Версия документа**: 1.0.0 **Дата создания**: October 25, 2025