feat: новая функция

This commit is contained in:
2025-10-28 13:21:56 +03:00
parent 7a8affb26e
commit 03c4f6e8a2
9 changed files with 256 additions and 1866 deletions

View File

@@ -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