From 03c4f6e8a2427f65022eefd41272dc9afb9708b8 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 28 Oct 2025 13:21:56 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BD=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 - docs/FAQ.md | 9 +- docs/README.md | 261 ----- docs/ai-assistant-configuration.md | 1118 ---------------------- docs/ai-assistant.md | 187 +--- docs/application-description.md | 119 +-- docs/blockchain-integration-technical.md | 215 +---- docs/service-terms.md | 8 +- docs/setup-ai-assistant.md | 190 +++- 9 files changed, 256 insertions(+), 1866 deletions(-) delete mode 100644 docs/README.md delete mode 100644 docs/ai-assistant-configuration.md diff --git a/README.md b/README.md index 93bece4..ed48141 100644 --- a/README.md +++ b/README.md @@ -49,14 +49,6 @@ docker-compose up -d - **Frontend**: http://localhost:9000 (HTTP) или https://localhost:9443 (HTTPS) - **Backend API**: http://localhost:9000/api (через nginx proxy) -#### 🗳️ Портал голосования токен-холдеров -- **Governance Portal**: https://hb3-accelerator.com/ -- Создавайте предложения и голосуйте за развитие новых функций - -#### 📥 Скачивание обновлений -- **Updates Platform**: https://hb3-accelerator.com/ -- Скачивайте все версии приложения и читайте Release Notes - ## 🔧 Управление ### Запуск @@ -131,12 +123,6 @@ docker ps # Все контейнеры в системе - Список авторизованных дилеров: https://hb3-accelerator.com/ - Прямая покупка у автора: info@hb3-accelerator.com -### 🗳️ Управление через токенизированное акционерное общество на блокчейне - -Держатели лицензий голосуют за развитие новых функций через смарт-контракт DLE на блокчейне (аналогично акционерному обществу). Каждый токен = 1 голос. Решения принимаются большинством (51%+). - -**Модель управления**: Токенизированное акционерное общество на блокчейне - токен-холдеры управляют параметрами системы, приоритетами разработки и могут распределять активы через голосование, но код остается проприетарным. - ### 📖 Полная документация #### Основные документы: @@ -145,7 +131,6 @@ docker ps # Все контейнеры в системе - 🤖 **[Настройка AI Ассистента](docs/setup-ai-assistant.md)** ⭐ **НОВОЕ!** - создание базы знаний и автоматизация через электронные таблицы - 💼 **[Блокчейн для бизнеса](docs/blockchain-for-business.md)** - как блокчейн решает бизнес-задачи, токенизация активов - 🤖 **[AI Ассистент - полное описание](docs/ai-assistant.md)** - второй пилот для команды, высвобождает 85% времени для стратегии и креатива, экономия $483,600/год -- 🔗 **[Техническая документация по блокчейну](docs/blockchain-integration-technical.md)** - для разработчиков: смарт-контракты, API, примеры кода - 🛡️ **[Безопасность DLE](docs/security.md)** - многоуровневая защита веб-приложения и смарт-контрактов - 📝 **[Описание приложения](docs/application-description.md)** - обзор функциональности - 📋 **[Условия обслуживания](docs/service-terms.md)** - условия приобретения и обслуживания diff --git a/docs/FAQ.md b/docs/FAQ.md index 3845a4a..2361818 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -63,7 +63,7 @@ DLE создано для: ### Сколько стоит DLE? -Доступны два типа лицензий (обе бессрочные): +**Краткая справка по ценам:** | Тип лицензии | Цена | Токенов управления | Голосов | |--------------|------|-------------------|---------| @@ -75,6 +75,8 @@ DLE создано для: - Комиссии за платежи и конвертацию несет покупатель - Условия обслуживания одинаковы для обеих лицензий +> 💡 **Полная информация**: См. [Условия обслуживания](./service-terms.md#типы-лицензий) - там подробно описаны все условия, гарантии и процесс возврата средств. + ### Что входит в лицензию? ✅ **Все лицензии включают:** @@ -84,12 +86,11 @@ DLE создано для: - AI ассистент 24/7 - Участие в голосовании за новые функции - Онлайн-сессии обучения (групповые и индивидуальные) -- Доступ к библиотеке записей -- SLA 99% uptime -- Ежедневное резервное копирование **Единственное различие** - количество голосов в системе управления. +> 💡 **Подробности**: См. [Условия обслуживания](./service-terms.md#условия-обслуживания-одинаковые-для-всех-лицензий) + ### Есть ли подписка или ежемесячные платежи? **Нет!** DLE использует модель **бессрочной лицензии** (Perpetual License): diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 0da7995..0000000 --- a/docs/README.md +++ /dev/null @@ -1,261 +0,0 @@ -# Документация Digital Legal Entity (DLE) - -Добро пожаловать в центр документации проекта DLE! - -## 📚 Содержание документации - -### Для начинающих - -1. **[FAQ - Часто задаваемые вопросы](./FAQ.md)** - - Общие вопросы о DLE - - Лицензирование и оплата - - Установка и развертывание - - Блокчейн и смарт-контракты - - Система голосования - - Техническая поддержка - - Функциональность - - Безопасность - - Обновления - -2. **[Описание приложения](./application-description.md)** - - Обзор функциональности - - Техническая архитектура - - Компоненты системы - - Требования к инфраструктуре - -3. **[Инструкция по установке](./setup-instruction.md)** - - Пошаговая настройка - - Подключение кошелька - - Настройка RPC провайдеров - - Деплой смарт-контрактов - - Конфигурация AI и базы данных - - Публикация в интернет - -4. **[Настройка AI Ассистента](./setup-ai-assistant.md)** ⭐ **НОВОЕ!** - - Установка и запуск Ollama - - Создание базы знаний (электронные таблицы) - - Настройка векторного поиска (RAG) - - Создание FAQ для клиентов - - База поставщиков с AI-закупщиком - - Обучение персонала через AI - - Интеграция с Telegram и Email - - Мониторинг и оптимизация - -### Для бизнеса и инвесторов - -5. **[Блокчейн для бизнеса](./blockchain-for-business.md)** ⭐ **НОВОЕ!** - - Смарт-контракт как универсальный идентификатор - - Токенизация всех типов активов - - Решение проблем управления - - Финансовые операции без банков - - Практические кейсы - - Экономический эффект - -6. **[AI Ассистент с векторным поиском](./ai-assistant.md)** ⭐ **НОВОЕ!** - - **Философия "Второй пилот"** - AI не вместо людей, а вместе с ними - - Высвобождает 85% времени персонала для стратегии и креатива - - Трансформация ролей: от рутины к инновациям - - Обслуживание клиентов 24/7 - - AI-закупщик: анализ 100+ поставщиков за 15 минут - - Автоматизация работы с партнерами - - Обучение и управление персоналом - - Подготовка отчетности и анализ бизнеса - - Генерация контента для маркетинга - - Экономия до $483,600/год - - 100% конфиденциальность (все на вашем сервере) - -### Для разработчиков - -7. **[Техническая документация по блокчейну](./blockchain-integration-technical.md)** - - Архитектура смарт-контрактов - - Основной контракт DLE - - Модульная система - - Мультичейн архитектура - - Система голосования - - Деплой смарт-контрактов - - Аутентификация через кошелек - - Интеграция с frontend - - Безопасность - - Примеры кода - -8. **[Безопасность DLE](./security.md)** ⭐ **НОВОЕ!** - - Модель безопасности (многоуровневая защита) - - Контроль доступа на основе токенов - - Безопасность смарт-контрактов - - Защита от взлома кошельков - - Безопасность веб-приложения - - Управление модулями - - Аудит и мониторинг - - Рекомендации по безопасности - - Сценарии атак и защита - -9. **[Условия обслуживания](./service-terms.md)** - - Лицензионная модель - - Типы лицензий - - Система голосования и развитие продукта - - Возврат средств и гарантии - - Обновления и обслуживание - - Техническая поддержка - - Условия использования - - Безопасность и конфиденциальность - - Смарт-контракт управления лицензиями - ---- - -## 🎯 Быстрые ссылки - -### Новичкам -- ❓ [Что такое DLE?](./FAQ.md#что-такое-digital-legal-entity-dle) -- 💰 [Сколько стоит?](./FAQ.md#сколько-стоит-dle) -- 🚀 [Как установить?](./setup-instruction.md) -- 🤖 [Как настроить AI?](./setup-ai-assistant.md) - -### Бизнесу и инвесторам -- 💼 [Почему блокчейн для бизнеса?](./blockchain-for-business.md#введение-зачем-бизнесу-блокчейн) -- 🔑 [Смарт-контракт как идентификатор](./blockchain-for-business.md#смарт-контракт-как-универсальный-идентификатор) -- 💰 [Токенизация активов](./blockchain-for-business.md#токенизация-активов) -- 🤖 [AI для автоматизации бизнеса](./ai-assistant.md#введение) -- 💸 [Экономия с AI](./ai-assistant.md#экономический-эффект) - -### Разработчикам -- 🔗 [Архитектура блокчейна](./blockchain-integration-technical.md#архитектура-смарт-контрактов) -- 📝 [Создание предложений](./blockchain-integration-technical.md#создание-предложения) -- 🗳️ [Система голосования](./blockchain-integration-technical.md#система-голосования-управление) - -### Администраторам -- ⚙️ [Настройка приложения](./setup-instruction.md) -- 🤖 [Настройка AI ассистента](./setup-ai-assistant.md) -- 🔐 [Безопасность](./security.md) -- 🛡️ [Защита от атак](./security.md#сценарии-атак-и-защита) -- 🔄 [Обновления](./FAQ.md#обновления) - ---- - -## 📖 Структура документации - -``` -docs/ -├── README.md # ← Вы здесь -├── FAQ.md # Часто задаваемые вопросы -├── setup-instruction.md # Инструкция по установке -├── setup-ai-assistant.md # Настройка AI ассистента ⭐ НОВОЕ! -├── blockchain-for-business.md # Блокчейн для бизнеса ⭐ НОВОЕ! -├── ai-assistant.md # AI Ассистент (полное описание) ⭐ НОВОЕ! -├── blockchain-integration-technical.md # Техническая документация (для разработчиков) -├── security.md # Безопасность DLE ⭐ НОВОЕ! -├── application-description.md # Описание приложения -└── service-terms.md # Условия обслуживания -``` - ---- - -## 🆘 Нужна помощь? - -### Быстрая поддержка -- 🤖 **AI ассистент 24/7** - встроенный помощник в приложении -- 💬 **Чат с support team** - https://hb3-accelerator.com/ -- 📝 **Тикеты поддержки** - https://hb3-accelerator.com/ - -### Прямые контакты -- 📧 **Email**: info@hb3-accelerator.com -- 🌐 **Сайт**: https://hb3-accelerator.com -- 🐙 **GitHub**: https://github.com/HB3-ACCELERATOR - -### Обучающие ресурсы -- 🎓 **Онлайн-сессии** - групповые и индивидуальные -- 📚 **Библиотека записей** - https://hb3-accelerator.com/training-library -- 🗳️ **Портал голосования** - https://hb3-accelerator.com/governance -- 📥 **Скачивание обновлений** - https://hb3-accelerator.com/updates - ---- - -## 🔍 Поиск по документации - -Используйте поиск по ключевым словам: - -| Тема | Документ | Раздел | -|------|----------|--------| -| **Установка** | [setup-instruction.md](./setup-instruction.md) | Пошаговая инструкция | -| **Настройка AI** | [setup-ai-assistant.md](./setup-ai-assistant.md) | AI ассистент | -| **Цены и лицензии** | [FAQ.md](./FAQ.md#лицензирование-и-оплата) | Лицензирование | -| **Блокчейн для бизнеса** | [blockchain-for-business.md](./blockchain-for-business.md) | Бизнес-кейсы | -| **AI Ассистент** | [ai-assistant.md](./ai-assistant.md) | Автоматизация | -| **Обслуживание клиентов** | [ai-assistant.md](./ai-assistant.md#обслуживание-клиентов) | AI | -| **Смарт-контракты** | [blockchain-integration-technical.md](./blockchain-integration-technical.md) | Архитектура | -| **Голосование** | [blockchain-integration-technical.md](./blockchain-integration-technical.md#система-голосования-управление) | Управление | -| **Возврат денег** | [service-terms.md](./service-terms.md#42-программа-возврата-70-refund-program) | Гарантии | -| **Обновления** | [FAQ.md](./FAQ.md#обновления) | Обновления | -| **Безопасность** | [security.md](./security.md) | Security | -| **Защита токенов** | [security.md](./security.md#защита-от-взлома-кошельков) | Security | -| **Контроль доступа** | [security.md](./security.md#контроль-доступа-на-основе-токенов) | Access Control | -| **AI ассистент** | [FAQ.md](./FAQ.md#как-работает-ai-ассистент) | Функциональность | -| **Модули** | [blockchain-integration-technical.md](./blockchain-integration-technical.md#модульная-система) | Модули | -| **Деплой** | [blockchain-integration-technical.md](./blockchain-integration-technical.md#деплой-смарт-контрактов) | Deployment | -| **Токенизация активов** | [blockchain-for-business.md](./blockchain-for-business.md#токенизация-активов) | Бизнес | -| **Экономический эффект** | [blockchain-for-business.md](./blockchain-for-business.md#экономический-эффект) | ROI | - ---- - -## 📋 Дополнительные ресурсы - -### Юридическая информация -- ⚖️ [Юридическая документация](../legal/README.md) -- 📜 [Авторские права](../legal/COPYRIGHT_NOTICE.md) -- 📝 [Лицензия](../LICENSE) -- 👥 [Авторы](../legal/AUTHORS.md) - -### Технические ресурсы -- 🐙 [GitHub Repository](https://github.com/VC-HB3-Accelerator/DLE) -- 📦 [Docker Hub](https://hub.docker.com/) (предстоящая публикация) -- 🌐 [Официальный сайт](https://hb3-accelerator.com) - ---- - -## 🔄 Обновления документации - -Документация регулярно обновляется с каждым релизом приложения. - -**Последнее обновление**: October 2025 - -**История изменений**: -- **v1.2** (Oct 2025): Добавлены FAQ и расширенная документация по блокчейн-интеграции -- **v1.1** (Oct 2025): Обновлены условия обслуживания и добавлены онлайн-сессии -- **v1.0** (Oct 2024): Первоначальная версия документации - ---- - -## 💡 Как внести вклад в документацию? - -Нашли ошибку или хотите улучшить документацию? - -1. Откройте issue на [GitHub](https://github.com/VC-HB3-Accelerator/DLE/issues) -2. Отправьте pull request с предложенными изменениями -3. Свяжитесь с нами: info@hb3-accelerator.com - -**Правила для контрибьюторов**: [legal/CONTRIBUTING.md](../legal/CONTRIBUTING.md) - ---- - -## 📄 Лицензия документации - -Вся документация защищена авторским правом и является частью проприетарного программного обеспечения Digital Legal Entity. - -**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.** - -Для получения разрешений на использование обращайтесь: info@hb3-accelerator.com - ---- - -## 🌟 Начните сейчас! - -Готовы начать работу с DLE? - -1. 📖 **[Прочитайте FAQ](./FAQ.md)** - узнайте основы -2. 💼 **[Изучите бизнес-возможности](./blockchain-for-business.md)** - как блокчейн решит ваши задачи -3. 🚀 **[Установите приложение](./setup-instruction.md)** - следуйте инструкциям -4. 🤖 **[Настройте AI ассистента](./setup-ai-assistant.md)** - создайте базу знаний и запустите автоматизацию -5. 🔗 **[Настройте блокчейн](./blockchain-integration-technical.md)** - подключите кошелек и разверните контракты -6. 💬 **[Получите поддержку](https://hb3-accelerator.com/)** - мы всегда на связи! - -Добро пожаловать в экосистему Digital Legal Entity! 🎉 - diff --git a/docs/ai-assistant-configuration.md b/docs/ai-assistant-configuration.md deleted file mode 100644 index 500e6d0..0000000 --- a/docs/ai-assistant-configuration.md +++ /dev/null @@ -1,1118 +0,0 @@ -# Настройка AI Ассистента в DLE - -> **Временный документ для внутреннего анализа** - ---- - -## 📋 Содержание - -1. [Обзор системы](#обзор-системы) -2. [Архитектура настроек](#архитектура-настроек) -3. [База данных](#база-данных) -4. [Backend API](#backend-api) -5. [Frontend страницы](#frontend-страницы) -6. [Настройка AI провайдеров](#настройка-ai-провайдеров) -7. [Настройка AI ассистента](#настройка-ai-ассистента) -8. [Правила AI (Rules)](#правила-ai-rules) -9. [Интеграции (Email, Telegram)](#интеграции-email-telegram) -10. [RAG конфигурация](#rag-конфигурация) -11. [Мониторинг системы](#мониторинг-системы) - ---- - -## Обзор системы - -### Что это? - -Система настройки AI ассистента в DLE — это **модульная конфигурация** для управления поведением искусственного интеллекта, интеграциями с провайдерами LLM, базами знаний (RAG), и каналами связи. - -### Ключевые компоненты - -``` -┌───────────────────────────────────────────────────────────┐ -│ Настройка 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-функциональности │ -│ └── Отслеживание прогресса │ -│ │ -└───────────────────────────────────────────────────────────┘ -``` - ---- - -## Архитектура настроек - -### Иерархия настроек - -``` -Уровень 1: AI Провайдеры (ai_providers_settings) - ├── OpenAI (API Key, Base URL, модели) - ├── Anthropic (API Key, модели) - ├── Google (API Key, модели) - └── Ollama (Base URL, локальные модели) - -Уровень 2: AI Ассистент (ai_assistant_settings) - ├── System Prompt - ├── Выбранная LLM модель - ├── Выбранная Embedding модель - ├── Выбранные RAG-таблицы - ├── Правила (Rules ID) - ├── Telegram Bot ID - ├── Email Settings ID - └── Настройки RAG поиска - -Уровень 3: Правила AI (ai_assistant_rules) - ├── Название - ├── Описание - └── JSON конфигурация -``` - -### Процесс обработки сообщения - -``` -1. Пользователь → Сообщение - ↓ -2. UnifiedMessageProcessor - ↓ -3. Проверка языка (только русский) - ↓ -4. Дедупликация (хеш сообщения) - ↓ -5. Загрузка настроек (aiAssistantSettingsService) - ↓ -6. Загрузка правил (aiAssistantRulesService) - ↓ -7. RAG поиск (ragService) - ├── Семантический поиск (vector search) - ├── Поиск по ключевым словам - └── Гибридный поиск - ↓ -8. Генерация ответа (generateLLMResponse) - ├── System Prompt - ├── История разговора - ├── Контекст из RAG - └── Правила - ↓ -9. Ответ → Пользователь -``` - ---- - -## База данных - -### Таблица: `ai_providers_settings` - -**Назначение**: Хранение настроек для AI провайдеров (OpenAI, Anthropic, Google, Ollama). - -```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() -); -``` - -**Шифрование**: Все чувствительные поля (`provider`, `api_key`, `base_url`, `selected_model`, `embedding_model`) зашифрованы с помощью AES-256. - -**Примеры записей**: - -```json -[ - { - "id": 1, - "provider": "ollama", - "base_url": "http://ollama:11434", - "selected_model": "qwen2.5:7b", - "embedding_model": "mxbai-embed-large:latest" - }, - { - "id": 2, - "provider": "openai", - "api_key": "sk-...", - "base_url": "https://api.openai.com/v1", - "selected_model": "gpt-4", - "embedding_model": "text-embedding-ada-002" - } -] -``` - -### Таблица: `ai_assistant_settings` - -**Назначение**: Глобальные настройки AI ассистента. - -```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 поиска (NEW) - updated_at TIMESTAMP DEFAULT NOW(), - updated_by INTEGER -); -``` - -**Новое поле**: `rag_settings` (JSONB) - -```json -{ - "searchMethod": "hybrid", // "semantic", "keyword", "hybrid" - "maxResults": 5, // Максимальное количество результатов - "relevanceThreshold": 0.1, // Порог релевантности - "keywordExtraction": { - "enabled": true, // Включить извлечение ключевых слов - "minWordLength": 3, // Минимальная длина слова - "maxKeywords": 10, // Максимальное количество ключевых слов - "removeStopWords": true, // Удалять стоп-слова - "language": "ru" - }, - "searchWeights": { - "semantic": 70, // Вес семантического поиска (%) - "keyword": 30 // Вес поиска по ключевым словам (%) - }, - "advanced": { - "enableFuzzySearch": true, // Нечеткий поиск - "enableStemming": true, // Стемминг слов - "enableSynonyms": false // Поиск синонимов - } -} -``` - -**Пример записи**: - -```json -{ - "id": 1, - "system_prompt": "Вы — полезный ассистент. Отвечайте на русском языке.", - "selected_rag_tables": [1, 3], - "languages": ["ru"], - "model": "qwen2.5:7b", - "embedding_model": "mxbai-embed-large:latest", - "rules_id": 2, - "telegram_settings_id": 1, - "email_settings_id": 1, - "rag_settings": { /* см. выше */ } -} -``` - -### Таблица: `ai_assistant_rules` - -**Назначение**: Наборы правил для управления поведением AI. - -```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, -- Зашифрованная версия правил (NEW) - created_at TIMESTAMP DEFAULT NOW(), - updated_at TIMESTAMP DEFAULT NOW() -); -``` - -**Формат правил** (JSON): - -```json -{ - "checkUserTags": true, // Проверять теги пользователя - "searchRagFirst": true, // Искать в RAG сначала - "generateIfNoRag": true, // Генерировать ответ, если нет RAG - "requireAdminApproval": false, // Требовать одобрения админа - "maxTokens": 500, // Максимальное количество токенов - "temperature": 0.7, // Температура генерации - "customInstructions": "..." // Дополнительные инструкции -} -``` - -**Примеры правил**: - -```json -[ - { - "id": 1, - "name": "Строгий режим", - "description": "Только ответы из базы знаний, без генерации", - "rules": { - "checkUserTags": true, - "searchRagFirst": true, - "generateIfNoRag": false - } - }, - { - "id": 2, - "name": "Гибридный режим", - "description": "RAG + генерация при необходимости", - "rules": { - "checkUserTags": true, - "searchRagFirst": true, - "generateIfNoRag": true, - "temperature": 0.7 - } - } -] -``` - ---- - -## Backend API - -### 1. Настройки AI провайдеров - -#### GET `/settings/ai-settings/:provider` - -Получить настройки провайдера (openai, anthropic, google, ollama). - -**Требования**: Авторизация + Admin права - -**Ответ**: -```json -{ - "success": true, - "settings": { - "provider": "ollama", - "api_key": null, - "base_url": "http://ollama:11434", - "selected_model": "qwen2.5:7b", - "embedding_model": "mxbai-embed-large:latest" - } -} -``` - -#### PUT `/settings/ai-settings/:provider` - -Сохранить/обновить настройки провайдера. - -**Требования**: Admin права (`requireAdmin`) - -**Тело запроса**: -```json -{ - "api_key": "sk-...", - "base_url": "https://api.openai.com/v1", - "selected_model": "gpt-4", - "embedding_model": "text-embedding-ada-002" -} -``` - -#### DELETE `/settings/ai-settings/:provider` - -Удалить настройки провайдера. - -**Требования**: Admin права - -#### GET `/settings/ai-settings/:provider/models` - -Получить список доступных моделей для провайдера. - -**Требования**: Admin права - -**Ответ**: -```json -{ - "success": true, - "models": [ - { "id": "gpt-4", "name": "GPT-4" }, - { "id": "gpt-3.5-turbo", "name": "GPT-3.5 Turbo" } - ] -} -``` - -#### POST `/settings/ai-settings/:provider/verify` - -Проверить валидность API ключа. - -**Требования**: Admin права - -**Тело запроса**: -```json -{ - "api_key": "sk-...", - "base_url": "https://api.openai.com/v1" -} -``` - -**Ответ**: -```json -{ - "success": true -} -``` - -### 2. Настройки AI ассистента - -#### GET `/settings/ai-assistant` - -Получить настройки AI ассистента. - -**Требования**: Admin права - -**Ответ**: -```json -{ - "success": true, - "settings": { - "id": 1, - "system_prompt": "Вы — полезный ассистент.", - "selected_rag_tables": [1, 3], - "model": "qwen2.5:7b", - "embedding_model": "mxbai-embed-large:latest", - "rules_id": 2, - "telegram_settings_id": 1, - "email_settings_id": 1, - "ragSettings": { - "searchMethod": "hybrid", - "maxResults": 5 - } - } -} -``` - -#### PUT `/settings/ai-assistant` - -Сохранить/обновить настройки AI ассистента. - -**Требования**: Admin права - -**Тело запроса**: -```json -{ - "system_prompt": "Вы — полезный ассистент.", - "selected_rag_tables": [1], - "model": "qwen2.5:7b", - "embedding_model": "mxbai-embed-large:latest", - "rules_id": 2, - "telegram_settings_id": 1, - "email_settings_id": 1, - "ragSettings": { - "searchMethod": "hybrid", - "maxResults": 5, - "relevanceThreshold": 0.1 - } -} -``` - -**Обработка на Backend**: - -```javascript -// Преобразование selected_rag_tables в массив -let { selected_rag_tables, ...rest } = req.body; - -if (typeof selected_rag_tables === 'string') { - try { - selected_rag_tables = JSON.parse(selected_rag_tables); - } catch { - selected_rag_tables = [Number(selected_rag_tables)]; - } -} - -if (!Array.isArray(selected_rag_tables)) { - selected_rag_tables = [Number(selected_rag_tables)]; -} - -selected_rag_tables = selected_rag_tables.map(Number); -``` - -### 3. Правила AI - -#### GET `/settings/ai-assistant-rules` - -Получить все наборы правил. - -**Требования**: Admin права - -**Ответ**: -```json -{ - "success": true, - "rules": [ - { - "id": 1, - "name": "Строгий режим", - "description": "Только ответы из базы знаний", - "rules": { "checkUserTags": true, "generateIfNoRag": false }, - "created_at": "2025-01-15T10:00:00Z", - "updated_at": "2025-01-15T10:00:00Z" - } - ] -} -``` - -#### GET `/settings/ai-assistant-rules/:id` - -Получить правило по ID. - -**Требования**: Admin права - -#### POST `/settings/ai-assistant-rules` - -Создать новое правило. - -**Требования**: Admin права - -**Тело запроса**: -```json -{ - "name": "Новое правило", - "description": "Описание правила", - "rules": { - "checkUserTags": true, - "searchRagFirst": true, - "generateIfNoRag": true - } -} -``` - -#### PUT `/settings/ai-assistant-rules/:id` - -Обновить правило. - -**Требования**: Admin права - -#### DELETE `/settings/ai-assistant-rules/:id` - -Удалить правило. - -**Требования**: Admin права - -### 4. Ollama (локальные модели) - -#### GET `/ollama/status` - -Проверить статус Ollama. - -**Требования**: Авторизация - -**Ответ**: -```json -{ - "connected": true, - "message": "Ollama is running", - "models": 3, - "availableModels": ["qwen2.5:7b", "llama2:7b", "mistral:7b"] -} -``` - -#### GET `/ollama/models` - -Получить список установленных моделей. - -**Требования**: Авторизация - -**Ответ**: -```json -{ - "models": [ - { - "name": "qwen2.5:7b", - "id": "qwen2.5:7b", - "size": 4500000000, - "modified": "2025-01-15T10:00:00Z" - } - ] -} -``` - -#### POST `/ollama/install` - -Установить модель. - -**Требования**: Авторизация - -**Тело запроса**: -```json -{ - "model": "llama2:7b" -} -``` - -**Ответ** (немедленный): -```json -{ - "success": true, - "message": "Installation of llama2:7b started", - "processId": 12345 -} -``` - -**Примечание**: Установка происходит в фоне, не блокирует запрос. - -#### DELETE `/ollama/models/:modelName` - -Удалить модель. - -**Требования**: Авторизация - -### 5. Интеграции - -#### Email - -**GET** `/settings/email-settings` — Получить настройки Email -**PUT** `/settings/email-settings` — Обновить настройки Email -**DELETE** `/settings/email-settings` — Удалить настройки Email -**POST** `/settings/email-settings/test-smtp` — Тест SMTP -**POST** `/settings/email-settings/test-imap` — Тест IMAP -**GET** `/settings/email-settings/list` — Список всех Email настроек - -#### Telegram - -**GET** `/settings/telegram-settings` — Получить настройки Telegram -**PUT** `/settings/telegram-settings` — Обновить настройки Telegram -**DELETE** `/settings/telegram-settings` — Удалить настройки Telegram -**GET** `/settings/telegram-settings/list` — Список всех Telegram ботов - ---- - -## Frontend страницы - -### 1. Главная страница интеграций - -**Путь**: `/settings/ai` -**Компонент**: `AiSettingsView.vue` - -**Блоки интеграций**: - -``` -┌─────────────────────────────────────────────────────┐ -│ Интеграции │ -├─────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ -│ │ OpenAI │ │ Ollama │ │ Telegram ││ -│ │ │ │ │ │ ││ -│ │ [Подробнее]│ │ [Подробнее]│ │ [Подробнее]││ -│ └─────────────┘ └─────────────┘ └─────────────┘│ -│ │ -│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ -│ │ Email │ │База данных │ │ИИ-ассистент ││ -│ │ │ │ │ │ ││ -│ │ [Подробнее]│ │ [Подробнее]│ │ [Подробнее]││ -│ └─────────────┘ └─────────────┘ └─────────────┘│ -│ │ -└─────────────────────────────────────────────────────┘ -``` - -**Навигация**: -- `/settings/ai/openai` → Настройки OpenAI -- `/settings/ai/ollama` → Настройки Ollama -- `/settings/ai/telegram` → Настройки Telegram -- `/settings/ai/email` → Настройки Email -- `/settings/ai/database` → Настройки БД -- `/settings/ai/assistant` → Настройки AI ассистента - -### 2. Настройки AI провайдера - -**Путь**: `/settings/ai/:provider` -**Компонент**: `AIProviderSettings.vue` - -**Форма настроек**: - -``` -┌──────────────────────────────────────────────────────────┐ -│ OpenAI [×] │ -├──────────────────────────────────────────────────────────┤ -│ │ -│ Введите OpenAI API Key и (опционально) Base URL. │ -│ │ -│ API Key: │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ sk-... │ │ -│ └────────────────────────────────────────────────────┘ │ -│ [Verify] ✔️ │ -│ │ -│ Base URL: │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ https://api.openai.com/v1 │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Модель (LLM): │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ gpt-4 ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Embeddings-модель: │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ text-embedding-ada-002 ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ [Сохранить] [Удалить ключ] [Закрыть] │ -│ │ -│ ✅ Сохранено! │ -└──────────────────────────────────────────────────────────┘ -``` - -**Логика работы**: - -1. **Загрузка настроек**: При монтировании компонента загружаются сохраненные настройки через `GET /settings/ai-settings/:provider`. - -2. **Verify**: Проверка валидности API ключа через `POST /settings/ai-settings/:provider/verify`. - -3. **Загрузка моделей**: После успешной верификации загружаются доступные модели через `GET /settings/ai-settings/:provider/models` или `/ollama/models` (для Ollama). - -4. **Сохранение**: Сохранение настроек через `PUT /settings/ai-settings/:provider`. - -5. **Удаление**: Удаление настроек через `DELETE /settings/ai-settings/:provider`. - -**Особенности Ollama**: -- Не требуется API Key -- Только Base URL -- Модели загружаются через `/ollama/models` - -### 3. Настройки AI ассистента - -**Путь**: `/settings/ai/assistant` -**Компонент**: `AiAssistantSettings.vue` - -**Основная форма настроек**: - -``` -┌──────────────────────────────────────────────────────────┐ -│ ИИ-ассистент: интеграция и настройки [×] │ -├──────────────────────────────────────────────────────────┤ -│ │ -│ Системный промт │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Вы — полезный ассистент. Отвечайте на русском. │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ 📋 Плейсхолдеры пользовательских таблиц │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Плейсхолдер | Столбец | Таблица │ │ -│ ├────────────────────────────────────────────────────┤ │ -│ │ { email } | Email | Контакты [Ред.] │ │ -│ │ { phone } | Телефон | Контакты [Ред.] │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ LLM-модель │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ qwen2.5:7b (ollama) ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Embedding-модель │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ mxbai-embed-large:latest (ollama) ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Выбранные RAG-таблицы │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ FAQ (ID: 1) ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Набор правил │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Гибридный режим ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ [Создать] [Редактировать] [Удалить] │ -│ │ -│ Описание: RAG + генерация при необходимости │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ { │ │ -│ │ "checkUserTags": true, │ │ -│ │ "searchRagFirst": true, │ │ -│ │ "generateIfNoRag": true │ │ -│ │ } │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Telegram-бот │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ @mybot ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Email для связи │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ support@example.com ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ 🔍 Настройки RAG поиска │ -│ (см. ниже) │ -│ │ -│ [Сохранить] [Отмена] │ -└──────────────────────────────────────────────────────────┘ -``` - ---- - -## Настройки RAG поиска - -**Блок в форме AI ассистента**: - -``` -┌──────────────────────────────────────────────────────────┐ -│ 🔍 Настройки RAG поиска │ -├──────────────────────────────────────────────────────────┤ -│ │ -│ Метод поиска │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Гибридный поиск ▼ │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Максимальное количество результатов поиска │ -│ ┌─────┐ │ -│ │ 5 │ │ -│ └─────┘ │ -│ │ -│ Порог релевантности (0.1) │ -│ ├───────────●──────────────────────────────────────┤ │ -│ 0.01 1.0 │ -│ │ -│ 🔑 Извлечение ключевых слов │ -│ ☑ Включить извлечение ключевых слов │ -│ │ -│ Минимальная длина слова: 3 │ -│ Максимальное количество ключевых слов: 10 │ -│ ☑ Удалять стоп-слова │ -│ │ -│ ⚖️ Веса поиска (для гибридного) │ -│ Семантический поиск: 70% │ -│ ├───────────────●────────────────────────────────┤ │ -│ │ -│ Поиск по ключевым словам: 30% │ -│ ├───────●────────────────────────────────────────┤ │ -│ │ -│ ⚙️ Дополнительные настройки │ -│ ☑ Нечеткий поиск │ -│ ☑ Стемминг слов │ -│ ☐ Поиск синонимов │ -│ │ -└──────────────────────────────────────────────────────────┘ -``` - -**Параметры RAG настроек**: - -| Параметр | Тип | Значение по умолчанию | Описание | -|----------|-----|-----------------------|----------| -| `searchMethod` | `string` | `"hybrid"` | Метод поиска: `semantic`, `keyword`, `hybrid` | -| `maxResults` | `number` | `5` | Максимальное количество результатов (1-20) | -| `relevanceThreshold` | `number` | `0.1` | Порог релевантности (0.01-1.0) | -| `keywordExtraction.enabled` | `boolean` | `true` | Включить извлечение ключевых слов | -| `keywordExtraction.minWordLength` | `number` | `3` | Минимальная длина слова (2-10) | -| `keywordExtraction.maxKeywords` | `number` | `10` | Максимальное количество ключевых слов (5-20) | -| `keywordExtraction.removeStopWords` | `boolean` | `true` | Удалять стоп-слова | -| `searchWeights.semantic` | `number` | `70` | Вес семантического поиска (%) | -| `searchWeights.keyword` | `number` | `30` | Вес поиска по ключевым словам (%) | -| `advanced.enableFuzzySearch` | `boolean` | `true` | Нечеткий поиск | -| `advanced.enableStemming` | `boolean` | `true` | Стемминг слов | -| `advanced.enableSynonyms` | `boolean` | `false` | Поиск синонимов | - -**Сохранение на Backend**: - -```javascript -const settingsToSave = { ...settings.value }; -settingsToSave.ragSettings = ragSettings.value; - -await axios.put('/settings/ai-assistant', settingsToSave); -``` - ---- - -## Правила AI (Rules) - -### Редактор правил - -**Компонент**: `RuleEditor.vue` - -**Модальное окно**: - -``` -┌──────────────────────────────────────────────────────────┐ -│ Создать набор правил │ -├──────────────────────────────────────────────────────────┤ -│ │ -│ Название │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Строгий режим │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Описание │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Только ответы из базы знаний, без генерации │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ Правила (JSON) │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ { │ │ -│ │ "checkUserTags": true, │ │ -│ │ "searchRagFirst": true, │ │ -│ │ "generateIfNoRag": false │ │ -│ │ } │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ [Сохранить] [Отмена] │ -└──────────────────────────────────────────────────────────┘ -``` - -**Логика работы**: - -1. **Создание**: `POST /settings/ai-assistant-rules` с `{ name, description, rules }` -2. **Редактирование**: `PUT /settings/ai-assistant-rules/:id` с `{ name, description, rules }` -3. **Валидация**: Проверка JSON перед сохранением - -```javascript -async function save() { - let rules; - try { - rules = JSON.parse(rulesJson.value); - } catch (e) { - error.value = 'Ошибка в формате JSON!'; - return; - } - - if (props.rule && props.rule.id) { - await axios.put(`/settings/ai-assistant-rules/${props.rule.id}`, { name, description, rules }); - } else { - await axios.post('/settings/ai-assistant-rules', { name, description, rules }); - } - - emit('close', true); -} -``` - -### Примеры правил - -#### 1. Строгий режим (только RAG) - -```json -{ - "checkUserTags": true, - "searchRagFirst": true, - "generateIfNoRag": false, - "maxTokens": 300 -} -``` - -**Применение**: Когда нужны только точные ответы из базы знаний. - -#### 2. Гибридный режим (RAG + генерация) - -```json -{ - "checkUserTags": true, - "searchRagFirst": true, - "generateIfNoRag": true, - "temperature": 0.7, - "maxTokens": 500 -} -``` - -**Применение**: Баланс между точностью и гибкостью. - -#### 3. Креативный режим - -```json -{ - "checkUserTags": false, - "searchRagFirst": false, - "generateIfNoRag": true, - "temperature": 0.9, - "maxTokens": 1000, - "customInstructions": "Будьте креативны и дружелюбны" -} -``` - -**Применение**: Для общения с пользователями, когда нужна более свободная генерация. - ---- - -## Мониторинг системы - -**Компонент**: `SystemMonitoring.vue` - -**Интерфейс мониторинга**: - -``` -┌──────────────────────────────────────────────────────────┐ -│ 🔍 Мониторинг системы │ -│ [🔄 Обновить статус] Последнее обновление: 12:34:56 │ -├──────────────────────────────────────────────────────────┤ -│ │ -│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ -│ │ ● Backend │ │ ● Postgres │ │ ● Ollama │ │ -│ │ │ │ │ │ │ │ -│ │ Статус: │ │ Статус: │ │ Статус: │ │ -│ │ Работает │ │ Работает │ │ Работает │ │ -│ │ │ │ │ │ Модели: 3 │ │ -│ └──────────────┘ └──────────────┘ └──────────────┘ │ -│ │ -│ ┌──────────────┐ │ -│ │ ● Vector │ │ -│ │ Search │ │ -│ │ │ │ -│ │ Статус: │ │ -│ │ Работает │ │ -│ └──────────────┘ │ -│ │ -│ 🧠 Тест RAG-функциональности │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Выберите RAG-таблицу: │ │ -│ │ FAQ (ID: 1) ▼ [🔄] │ │ -│ └────────────────────────────────────────────────────┘ │ -│ │ -│ ┌────────────────────────────────────────────────────┐ │ -│ │ Как работает ИИ-ассистент? │ │ -│ └────────────────────────────────────────────────────┘ │ -│ [Тестировать RAG] │ -│ │ -│ 🔍 Ищем ответ в базе знаний... │ -│ ├──────────────────────────●───────────────────────┤ │ -│ 75% │ -│ │ -│ ✅ Успешно! │ -│ Таблица: FAQ │ -│ Вопрос: "Как работает ИИ-ассистент?" │ -│ Ответ: "ИИ-ассистент использует..." │ -│ Score: -120 │ -│ │ -└──────────────────────────────────────────────────────────┘ -``` - -### Статусы сервисов - -**Backend**: `GET /monitoring` - -```json -{ - "services": { - "backend": { - "status": "ok" - }, - "postgres": { - "status": "ok" - }, - "ollama": { - "status": "ok", - "models": 3 - }, - "vectorSearch": { - "status": "ok" - } - } -} -``` - -**Цвета статусов**: -- 🟢 `ok` / `healthy` — Зеленый -- 🟡 `warning` — Желтый -- 🔴 `error` — Красный -- ⚫ `unknown` — Серый - -### Тест RAG - -**Логика теста**: - -1. **Выбор таблицы**: Загружаются все таблицы с `is_rag_source_id === 1` -2. **Ввод вопроса**: Пользователь вводит тестовый вопрос -3. **Запрос**: `POST /rag/answer` с `{ tableId, question, product: null }` -4. **Прогресс-бар**: Симуляция прогресса для UX -5. **Результат**: Отображение ответа и score - -```javascript -const testRAG = async () => { - ragTesting.value = true; - ragResult.value = null; - ragProgress.value = 0; - ragStatus.value = '🔍 Ищем ответ в базе знаний...'; - - const progressInterval = setInterval(() => { - if (ragProgress.value < 90) { - ragProgress.value += Math.random() * 15; - } - }, 1000); - - try { - ragStatus.value = '🤖 Генерируем ответ с помощью ИИ...'; - - const response = await axios.post('/rag/answer', { - tableId: selectedRagTable.value, - question: ragQuestion.value, - product: null - }); - - clearInterval(progressInterval); - ragProgress.value = 100; - ragStatus.value = '✅ Готово!'; - - ragResult.value = { - success: true, - answer: response.data.answer, - score: response.data.score - }; - } catch (error) { - clearInterval(progressInterval); - ragProgress.value = 0; - - ragResult.value = { - success: false, - error: error.response?.data?.error || error.message - }; - } - - ragTesting.value = false; -}; -``` - ---- - -## Заключение - -Система настройки AI ассистента в DLE — это **комплексная платформа** для управления: - -✅ **AI провайдерами** (OpenAI, Anthropic, Google, Ollama) -✅ **Настройками ассистента** (промты, модели, RAG-таблицы) -✅ **Правилами поведения** (JSON конфигурация) -✅ **Интеграциями** (Email, Telegram) -✅ **RAG конфигурацией** (гибридный поиск, ключевые слова) -✅ **Мониторингом** (статусы сервисов, тестирование) - -Все настройки **зашифрованы** (AES-256), имеют **детальные права доступа** (только админы), и предоставляют **гибкую конфигурацию** для различных сценариев использования. - ---- - -**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.** - -**Версия документа**: 1.0.0 -**Дата создания**: October 25, 2025 -**Статус**: Временный (для внутреннего использования) - diff --git a/docs/ai-assistant.md b/docs/ai-assistant.md index cf94335..c0d9467 100644 --- a/docs/ai-assistant.md +++ b/docs/ai-assistant.md @@ -2310,184 +2310,27 @@ A/B тест матрица: ## Настройка и интеграция -### Технические требования +**Что нужно для запуска:** +- ✅ Установить DLE (см. [Инструкцию по установке](./setup-instruction.md)) +- ✅ Запустить Ollama и установить модели +- ✅ Создать базу знаний (FAQ, поставщики, HR) +- ✅ Настроить AI ассистента под ваш бизнес +- ✅ Интегрировать с Telegram/Email (опционально) -**Минимальные:** -- RAM: 8 GB (для Ollama) -- CPU: 4 ядра -- Диск: 50 GB (для AI моделей) -- Сеть: стабильное подключение +**Время настройки:** +- 🚀 **Быстрый старт**: 20-30 минут (базовый FAQ) +- ⚙️ **Полная настройка**: 1-2 часа (все возможности) -**Рекомендуемые:** -- RAM: 16 GB+ -- CPU: 8+ ядер -- Диск: 100 GB SSD -- GPU: NVIDIA (для ускорения) - -### Быстрый старт - -#### Шаг 1: Установка моделей - -```bash -# DLE автоматически скачивает модели при первом запуске - -docker-compose up -d ollama - -# Проверка статуса -docker logs dapp-ollama - -# Ожидайте: "Все модели загружены! Система готова" -``` - -#### Шаг 2: Создание базы знаний - -```javascript -// Веб-интерфейс: Настройки → AI Ассистент → База знаний - -1. Нажмите "Добавить вопрос" -2. Заполните: - - Вопрос: "Как вернуть товар?" - - Ответ: "Возврат возможен в течение 14 дней..." - - Теги: #возврат, #гарантия - - Продукт: [Выберите продукт или оставьте "Все"] - - Приоритет: Высокий -3. Сохраните - -Повторите для всех частых вопросов (рекомендуется 50-100) -``` - -#### Шаг 3: Интеграция с чатами - -```javascript -// Telegram бот -Настройки → Интеграции → Telegram -1. Получите токен от @BotFather -2. Вставьте токен -3. Включите "Использовать AI для ответов" -4. Настройте приветствие -5. Сохраните - -// Чат на сайте -Настройки → Виджеты → Чат -1. Скопируйте код виджета -2. Вставьте на сайт перед -3. AI автоматически отвечает на вопросы -``` - -#### Шаг 4: Настройка под ваш бизнес - -``` -Настройки → AI Ассистент → Персонализация - -1. Тон общения: - [x] Формальный [ ] Дружеский - -2. Язык: - [x] Русский [x] English - -3. Приоритеты: - [x] Скорость ответа - [x] Точность - [ ] Креативность - -4. Автоматические действия: - [x] Создавать тикеты для сложных вопросов - [x] Уведомлять операторов - [x] Собирать обратную связь - -5. Обучение: - [x] Учиться на новых диалогах - [x] Запрашивать подтверждение для неуверенных ответов -``` - -### Обучение AI на ваших данных - -```python -# Импорт существующих данных - -1. Экспорт из вашей CRM/базы: - - Часто задаваемые вопросы - - История чатов - - Email-переписка - - Документация - -2. Формат CSV: - question,answer,tags,product,priority - "Как вернуть товар?","Возврат в течение 14 дней...",возврат;гарантия,all,high - -3. Импорт в DLE: - AI Ассистент → Импорт → Выберите CSV - -4. Проверка: - AI анализирует и предлагает улучшения - -5. Активация: - AI начинает использовать новые знания немедленно -``` - -### Мониторинг и улучшение - -``` -Аналитика AI: - -┌─────────────────────────────────────────┐ -│ Производительность за месяц │ -├─────────────────────────────────────────┤ -│ Запросов обработано: 15,420 │ -│ Ответов из кэша: 8,750 (57%) │ -│ Новых ответов: 6,670 (43%) │ -│ │ -│ Средняя скорость: │ -│ • Кэш: 48ms ⚡ │ -│ • Новый: 3.2s 🤔 │ -│ │ -│ Точность: 94% ✅ │ -│ • Правильные ответы: 14,495 │ -│ • Требовалось уточнение: 925 │ -│ │ -│ Удовлетворенность: 4.7/5 ⭐⭐⭐⭐⭐ │ -├─────────────────────────────────────────┤ -│ Топ-5 вопросов без ответа: │ -│ 1. "Когда будет новая версия?" (15×) │ -│ 2. "Работает ли с MacOS M1?" (12×) │ -│ 3. "Есть ли API?" (9×) │ -│ 4. "Как интегрировать с X?" (7×) │ -│ 5. "Скидки для студентов?" (6×) │ -│ │ -│ 💡 Рекомендация: Добавить эти вопросы │ -│ в базу знаний │ -└─────────────────────────────────────────┘ - -[Добавить в базу] [Экспортировать отчет] -``` - ---- - -## Заключение - -### Ключевые преимущества AI Ассистента DLE - -1. **💰 Огромная экономия**: До $483,600/год -2. **🏠 100% конфиденциальность**: Все данные на вашем сервере -3. **⚡ Молниеносная скорость**: Ответы за 50ms (кэш) -4. **🎯 Персонализация**: Обучается на ваших данных -5. **🔄 24/7 доступность**: Никогда не спит, не устает -6. **📈 Масштабируемость**: От 10 до 10,000 запросов/день -7. **🌍 Многоязычность**: Русский, английский и др. - -### Кому подходит - -✅ **E-commerce** - обслуживание клиентов, контент -✅ **B2B компании** - работа с поставщиками, партнерами -✅ **Стартапы** - все функции при минимальном бюджете -✅ **Enterprise** - масштабная автоматизация -✅ **Агентства** - быстрое создание контента -✅ **SaaS** - поддержка пользователей, документация +**Результат:** +- 🤖 Работающий AI ассистент 24/7 +- 📚 База знаний для ответов клиентам +- 🔍 Векторный поиск по вашим данным +- 💰 Экономия до $483,600/год ### Следующие шаги 1. 📖 [Установите DLE](./setup-instruction.md) -2. 🤖 Настройте AI ассистента (5 минут) +2. 🤖 [Настройте AI ассистента](./setup-ai-assistant.md) 3. 📚 Загрузите базу знаний 4. 🚀 Начните экономить время и деньги! diff --git a/docs/application-description.md b/docs/application-description.md index 8f7bfa7..4d2bbf5 100644 --- a/docs/application-description.md +++ b/docs/application-description.md @@ -396,46 +396,18 @@ AI без лимитов: $0 ## 🛡️ Безопасность и защита -### Многоуровневая защита +> 💡 **Подробная информация**: См. [Безопасность DLE](./security.md) - там детально описаны все уровни защиты, сценарии атак и рекомендации по безопасности. -**Уровень 1: Сетевая безопасность** -- TLS 1.3 для всех соединений -- HTTPS обязателен в продакшене -- Firewall настройки -- DDoS защита через rate limiting +### Краткий обзор -**Уровень 2: Аутентификация** -- SIWE (Sign-In with Ethereum) - вход через кошелек -- express-session с PostgreSQL (сессии в БД) -- Nonce с шифрованием для безопасности -- Поддержка Email и Telegram аутентификации +**Многоуровневая защита DLE:** -**Уровень 3: Авторизация** -- Детальная система разрешений (20+ типов) -- Роли: Editor, ReadOnly, User -- Контроль доступа на уровне групп -- Токен-гейтинг (доступ только держателям токенов) - -**Уровень 4: Защита данных** -- AES-256 шифрование критичных данных -- Хэширование паролей (bcrypt) -- Защита от SQL-инъекций (параметризованные запросы) -- XSS защита -- CSRF токены -- Helmet.js для HTTP headers - -**Уровень 5: Блокчейн-защита** -- Токены нельзя украсть без голосования -- Требуется кворум для перевода токенов -- Timelock для критических операций (48ч) -- ReentrancyGuard от реентерабельности -- Flash-loan защита (снапшоты голосов) - -**Уровень 6: Мониторинг** -- Логирование всех действий -- Clean Logs система -- Алерты на подозрительную активность -- Audit trail для блокчейн-операций +✅ **Сетевая безопасность** - TLS 1.3, HTTPS, DDoS защита +✅ **Аутентификация** - SIWE (вход через кошелек), сессии в БД +✅ **Авторизация** - детальные разрешения (20+ типов), токен-гейтинг +✅ **Защита данных** - AES-256 шифрование, защита от SQL-инъекций +✅ **Блокчейн-защита** - токены нельзя украсть без голосования +✅ **Мониторинг** - логирование, алерты, audit trail ### Что если веб-приложение взломают? @@ -445,15 +417,13 @@ AI без лимитов: $0 **Защищено даже при полном взломе**: - 💰 Токены на кошельках - нельзя украсть без голосования -- 💼 Средства в Treasury - защищены смарт-контрактом +- 💼 Средства в Treasury - защищены смарт-контрактом - 🗳️ Право голоса - привязано к балансу токенов - 📜 Все решения - записаны на блокчейне **Управление через блокчейн-сканеры**: Вы можете управлять всем бизнесом напрямую через Etherscan, Polygonscan и другие, **полностью в обход веб-приложения**. -**Подробнее**: [Безопасность DLE](./security.md) - --- @@ -515,64 +485,35 @@ AI без лимитов: $0 ## 💳 Условия приобретения -### Лицензионная модель +> 💡 **Подробная информация**: См. [Условия обслуживания](./service-terms.md) - там детально описаны лицензионная модель, тарифы, гарантии и процесс приобретения. -**Бессрочная лицензия (Perpetual License)** -- Платите **один раз** - используйте **вечно** -- Полный доступ к исходному коду -- Бесплатные обновления пожизненно -- Право влиять на развитие продукта через голосование +### Краткий обзор -### Тарифы +**Бессрочная лицензия (Perpetual License)**: +- 💰 **Платите один раз** - используйте вечно +- 📄 **Полный исходный код** с документацией +- 🔄 **Бесплатные обновления** пожизненно +- 🗳️ **Право голоса** за развитие продукта +**Тарифы**: | Пакет | Цена | Голоса | Поддержка | |-------|------|--------|-----------| -| **Standard Support** | $1,000 USDT | 1 голос | Email, портал | -| **Priority Support** | $10,000 USDT | 10 голосов | Приоритет, чат 24/7 | +| **Standard Support** | $1,000 USDT | 1 голос | чат 24/7 | +| **Priority Support** | $10,000 USDT | 10 голосов | чат 24/7 | -*Цены указаны без учета налогов* - -### Что включено - -✅ **Бессрочная лицензия** на использование -✅ **Исходный код** с полной документацией -✅ **Бесплатные обновления** навсегда -✅ **Техническая поддержка** по email/портал -✅ **Токены управления** на блокчейне -✅ **Право голоса** за новые функции -✅ **Гарантия возврата 70%** при невыполнении обязательств - -### Токены и голосование - -Каждая лицензия связана с **токенами управления через смарт-контракт DLE**: -- **1 токен = 1 голос** за новые функции -- **10 токенов = 10 голосов** за развитие продукта -- Решения принимаются большинством голосов (51%+) -- Прозрачность: все голосования на блокчейне - -**Портал для токен-холдеров**: -- 🗳️ **Голосование**: https://hb3-accelerator.com/governance -- 📥 **Обновления**: https://hb3-accelerator.com/updates - -### Гарантии - -**Программа возврата 70%**: -Если в течение 5 лет мы не предоставим обещанные обновления, вы получите обратно 70% от стоимости лицензии. - -**SLA (для Priority Support)**: -- Критичные проблемы: ответ в течение 4 часов -- Важные проблемы: ответ в течение 24 часов -- Обычные вопросы: ответ в течение 48 часов - -### Как приобрести +**Что включено**: +✅ Бессрочная лицензия на использование +✅ Исходный код с полной документацией +✅ Бесплатные обновления навсегда +✅ Техническая поддержка +✅ Токены управления на блокчейне +✅ Гарантия возврата 70% +**Как приобрести**: 1. Свяжитесь с нами: info@hb3-accelerator.com 2. Получите реквизиты для оплаты (USDT) 3. Оплатите лицензию -4. Получите доступ к коду и документации -5. Получите токены DLE на ваш кошелек - -📖 **Полные условия**: [Условия приобретения и обслуживания](./service-terms.md) +4. Получите доступ к коду и токены DLE --- @@ -592,7 +533,7 @@ AI без лимитов: $0 **Общая информация**: - 📋 **[FAQ](./FAQ.md)** - часто задаваемые вопросы (11 разделов, 50+ вопросов) -- 📖 **[Индекс документации](./README.md)** - полный список всех документов +- 📖 **[Основной README](../README.md)** - полный список всех документов ### Поддержка и контакты diff --git a/docs/blockchain-integration-technical.md b/docs/blockchain-integration-technical.md index d8beee3..ea02e28 100644 --- a/docs/blockchain-integration-technical.md +++ b/docs/blockchain-integration-technical.md @@ -964,9 +964,22 @@ export default { ## Безопасность -### 1. Защита от реентерабельности +> 💡 **Подробная информация**: См. [Безопасность DLE](./security.md) - там детально описаны все уровни защиты, сценарии атак и рекомендации по безопасности. + +### Краткий обзор технических аспектов + +**Ключевые принципы безопасности смарт-контрактов:** +- 🔒 **ReentrancyGuard** - защита от реентерабельности +- 🚫 **Блокировка переводов** - токены передаются только через governance +- 📸 **Снапшоты голосов** - защита от flash-loan атак +- ✍️ **EIP-712 подписи** - поддержка контрактных кошельков +- ✅ **Валидация параметров** - проверка всех входных данных +- 💰 **Custom errors** - экономия gas при ошибках + +**Примеры реализации:** ```solidity +// Защита от реентерабельности import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; contract DLE is ReentrancyGuard { @@ -974,217 +987,35 @@ contract DLE is ReentrancyGuard { // Операция защищена от реентерабельности } } -``` - -### 2. Блокировка переводов токенов - -Токены управления **НЕ могут быть переведены** обычными способами: - -```solidity -error ErrTransfersDisabled(); -error ErrApprovalsDisabled(); +// Блокировка переводов токенов function transfer(address, uint256) public pure override returns (bool) { revert ErrTransfersDisabled(); } -function approve(address, uint256) public pure override returns (bool) { - revert ErrApprovalsDisabled(); -} -``` - -Передача возможна **только через голосование**: -```solidity -function _transferTokens(address _recipient, uint256 _amount) internal { - _transfer(address(this), _recipient, _amount); -} -``` - -### 3. Снапшоты голосов - -Используются **прошлые значения** для предотвращения flash-loans: - -```solidity +// Снапшоты голосов uint256 public snapshotTimepoint = block.number - 1; function vote(uint256 _proposalId, bool _support) external { uint256 votingPower = getPastVotes(msg.sender, snapshotTimepoint); require(votingPower > 0, "No voting power"); - // ... } ``` -### 4. EIP-712 подписи - -Поддержка **структурированных подписей** для контрактных кошельков: - -```solidity -bytes32 private constant EXECUTION_APPROVAL_TYPEHASH = keccak256( - "ExecutionApproval(uint256 proposalId,bytes32 operationHash,uint256 chainId,uint256 snapshotTimepoint)" -); - -function executeWithSignatures( - uint256 proposalId, - bytes32 operationHash, - address[] calldata signers, - bytes[] calldata signatures -) external nonReentrant { - // Проверка EIP-712 подписей - // Поддержка EIP-1271 для контрактных кошельков -} -``` - -### 5. Валидация параметров - -Все параметры проверяются перед использованием: - -```solidity -if (_moduleAddress == address(0)) revert ErrZeroAddress(); -if (balanceOf(msg.sender) == 0) revert ErrNotHolder(); -if (_duration < minVotingDuration) revert ErrTooShort(); -if (_duration > maxVotingDuration) revert ErrTooLong(); -if (!supportedChains[_chainId]) revert ErrUnsupportedChain(); -``` - -### 6. Custom errors - -Использование **custom errors** вместо `require` для экономии gas: - -```solidity -error ErrZeroAddress(); -error ErrNotHolder(); -error ErrAlreadyVoted(); -// ... и другие -``` - --- ## Практические примеры -### Пример 1: Создание DLE и деплой в несколько сетей +> 💡 **Подробные примеры и кейсы**: См. [Блокчейн для бизнеса](./blockchain-for-business.md) - там детально описаны реальные бизнес-кейсы, экономические расчеты и практические примеры использования DLE. -```bash -# 1. Настройка параметров в базе данных -# Через веб-интерфейс: Настройки → Блокчейн +### Краткий обзор технических примеров -# 2. Запуск мультичейн деплоя -cd backend -yarn deploy:multichain - -# 3. Результат: DLE развернут в Ethereum, Polygon и Arbitrum с одним адресом -``` - -### Пример 2: Добавление Timelock Module - -```javascript -// 1. Деплой модулей -yarn deploy:modules - -// 2. Создание предложения на добавление модуля -const dleContract = new ethers.Contract(dleAddress, dleAbi, signer); - -const operation = dleContract.interface.encodeFunctionData('_addModule', [ - ethers.id('TIMELOCK_MODULE'), - timelockModuleAddress -]); - -const tx = await dleContract.createProposal( - 'Добавить Timelock Module для защиты от мгновенных изменений', - 86400 * 7, // 7 дней голосования - operation, - 1, // Ethereum mainnet - [1, 137, 42161] // Исполнить во всех сетях -); - -await tx.wait(); -console.log('Предложение создано!'); - -// 3. Голосование токен-холдеров -await dleContract.vote(proposalId, true); // "За" - -// 4. Исполнение после окончания голосования -await dleContract.execute(proposalId); - -console.log('Timelock Module добавлен!'); -``` - -### Пример 3: Создание иерархического голосования - -```javascript -// DLE-A будет голосовать в DLE-B -const dleA = new ethers.Contract(dleAAddress, dleAbi, signer); -const hierarchicalModule = new ethers.Contract( - hierarchicalModuleAddress, - hierarchicalModuleAbi, - signer -); - -// 1. Добавить внешний DLE (DLE-B) в DLE-A -const operation1 = hierarchicalModule.interface.encodeFunctionData('addExternalDLE', [ - dleBAddress, - 'Company B DLE', - 'COMPB' -]); - -await dleA.createProposal( - 'Добавить DLE-B для участия в их голосованиях', - 86400 * 3, - operation1, - chainId, - [chainId] -); - -// 2. После одобрения, создать предложение в DLE-B от имени DLE-A -const operation2 = hierarchicalModule.interface.encodeFunctionData( - 'createProposalInExternalDLE', - [ - dleBAddress, - 'Предложение от DLE-A', - 86400, - operationBytes, - chainId - ] -); - -await dleA.createProposal( - 'Создать предложение в DLE-B', - 86400 * 3, - operation2, - chainId, - [chainId] -); - -console.log('Иерархическое голосование настроено!'); -``` - -### Пример 4: Управление Treasury - -```javascript -const dleContract = new ethers.Contract(dleAddress, dleAbi, signer); -const treasuryModule = new ethers.Contract( - treasuryModuleAddress, - treasuryModuleAbi, - signer -); - -// Перевести 1000 USDC из казны на маркетинг -const operation = treasuryModule.interface.encodeFunctionData('transferTokens', [ - usdcTokenAddress, - marketingWalletAddress, - ethers.parseUnits('1000', 6) // USDC has 6 decimals -]); - -await dleContract.createProposal( - 'Выделить 1000 USDC на маркетинговую кампанию Q1 2025', - 86400 * 14, // 14 дней голосования - operation, - chainId, - [chainId] -); - -console.log('Предложение на расход из казны создано!'); -``` +**Основные сценарии использования:** +1. **Мультичейн деплой** - развертывание DLE в нескольких сетях одновременно +2. **Добавление модулей** - расширение функциональности через голосование +3. **Иерархическое голосование** - DLE может голосовать в других DLE +4. **Управление казной** - распределение средств через голосование токен-холдеров --- ## Заключение diff --git a/docs/service-terms.md b/docs/service-terms.md index 63ad59b..4767def 100644 --- a/docs/service-terms.md +++ b/docs/service-terms.md @@ -218,7 +218,7 @@ ### 5.3. 📥 Платформа скачивания обновлений -**Адрес**: https://hb3-accelerator.com/updates +**Адрес**: https://hb3-accelerator.com/ Все держатели лицензий могут: - ✅ Скачивать все выпущенные версии приложения @@ -229,7 +229,7 @@ - 🪵 Видеть логи изменений (Changelog) **Требования для доступа:** -- Подключение кошелька с активной лицензией (NFT токен) +- Подключение кошелька с активной лицензией - Лицензия должна быть активна на момент скачивания ### 5.4. Поддержка версий @@ -282,7 +282,7 @@ ### 6.4. Процесс обращения в поддержку 1. Войти в приложение: https://hb3-accelerator.com/ -2. Перейти в раздел "Поддержка" или "Support" +2. Перейти в раздел "Предложения" 3. Создать новый тикет с описанием проблемы 4. Указать приоритет (система автоматически классифицирует) 5. Приложить логи, скриншоты и шаги воспроизведения @@ -356,7 +356,7 @@ Все прошедшие онлайн-сессии доступны в библиотеке для всех держателей лицензий: -**📚 Адрес**: https://hb3-accelerator.com/training-library +**📚 Адрес**: https://hb3-accelerator.com/ - 🎥 Видеозаписи всех групповых сессий - 📄 Презентации и материалы diff --git a/docs/setup-ai-assistant.md b/docs/setup-ai-assistant.md index 75c50d3..c33eef5 100644 --- a/docs/setup-ai-assistant.md +++ b/docs/setup-ai-assistant.md @@ -15,7 +15,9 @@ ✅ Автоматизация работы с поставщиками ✅ Система обучения персонала ✅ Векторный поиск по вашим данным -✅ Экономия **$483,600/год** на рутинных задачах +✅ Значительная экономия времени и ресурсов + +> 💡 **Экономический эффект**: См. [AI Ассистент](./ai-assistant.md) - там подробно описаны все возможности и расчеты экономии. --- @@ -619,18 +621,14 @@ AI: [Ищет в таблице Заказы, фильтрует по клиен ### Экономический эффект -При правильной настройке AI ассистента: +При правильной настройке AI ассистента вы получите: -| Направление | Экономия времени | Экономия в год | -|-------------|------------------|----------------| -| Обслуживание клиентов | 85% | $108,000 | -| Работа с поставщиками | 80% | $96,000 | -| Обучение персонала | 70% | $84,000 | -| Подготовка отчетов | 90% | $108,000 | -| Маркетинговый контент | 75% | $87,600 | -| **ИТОГО** | **82%** | **$483,600** | +✅ **Автоматизацию рутинных задач** - высвобождение времени для стратегии +✅ **Повышение качества обслуживания** - AI работает 24/7 без усталости +✅ **Снижение операционных расходов** - меньше персонала на рутинных задачах +✅ **Ускорение принятия решений** - мгновенный доступ к информации -> 💰 **ROI**: 48,360% (окупается за 1 день!) +> 💡 **Подробная информация**: См. [AI Ассистент - полное описание](./ai-assistant.md#экономический-эффект) - там детально описаны все возможности, кейсы применения и расчеты экономии. --- @@ -743,6 +741,176 @@ docker-compose logs ollama --- +## 🔧 Техническая документация (для разработчиков) + +### Архитектура системы 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