Auto-lawyer — это система на основе семантического поиска, разработанная для ответа на юридические вопросы жителям региона. Проект использует различные модели машинного обучения, такие как BM25, TF-IDF, SBERT и Sentence Transformers, чтобы находить наиболее подходящие ответы из заранее подготовленной базы знаний.
Auto-lawyer/
├── Demonstration.mp4 # Демонстрация работы тг-бота
├── README.md
├── LICENSE.md
├── benchmark_tests.py # Тестирование моделей по скорости
├── bot.py # Код Telegram-бота
├── metrics/ # Метрики оценки качества ответов
│ ├── __init__.py
│ ├── ground_truths.txt # Правильные ответы для тестирования
│ ├── questions.txt # Вопросы для тестирования
│ └── metrics.py # Вычисление метрик (MRR, F1)
├── metrics_tests.py # Запуск тестов с использованием метрик
├── models/ # Реализация моделей для поиска ответов
│ ├── __init__.py
│ ├── bm25_response_model.py # BM25 модель
│ ├── sbert_ru_response_model.py # SBERT модель
│ ├── sentence_transformer_response_model.py # Sentence Transformer
│ └── tf_idf_response_model.py # TF-IDF модель
├── pyproject.toml # Конфигурация проекта и зависимости
├── tree/ # Утилиты для построения дерева решений
│ ├── __init__.py
│ └── tree_builder.py # Построение дерева из структуры KnowledgeBase
└── KnowledgeBase/ # База знаний (структура директорий с .txt и .docx)
Для работы проекта необходим Python версии 3.9+.
poetry installили
poetry updateЕсли poetry не установлен, можно установить его через:
pip install poetryБот отвечает на вопросы пользователей, используя одну из моделей.
Чтобы запустить бота:
poetry run python bot.pyПеред запуском убедитесь, что в коде указан ваш Telegram API токен.
Тестирование проводится на основе заранее подготовленных вопросов (metrics/questions.txt) и правильных ответов (metrics/ground_truths.txt).
poetry run python metrics_tests.pyФайлы .txt и .docx в папке KnowledgeBase автоматически используются системой. Чтобы добавить новый раздел или ответ:
- Создайте новую папку или откройте существующую.
- Добавьте файл
.txtс описанием ответа. - При необходимости добавьте файлы
.docxили.jpg.
Пример структуры:
KnowledgeBase/
└── кредитные_каникулы/
├── условия.txt
└── документы.docx
| Модель | Описание |
|---|---|
| BM25 | Простая и быстрая модель на основе частот слов |
| TF-IDF | Векторизация текста с учетом важности слов |
| SBERT | Использование предобученных эмбеддингов BERT для семантического поиска |
| Sentence Transformers | Улучшенный SBERT, оптимизированный для поиска схожих фраз |
Apache License 2.0 . Подробнее см. в файле LICENSE.
Проект создан как выпускная квалификационная работа в рамках программы Samsung IT Academy.
Автор: z0tedd z0tedd@gmail.com