README.md
This commit is contained in:
133
README.md
133
README.md
@@ -8,16 +8,16 @@
|
||||
|
||||
**Архитектура**: платформа состоит из трех основных слоев:
|
||||
|
||||
1. **RAG-ядро (HTTP-сервис)** – центральный компонент, выполняющий все этапы обработки запросов: классификацию намерений, расширение запроса, гибридный поиск (dense + sparse) в Qdrant, переранжирование через локальный кросс-энкодер, синтез ответа через GigaChat, самокритику и перегенерацию. Ядро также управляет индексацией документов и хранением истории диалогов в PostgreSQL. RAG-ядро реализовано как отдельный HTTP-сервер (FastAPI + Uvicorn), что позволяет использовать его для любых клиентов (XMPP, Telegram, Mastodon, веб-интерфейс, системы аналитики).
|
||||
1. **RAG-ядро (HTTP-сервис)** — центральный компонент, выполняющий все этапы обработки запросов: классификацию намерений, расширение запроса, гибридный поиск (dense + sparse) в Qdrant, переранжирование через локальный кросс-энкодер, синтез ответа через GigaChat, самокритику и перегенерацию. Ядро также управляет индексацией документов и хранением истории диалогов в PostgreSQL. RAG-ядро реализовано как отдельный HTTP-сервер (FastAPI + Uvicorn), что позволяет использовать его для любых клиентов (XMPP, Telegram, Mastodon, веб-интерфейс, системы аналитики).
|
||||
|
||||
2. **Тонкие XMPP-боты-клиенты** – каждый профиль (методолог, коробочник, персональный ассистент) представляет собой отдельный XMPP-клиент, который подключается к ejabberd, обрабатывает команды, принимает файлы и пересылает запросы пользователей в RAG-ядро по HTTP. Боты не содержат RAG-логики, не имеют локальной БД или Qdrant, а только загружают свои промпты и передают их в запросах. Это делает их легковесными и независимыми.
|
||||
2. **Тонкие XMPP-боты-клиенты** — каждый профиль (методолог, коробочник, персональный ассистент) представляет собой отдельный XMPP-клиент, который подключается к ejabberd, обрабатывает команды, принимает файлы и пересылает запросы пользователей в RAG-ядро по HTTP. Боты не содержат RAG-логики, не имеют локальной БД или Qdrant, а только загружают свои промпты и передают их в запросах. Это делает их легковесными и независимыми.
|
||||
|
||||
3. **Внешние системы хранения и API**:
|
||||
|
||||
- **ejabberd** – XMPP-сервер (сообщения, MUC-комнаты, HTTP Upload).
|
||||
- **PostgreSQL** – централизованное хранилище метаданных документов, истории диалогов, прав доступа, списка комнат, шаблонов и оценок обратной связи.
|
||||
- **Qdrant** – векторная БД с двумя полями (dense, sparse) для гибридного поиска. Доступна только RAG-ядру.
|
||||
- **GigaChat API** – генерация текста и эмбеддингов. Вызовы осуществляются только из RAG-ядра, что позволяет централизованно управлять кэшированием и лимитами.
|
||||
- **ejabberd** — XMPP-сервер (сообщения, MUC-комнаты, HTTP Upload).
|
||||
- **PostgreSQL** — централизованное хранилище метаданных документов, истории диалогов, прав доступа, списка комнат, шаблонов и оценок обратной связи.
|
||||
- **Qdrant** — векторная БД с двумя полями (dense, sparse) для гибридного поиска. Доступна только RAG-ядру.
|
||||
- **GigaChat API** — генерация текста и эмбеддингов. Вызовы осуществляются только из RAG-ядра, что позволяет централизованно управлять кэшированием и лимитами.
|
||||
|
||||
**Философия**:
|
||||
|
||||
@@ -28,40 +28,40 @@
|
||||
|
||||
**Сервисы распределены по jails FreeBSD/Linux**:
|
||||
|
||||
- `rag-server` (Python 3.11/3.12) – HTTP-сервис RAG-ядра.
|
||||
- `metabot`, `korobot`, `persobot` – отдельные XMPP-клиенты (также на Python), которые общаются с RAG-ядром через HTTP.
|
||||
- `ejabberd`, `PostgreSQL`, `Qdrant` – внешние системы.
|
||||
- `rag-server` (Python 3.11/3.12) — HTTP-сервис RAG-ядра.
|
||||
- `metabot`, `korobot`, `persobot` — отдельные XMPP-клиенты (также на Python), которые общаются с RAG-ядром через HTTP.
|
||||
- `ejabberd`, `PostgreSQL`, `Qdrant` — внешние системы.
|
||||
|
||||
## 3. Уникальность решения
|
||||
|
||||
1. **Гибридный RAG (dense + sparse) с самокритикой и централизованным ядром** – не используется в корпоративных ботах массово. Коммерческие решения (Microsoft Copilot, IBM Watson) часто ограничиваются простым семантическим поиском без переранжирования и самокритики. Вынесение RAG-логики в отдельный HTTP-сервис позволяет легко масштабировать и подключать любые клиентские интерфейсы.
|
||||
1. **Гибридный RAG (dense + sparse) с самокритикой и централизованным ядром** — не используется в корпоративных ботах массово. Коммерческие решения часто ограничиваются простым семантическим поиском без переранжирования и самокритики. Вынесение RAG-логики в отдельный HTTP-сервис позволяет легко масштабировать и подключать любые клиентские интерфейсы.
|
||||
|
||||
2. **Персональный ассистент как часть экосистемы** – типичные персональные ассистенты не имеют доступа к внутренней базе знаний и не умеют отвечать на сложные вопросы по документам. Эфцекабот объединяет общие и персональные функции в едином RAG-ядре, при этом каждый бот-профиль использует свои промпты, что позволяет гибко настраивать поведение под конкретные задачи.
|
||||
2. **Персональный ассистент как часть экосистемы** — типичные персональные ассистенты не имеют доступа к внутренней базе знаний и не умеют отвечать на сложные вопросы по документам. Эфцекабот объединяет общие и персональные функции в едином RAG-ядре, при этом каждый бот-профиль использует свои промпты, что позволяет гибко настраивать поведение под конкретные задачи.
|
||||
|
||||
3. **Единая чат-среда и единый RAG-бэкенд для всех коммуникаций** – не требуется переключаться между десятками каналов (чат-боты в Telegram, веб-формы, почта). Весь документооборот, командировки, экспертные вопросы – в одном интерфейсе (корпоративном мессенджере), а при необходимости те же функции доступны через Telegram, Mastodon или веб-интерфейс благодаря универсальному HTTP API RAG-ядра.
|
||||
3. **Единая чат-среда и единый RAG-бэкенд для всех коммуникаций** — не требуется переключаться между десятками каналов (чат-боты в Telegram, веб-формы, почта). Весь документооборот, командировки, экспертные вопросы — в одном интерфейсе (корпоративном мессенджере), а при необходимости те же функции доступны через Telegram, или веб-интерфейс благодаря универсальному HTTP API RAG-ядра.
|
||||
|
||||
4. **Полный контроль над данными** – все компоненты развернуты внутри компании. Никакие документы или переписка не покидают периметр. История и документы хранятся только на серверах компании.
|
||||
4. **Полный контроль над данными** — все компоненты развернуты внутри компании. Никакие документы или переписка не покидают периметр. История и документы хранятся только на серверах компании.
|
||||
|
||||
5. **Открытая агентная архитектура** – можно подключить любого RPA, внешнее API, 1С, SAP, календарь, тревел-агрегатор без необходимости переписывать ядро бота – достаточно реализовать HTTP-клиент к RAG-ядру. Конкуренты, как правило, предлагают закрытые экосистемы.
|
||||
5. **Открытая агентная архитектура** — можно подключить любого RPA, внешнее API, 1С, SAP, календарь, тревел-агрегатор без необходимости переписывать ядро бота — достаточно реализовать HTTP-клиент к RAG-ядру. Конкуренты, как правило, предлагают закрытые экосистемы.
|
||||
|
||||
6. **Автоматическая индексация файлов в комнатах** – файл, попавший в групповой чат, автоматически становится доступен всей команде через RAG-ядро. Даже у Slack и Teams нет такой функции «из коробки».
|
||||
6. **Автоматическая индексация файлов в комнатах** — файл, попавший в групповой чат, автоматически становится доступен всей команде через RAG-ядро. Даже у Slack и Teams нет такой функции «из коробки».
|
||||
|
||||
## 4. Преимущества и недостатки работы бота в чате
|
||||
|
||||
#### Преимущества:
|
||||
- **Единое корпоративное окно** – пользователь не переключается между приложениями, получает экспертные ответы прямо в рабочем чате.
|
||||
- **Мгновенный обмен файлами** – встроен HTTP Upload, бот автоматически отправляет файлы в RAG-ядро для индексации (в т.ч. в групповых комнатах).
|
||||
- **Учет контекста беседы** – история диалога хранится централизованно в RAG-ядре, что обеспечивает единый контекст для всех клиентов (XMPP, Telegram, веб).
|
||||
- **Поддержка комнат (MUC)** – документы, загруженные в комнату, видны всем участникам, а переписка в комнате служит общим контекстом.
|
||||
- **Легковесные клиенты** – боты не содержат сложной RAG-логики, что упрощает их обновление и развертывание; все изменения в RAG вносятся в одном месте – RAG-ядре.
|
||||
- **Не требует установки уникального клиентского ПО** – достаточно любого XMPP-клиента (Conversations, Gajim, Pidgin) или работать через web-интерфейс (который также может использовать RAG-ядро).
|
||||
- **Полный контроль данных** – развертывание внутри периметра, никаких облачных сервисов.
|
||||
- **Единое корпоративное окно** — пользователь не переключается между приложениями, получает экспертные ответы прямо в рабочем чате.
|
||||
- **Мгновенный обмен файлами** — встроен HTTP Upload, бот автоматически отправляет файлы в RAG-ядро для индексации (в т.ч. в групповых комнатах).
|
||||
- **Учет контекста беседы** — история диалога хранится централизованно в RAG-ядре, что обеспечивает единый контекст для всех клиентов (XMPP, Telegram, веб).
|
||||
- **Поддержка комнат (MUC)** — документы, загруженные в комнату, видны всем участникам, а переписка в комнате служит общим контекстом.
|
||||
- **Легковесные клиенты** — боты не содержат сложной RAG-логики, что упрощает их обновление и развертывание; все изменения в RAG вносятся в одном месте — RAG-ядре.
|
||||
- **Не требует установки уникального клиентского ПО** — достаточно любого XMPP-клиента (Fluux, Conversations, Gajim, Pidgin) или работать через web-интерфейс (который также может использовать RAG-ядро).
|
||||
- **Полный контроль данных** — развертывание внутри периметра, никаких облачных сервисов.
|
||||
- **Поддерживаемые форматы**: DOCX, PDF, XLSX, PPTX, TXT, CSV, JSON, изображения (OCR), аудио (SaluteSpeech), архивы ZIP/7z.
|
||||
- **Размер загружаемого файла**: до 1 Гб.
|
||||
|
||||
#### Недостатки:
|
||||
- **Задержка** – добавлен сетевой вызов от бота к RAG-ядру (~1–2 мс внутри сети) и несколько вызовов GigaChat (3–10 секунд). Однако благодаря кэшированию (классификация, расширение, эмбеддинги) и локальному кросс-энкодеру итоговое время ответа в большинстве случаев составляет 3–7 секунд, что приемлемо для экспертной системы.
|
||||
- **Сложность отладки** – распределенная система (RAG-ядро, боты-клиенты, ejabberd, PostgreSQL, Qdrant) усложняет трассировку ошибок, но централизованное логирование и единая точка входа (RAG-ядро) упрощают мониторинг.
|
||||
- **Задержка** — добавлен сетевой вызов от бота к RAG-ядру (1–2 мс внутри сети) и несколько вызовов GigaChat (3–10 секунд). Однако благодаря кэшированию (классификация, расширение, эмбеддинги) и локальному кросс-энкодеру итоговое время ответа в большинстве случаев составляет 3–7 секунд, что приемлемо для экспертной системы.
|
||||
- **Сложность отладки** — распределенная система (RAG-ядро, боты-клиенты, ejabberd, PostgreSQL, Qdrant) усложняет трассировку ошибок, но централизованное логирование и единая точка входа (RAG-ядро) упрощают мониторинг.
|
||||
|
||||
## 5. Как чат-бот влияет на работу с GigaChat
|
||||
|
||||
@@ -111,9 +111,9 @@
|
||||
```
|
||||
|
||||
**Ключевые компоненты:**
|
||||
- **RAG-сервер** – единая точка входа для всех RAG-запросов. Содержит всю бизнес-логику (поиск, генерацию, самокритику, индексацию). Запускается как отдельный HTTP-сервис.
|
||||
- **Тонкие клиенты** – боты-профили (XMPP, Telegram, Mastodon и т.д.), которые только передают запросы в RAG-сервер и не содержат RAG-логики.
|
||||
- **Внешние системы** – PostgreSQL, Qdrant, GigaChat API – доступны только RAG-серверу.
|
||||
- **RAG-сервер** — единая точка входа для всех RAG-запросов. Содержит всю бизнес-логику (поиск, генерацию, самокритику, индексацию). Запускается как отдельный HTTP-сервис.
|
||||
- **Тонкие клиенты** — боты-профили (XMPP, Telegram, Mastodon и т.д.), которые только передают запросы в RAG-сервер и не содержат RAG-логики.
|
||||
- **Внешние системы** — PostgreSQL, Qdrant, GigaChat API — доступны только RAG-серверу.
|
||||
|
||||
### 6.2. Структура каталогов проекта
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
│ ├── LICENSE
|
||||
│ └── README.md
|
||||
│
|
||||
├── core/services/ # СеВИСЫ – долгоживущие компоненты
|
||||
├── core/services/ # СЕРВИСЫ – долгоживущие компоненты
|
||||
│ ├── __init__.py
|
||||
│ ├── postgres_service.py # Пул соединений с PostgreSQL
|
||||
│ ├── qdrant_service.py # Векторная БД (создание, поиск, удаление)
|
||||
@@ -145,7 +145,7 @@
|
||||
│ ├── giga_client.py # Клиент GigaChat (chat, upload_file)
|
||||
│ └── reranker_service.py # Кросс-энкодер для переранжирования (локально)
|
||||
│
|
||||
├── core/functions/ # НеАВИСИМЫЕ ЧИСТЫЕ ФУНКЦИИ
|
||||
├── core/functions/ # НЕЗАВИСИМЫЕ ФУНКЦИИ
|
||||
│ ├── __init__.py
|
||||
│ ├── intent_classify.py # Классификация намерений
|
||||
│ ├── expand_query.py # Расширение запроса (синонимы, аббревиатуры)
|
||||
@@ -167,7 +167,7 @@
|
||||
│ ├── subscription_handler.py # Подписки (roster subscription)
|
||||
│ └── health_handler.py # Очистка файлов, healthcheck БД/Qdrant
|
||||
│
|
||||
├── core/workers/ # ФОНОВЫЕ АСИНХРОННЫЕ ВОРКеЫ
|
||||
├── core/workers/ # ФОНОВЫЕ АСИНХРОННЫЕ ВОРКЕРЫ
|
||||
│ ├── __init__.py
|
||||
│ └── indexing_worker.py # Индексация файлов и URL (через HTTP в RAG-сервер)
|
||||
│
|
||||
@@ -175,8 +175,8 @@
|
||||
│ ├── __init__.py
|
||||
│ ├── registry.py # Регистрация команд, алиасы, подсказки
|
||||
│ ├── base.py # Базовый класс Command
|
||||
│ ├── info.py # !info – краткая справка
|
||||
│ ├── help.py # !help – подробная справка
|
||||
│ ├── info.py # !info — краткая справка
|
||||
│ ├── help.py # !help — подробная справка
|
||||
│ ├── learn.py # !learn, !stop_learn, !global_learn
|
||||
│ ├── kb.py # !clear, !global_clear, !kb
|
||||
│ ├── stats.py # !stats, !status, !clean
|
||||
@@ -186,7 +186,7 @@
|
||||
│ ├── create.py # !create (генерация по шаблону)
|
||||
│ └── global_remove.py # !global_remove – удаление глобального документа (админ)
|
||||
│
|
||||
├── core/tests/ # ЮНИТ-ТеТЫ (pytest)
|
||||
├── core/tests/ # ЮНИТ-ТЕСТЫ (pytest)
|
||||
│ ├── __init__.py
|
||||
│ ├── conftest.py # Фикстуры и моки
|
||||
│ ├── test_intent_classify.py # Тесты классификации намерений
|
||||
@@ -197,7 +197,7 @@
|
||||
│ ├── test_critique.py # Тесты самокритики
|
||||
│ └── test_check_spelling.py # Тесты проверки орфографии
|
||||
│
|
||||
├── core/utils/ # ВСПОМОГАТеЬНЫЕ УТИЛИТЫ
|
||||
├── core/utils/ # ВСПОМОГАТЕЛЬНЫЕ УТИЛИТЫ
|
||||
│ ├── __init__.py
|
||||
│ ├── config_loader.py # Загрузка core.conf + bot.conf, чтение .env
|
||||
│ ├── logger.py # Настройка логирования
|
||||
@@ -206,18 +206,17 @@
|
||||
│ ├── web_utils.py # Веб-скрапинг (fetch_any_url, crawl_url)
|
||||
│ └── arg_parser.py # Парсинг аргументов команд (--flag value)
|
||||
│
|
||||
├── core/xmpp/ # XMPP-КЛИеТ (тонкий)
|
||||
├── core/xmpp/ # XMPP-КЛИЕНТ (тонкий)
|
||||
│ ├── __init__.py
|
||||
│ └── client.py # Основной класс Bot (наследует slixmpp.ClientXMPP)
|
||||
│
|
||||
├── metabot/ # ПРОФИЛЬ: МеОДОЛОГ
|
||||
├── metabot/ # ПРОФИЛЬ: МЕТОДОЛОГ
|
||||
│ ├── bot.conf # Конфиг профиля (JID, БД, коллекция Qdrant, промпты)
|
||||
│ ├── bot.conf.sample # Пример конфига
|
||||
│ ├── metabot.rc.template # Шаблон rc-файла для запуска
|
||||
│ ├── schema.sql # Схема БД
|
||||
│ ├── LICENSE
|
||||
│ ├── LICENSE # Лицензия
|
||||
│ ├── README.md
|
||||
│ ├── prompts/ # ПРОМПТЫ ДЛЯ МеОДОЛОГА
|
||||
│ ├── prompts/ # ПРОМПТЫ ДЛЯ МЕТОДОЛОГА
|
||||
│ │ ├── system.txt # Роль, стиль, правила поведения (строгий RAG)
|
||||
│ │ ├── synthesis.txt # Шаблон синтеза ответа (контекст + запрос → ответ)
|
||||
│ │ ├── intent_classify.txt # Классификация намерений (FACT, PROCEDURE, METRICS и др.)
|
||||
@@ -232,7 +231,7 @@
|
||||
│ ├── data/ # Постоянные копии файлов
|
||||
│ └── temp/ # Временные файлы
|
||||
│
|
||||
├── korobot/ # ПРОФИЛЬ: КОРОБОЧНЫЕ РееИЯ
|
||||
├── korobot/ # ПРОФИЛЬ: КОРОБОЧНЫЕ РЕШЕИЯ
|
||||
│ ├── bot.conf
|
||||
│ ├── bot.conf.sample
|
||||
│ ├── korobot.rc.template
|
||||
@@ -254,14 +253,14 @@
|
||||
│ ├── data/
|
||||
│ └── temp/
|
||||
│
|
||||
├── persobot/ # ПРОФИЛЬ: ПеСОНАЛЬНЫЙ АССИСТеТ
|
||||
├── persobot/ # ПРОФИЛЬ: ПЕРСОНАЛЬНЫЙ АССИСТЕНТ
|
||||
│ ├── bot.conf
|
||||
│ ├── bot.conf.sample
|
||||
│ ├── persobot.rc.template
|
||||
│ ├── schema.sql
|
||||
│ ├── LICENSE
|
||||
│ ├── README.md
|
||||
│ ├── prompts/ # ПРОМПТЫ ДЛЯ ПеСОНАЛЬНОГО АССИСТеТА (аналогичный набор)
|
||||
│ ├── prompts/ # ПРОМПТЫ ДЛЯ ПЕРСОНАЛЬНОГО АССИСТЕНТА (аналогичный набор)
|
||||
│ │ ├── system.txt
|
||||
│ │ ├── synthesis.txt
|
||||
│ │ ├── intent_classify.txt
|
||||
@@ -276,12 +275,12 @@
|
||||
│ ├── data/
|
||||
│ └── temp/
|
||||
│
|
||||
├── venv/ # ВИРТУАЛЬНОЕ ОКРУЖеИЕ Python
|
||||
├── venv/ # ВИРТУАЛЬНОЕ ОКРУЖЕНИЕ Python
|
||||
│ ├── bin/ # Исполняемые файлы (python, pip, activate)
|
||||
│ ├── lib/ # Установленные библиотеки
|
||||
│ └── ...
|
||||
│
|
||||
└── .env # ПеееНЫЕ ОКРУЖеИЯ
|
||||
└── .env # ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
|
||||
├── XMPP_PASSWORD=...
|
||||
├── DB_PASSWORD=...
|
||||
├── GIGACHAT_API_KEY=...
|
||||
@@ -293,22 +292,22 @@
|
||||
```
|
||||
┌─────────────┐ HTTP ┌─────────────┐ SQL ┌─────────────┐
|
||||
│ Пользова- │ ──────────────▶│ RAG- │ ──────────────▶│ PostgreSQL │
|
||||
│ тель │ │ СеВе │ │ (история, │
|
||||
│ (XMPP) │ ◀──────────────│ (ядро) │ ◀──────────────│ документы) │
|
||||
│ тель │ │ сервер │ │ (история, │
|
||||
│ (XMPP) │ ◀──────────────│ (ядро) │ ◀──────────────│ документы) │
|
||||
└─────────────┘ └─────────────┘ └─────────────┘
|
||||
│ │ │
|
||||
│ XMPP │ HTTP (gRPC) │
|
||||
▼ ▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||||
│ ejabberd │ │ Qdrant │ │ GigaChat │
|
||||
│ (чат-серв.)│ │ (векторная │ │ (API) │
|
||||
└─────────────┘ │ БД) │ └─────────────┘
|
||||
│ ejabberd │ │ Qdrant │ │ GigaChat │
|
||||
│ (чат-серв.) │ │ (векторная │ │ (API) │
|
||||
└─────────────┘ │ БД) │ └─────────────┘
|
||||
│ └─────────────┘ │
|
||||
│ XMPP │ │
|
||||
▼ ▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||||
│ XMPP-бот │ │ FastEmbed │ │ Файлы │
|
||||
│ (тонкий) │ │ (локальный │ │ (диск) │
|
||||
│ (тонкий) │ │ (локальный │ │ (диск) │
|
||||
│ клиент │ │ кросс-энк.) │ └─────────────┘
|
||||
└─────────────┘ └─────────────┘
|
||||
```
|
||||
@@ -375,8 +374,8 @@ pytest tests/ -v
|
||||
|
||||
| Место | Функция | Обоснование |
|
||||
| ----- | ------- | ----------- |
|
||||
| **🥇 1** | Генерация по шаблону | Основной инструмент для создания коробочных решений – автоматизирует производство документов |
|
||||
| **🥈 2** | Гибридный RAG | Без него бот не может отвечать по документам – фундамент системы |
|
||||
| **🥇 1** | Генерация по шаблону | Основной инструмент для создания коробочных решений — автоматизирует производство документов |
|
||||
| **🥈 2** | Гибридный RAG | Без него бот не может отвечать по документам — фундамент системы |
|
||||
| **🥉 3** | Комнатные/глобальные БЗ | Обеспечивают коллективную работу над коробочными решениями |
|
||||
| **4** | Хирургическая замена | Ускоряет доработку документов, критично для подготовки финальных версий |
|
||||
| **5** | Проверка орфографии | Повышает качество исходящих документов |
|
||||
@@ -401,18 +400,18 @@ pytest tests/ -v
|
||||
**Что делает**:
|
||||
По команде `!create "Коробочное решение"` бот генерирует готовый коробочный документ на основе шаблона, заполняя все плейсхолдеры `{{...}}` данными из базы знаний комнаты. Шаблон содержит следующие разделы (соответствует файлу `Шаблон коробочного решения.docx`):
|
||||
|
||||
1. **Профиль коробочного решения** – параметры внедрения, ресурсы, сроки.
|
||||
2. **Актуальность коробочного решения** – потенциал повышения производительности, задачи, ожидаемые результаты.
|
||||
3. **Решаемая проблема** – типовой процесс (до улучшения), проблемные зоны, коренные причины.
|
||||
4. **Решение** – целевой процесс (после улучшения), детальное описание решений, результаты внедрения.
|
||||
5. **Алгоритм внедрения коробочного решения** – состав рабочей группы, последовательность этапов.
|
||||
6. **Риски** – описание рисков и мер по их снижению.
|
||||
7. **Термины, сокращения, определения** – глоссарий из документов комнаты.
|
||||
8. **Сопроводительные документы** – перечень приложений, шаблонов, регламентов.
|
||||
9. **Лучшие практики** – ссылки на реализованные аналогичные решения.
|
||||
1. **Профиль коробочного решения** — параметры внедрения, ресурсы, сроки.
|
||||
2. **Актуальность коробочного решения** — потенциал повышения производительности, задачи, ожидаемые результаты.
|
||||
3. **Решаемая проблема** — типовой процесс (до улучшения), проблемные зоны, коренные причины.
|
||||
4. **Решение** — целевой процесс (после улучшения), детальное описание решений, результаты внедрения.
|
||||
5. **Алгоритм внедрения коробочного решения** — состав рабочей группы, последовательность этапов.
|
||||
6. **Риски** — описание рисков и мер по их снижению.
|
||||
7. **Термины, сокращения, определения** — глоссарий из документов комнаты.
|
||||
8. **Сопроводительные документы** — перечень приложений, шаблонов, регламентов.
|
||||
9. **Лучшие практики** — ссылки на реализованные аналогичные решения.
|
||||
|
||||
**Уникальность**:
|
||||
Превращает бота из информатора в **инструмент производства готовых коробочных решений**. Достаточно один раз настроить шаблон, и бот будет генерировать документы на основе актуальных данных из базы знаний. Все, что требуется от пользователя – загрузить в комнату документы-источники (регламенты, отчеты, методики, ГОСТы, аналитические записки).
|
||||
Превращает бота из информатора в **инструмент производства готовых коробочных решений**. Достаточно один раз настроить шаблон, и бот будет генерировать документы на основе актуальных данных из базы знаний. Все, что требуется от пользователя — загрузить в комнату документы-источники (регламенты, отчеты, методики, ГОСТы, аналитические записки).
|
||||
|
||||
**Польза**:
|
||||
Автоматизация подготовки коробочных решений, сокращение времени на создание документов с 1-2 недель до 10-30 минут, исключение ошибок ручного ввода, единообразие документов, возможность быстрого масштабирования на любые типы организаций.
|
||||
@@ -460,14 +459,14 @@ pytest tests/ -v
|
||||
- Лучшие практики: `{{BEST_PRACTICE_1_LINK}}`, `{{BEST_PRACTICE_1_DESC}}`.
|
||||
|
||||
3. **Для каждого плейсхолдера выполняет поиск** в базе знаний комнаты (личные + комнатные + глобальные документы). Поиск использует:
|
||||
- Семантический поиск (dense-эмбеддинги) – для общих запросов.
|
||||
- Полнотекстовый поиск (MatchText) – для точных цитат и номеров пунктов.
|
||||
- Расширение запроса (query expansion) – добавляет синонимы и аббревиатуры.
|
||||
- Переранжирование (кросс-энкодер) – отбирает только релевантные фрагменты.
|
||||
- Семантический поиск (dense-эмбеддинги) — для общих запросов.
|
||||
- Полнотекстовый поиск (MatchText) — для точных цитат и номеров пунктов.
|
||||
- Расширение запроса (query expansion) — добавляет синонимы и аббревиатуры.
|
||||
- Переранжирование (кросс-энкодер) — отбирает только релевантные фрагменты.
|
||||
|
||||
4. **Формирует промпт для GigaChat** с инструкцией заполнить плейсхолдер на основе найденных фрагментов. Промпт содержит контекст из фрагментов документов и сам плейсхолдер.
|
||||
|
||||
5. **Генерирует значение для каждого плейсхолдера** – например, для `{{TYPICAL_PROBLEM_DESCRIPTION}}` GigaChat напишет: «В региональной системе наблюдается дефицит сотрудников с профильным образованием (только 30% из 100), нерегулярное планирование, отсутствие единой методики оценки компетенций».
|
||||
5. **Генерирует значение для каждого плейсхолдера** — например, для `{{TYPICAL_PROBLEM_DESCRIPTION}}` GigaChat напишет: «В региональной системе наблюдается дефицит сотрудников с профильным образованием (только 30% из 100), нерегулярное планирование, отсутствие единой методики оценки компетенций».
|
||||
|
||||
6. **Заменяет плейсхолдеры в копии шаблона**, сохраняя все форматирование (жирный шрифт, курсив, цвета, таблицы, колонтитулы). Замена выполняется с учетом возможного разбиения текста на несколько `runs` в DOCX, что повышает точность.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user