Это микро-фреймворк, позволяющий предельно легко обучить модель, способную классифицировать образцы текста. С помощью этой модели можно реализовать элементарную логику ответов на известные типы обращений в чате или в трекере задач.
Возможности:
- Получение образцов текста для разметки из dump-файла telegram методом кластеризации.
- Few-shot обучение модели с использованием библиотеки Setfit.
- Тест модели на образцах из текстового файла.
- Тест модели на dump-файле телеграм-чата.
- Веб сервер, выполняющий классификацию передаваемых строк и отвечающий на них.
pip install pipenv
pipenv install
pipenv run python main.py -m cluster -tf test_dump.json -v
3. Подготовка нужных категорий в директории ./samles (удаление стоп-слов, мусорных строк, удаление, объединение файлов).
pipenv run python main.py -m train -s ./samples -f model.joblib -v
pipenv run python main.py -m test -s ./samples -f model.joblib -v
pipenv run python main.py -m history -f model.joblib -dl 01-01-2023 -tf test_dump.json
pipenv run python main.py -m serve -f model.joblib -v
curl -X POST "http://localhost:8080/cats" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"text\": [\"курьер не может запустить приложение\", \"приложение зависло\", \"смена не открывается\", \"какая-то ерунда\"]}"
Результат:
{"category": ["courier_app_problem", "courier_app_problem", "open_shift", "other"]}