Skip to content

Samsung 2025 graduation project. This project implements a system for automatically answering law questions. It uses machine learning models (BM25, TF-IDF, SBERT, Sentence Transformers) to find the most relevant answers in a pre-prepared knowledge base.

License

Notifications You must be signed in to change notification settings

z0tedd/Auto-lawyer

Repository files navigation

Auto-lawyer

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

Функционал

1. Telegram-бот

Бот отвечает на вопросы пользователей, используя одну из моделей.
Чтобы запустить бота:

poetry run python bot.py

Перед запуском убедитесь, что в коде указан ваш Telegram API токен.


2. Запуск тестов и метрик

Тестирование проводится на основе заранее подготовленных вопросов (metrics/questions.txt) и правильных ответов (metrics/ground_truths.txt).

Запуск теста модели

poetry run python metrics_tests.py

Добавление новой информации

Файлы .txt и .docx в папке KnowledgeBase автоматически используются системой. Чтобы добавить новый раздел или ответ:

  1. Создайте новую папку или откройте существующую.
  2. Добавьте файл .txt с описанием ответа.
  3. При необходимости добавьте файлы .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

About

Samsung 2025 graduation project. This project implements a system for automatically answering law questions. It uses machine learning models (BM25, TF-IDF, SBERT, Sentence Transformers) to find the most relevant answers in a pre-prepared knowledge base.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published