Документация по функциям и выполненным изменениям
Система представляет собой корпоративный RAG-бот (Retrieval-Augmented Generation) для ответов на вопросы сотрудников на основе внутренней базы знаний. Система работает полностью локально без внешних API и использует семантический поиск для точных ответов.
Загрузка Q&A данных из JSON файлов, создание векторных представлений и сохранение в ChromaDB
Поиск релевантных ответов по смыслу запроса, а не только по ключевым словам
Автоматическое создание каталога тем, ключевых слов и метаданных из документов
Многоэтапная обработка: исправление опечаток, классификация намерений, расширение запросов
Определение и обработка разговорных запросов, не требующих поиска в базе знаний
Полное логирование запросов, ответов и метрик производительности
Поддержка ссылок на нормативные документы, ГОСТы и стандарты
Использование предвычисленных векторных представлений для ускорения обучения
Загрузка JSON файлов из директорий data/, data/normative/,
data/corporate/, data/qa/. Поддержка рекурсивного поиска в подпапках.
Извлечение тем, ключевых слов и метаданных из документов. Создание структурированного каталога для быстрого поиска и навигации по знаниям.
Анализ структуры данных, валидация формата, извлечение вопросов, ответов, тегов и метаданных.
Для Q&A данных чанкинг обычно не требуется, так как каждая запись уже является законченной единицей информации.
Преобразование данных в формат Document с расширенными метаданными. Поддержка форматов:
qa_enhanced, qa_combined, question_only, answer_only.
Создание векторных представлений текста с помощью HuggingFace моделей. Поддержка предвычисленных эмбеддингов для ускорения процесса.
Сохранение документов в ChromaDB. Режимы работы: recreate, append, update.
Тестовый семантический поиск для проверки качества обучения и корректности работы базы данных.
| Этап | Модуль | Описание |
|---|---|---|
0. Маршрутизация |
query_type_classifier |
Определение типа запроса: qa, hybrid, dialogue, reasoning, transformation, action |
1. Ранняя chit-chat проверка |
intent_classifier + chit_chat_handler |
Быстрая проверка на разговорные запросы |
2. Spell Correction |
spell_corrector |
Исправление опечаток в запросе |
3. Intent Classification |
intent_classifier |
Определение намерения: question, action, reference, chit_chat, general |
4. Query Rewriting |
query_rewriter |
Упрощение конструкций по правилам |
5. Query Expansion |
query_expander |
Добавление синонимов и доменных терминов |
6. Context Enrichment |
context_manager |
Добавление контекста из истории диалога |
7. Поздняя chit-chat проверка |
chit_chat_handler |
Повторная проверка после всех трансформаций |
8. Knowledge Presence Check |
knowledge_presence_checker |
Проверка наличия знаний по запросу |
9. Vector Search |
multi_vector_search |
Семантический поиск в векторной БД |
10. Deduplication & Scoring |
query_handler |
Удаление дубликатов и ранжирование результатов |
11. Response Summarization |
response_summarizer |
Формирование итогового ответа |
12. Hybrid LLM Interpretation |
chat_llm_handler |
Обработка через LLM для сложных случаев |
knowledge_catalogrecreate - пересоздание базы (удаляет старые данные)append - добавление новых документов к существующей базеupdate - обновление существующих документов по ID и добавление новыхqa_enhanced с поддержкой:
data/normative/ - нормативные федеральные документы, ГОСТы, стандартыdata/corporate/ - корпоративные документы, юридически значимые, контрактыdata/qa/ - ответы на вопросы, ссылающиеся на внутренние нормыembedding_config для согласованностиknowledge_config для каталога знаний| Модуль | Назначение |
|---|---|
train_bot.py |
Обучение бота на основе базы знаний Q&A |
simple_bot.py |
Диалоговый режим в консоли |
telegram_bot.py |
Telegram бот интерфейс |
query_handler.py |
Главный обработчик запросов, маршрутизация |
query_processor.py |
Многоэтапная обработка запросов |
query_type_classifier.py |
Классификация типов запросов |
intent_classifier.py |
Определение намерений пользователя |
spell_corrector.py |
Исправление опечаток |
query_rewriter.py |
Переписывание запросов |
query_expander.py |
Расширение запросов синонимами |
context_manager.py |
Управление контекстом диалога |
chit_chat_handler.py |
Обработка разговорных запросов |
knowledge_presence_checker.py |
Проверка наличия знаний по запросу |
knowledge_catalog.py |
Создание и управление каталогом знаний |
knowledge_tracker.py |
Отслеживание использования знаний |
multi_vector_search.py |
Многоуровневый векторный поиск |
response_summarizer.py |
Формирование итогового ответа |
chat_llm_handler.py |
Обработка через LLM |
similar_questions_finder.py |
Поиск похожих вопросов |
debug_bot.py |
Диагностика векторной базы |
test_bot.py |
Тестирование системы |
| Модуль | Назначение |
|---|---|
settings.py |
Базовые настройки путей и директорий |
embedding_config.py |
Настройки моделей эмбеддингов |
knowledge_config.py |
Настройки каталога знаний |
query_processing_config.py |
Настройки обработки запросов |
search_config.py |
Настройки поиска |