# Загрузка пакета в репозиторий
Более полная [инструкция](https://dev.to/arnu515/create-a-pypi-pip-package-test-it-and-publish-it-using-github-actions-part-1-3cp8)

Перед загрузкой пакета необходимо зарегистрироваться на [PyPi](https://pypi.org/account/register/) и 
написать в discord свой ник чтобы я добавил в соавторы. 

Далее необходимо установить все зависимости:

```commandline
pip install twine wheel
```

Для создания пакета необходимо воспользоваться командой (**перед этим удалите все старые генерации пакетов**):
```commandline
python3 setup.py sdist bdist_wheel
```

## Загрузка пакета в PyPI
Для загрузки пакета необходимо воспользоваться командой:

```commandline
python3 -m twine upload dist/*
```
Далее будут запрошены логин и пароль, вместо логина можно указать `__token__`, а вместо пароля `API-токен`, 
который можно получить в личном кабинете PyPi.

Twine также поддерживает настройку с помощью переменных среды. 
Поэтому параметры авторизации можно передать через переменные среды:
* `TWINE_USERNAME` - имя пользователя, которое будет использоваться для аутентификации в репозитории.
* `TWINE_PASSWORD` - пароль, используемый для аутентификации в репозитории.

# Генерация документации
Для генерации документации воспользуйтесь командой:
```commandline
bash tools/run_docsgen.sh
```
Будет запущен docker-контейнер, который сгенерирует документацию в папку `docs`.

# Улучшения

Что можно сделать (идеи приветствуются):

- [X] Исправить подсчет метрик под документы разной релевантности
- [ ] Внедрить модель https://huggingface.co/cross-encoder/ms-marco-MiniLM-L-6-v2
- [ ] Придумать дополнительные метрики
- [X] Завернуть все в пакет
- [X] Написать тесты, workflows