|
| 1 | +# Безумный Лис Бот  |
| 2 | + |
| 3 | +## Описание |
| 4 | +Данный бот способен считывать сообщения чата и подстраиваться под стиль сообщений участинков. |
| 5 | + |
| 6 | +## Версии |
| 7 | +В папке `./models/` можно найти нескольких моделей, реализающих данного бота: |
| 8 | +- `seq2seq` — seq2seq модель с применением Luong Attention Mechanism. Бот создан на основе [данного туториала](https://docs.pytorch.org/tutorials/beginner/chatbot_tutorial) |
| 9 | +- `transformer` — файн-тьюнинг [ai-forever/rugpt3small_based_on_gpt2](https://huggingface.co/ai-forever/rugpt3small_based_on_gpt2) |
| 10 | + |
| 11 | +## Обучение |
| 12 | + |
| 13 | + |
| 14 | +## Запуск |
| 15 | +Зависимости для сервера и телеграм-бота распологаются в `./requirements.txt` |
| 16 | + |
| 17 | +Зависимости для каждой модели распологаются в `./models/<НАЗВАНИЕ_МОДЕЛИ>/requirements.txt` |
| 18 | + |
| 19 | +Существует 2 способа запуска бота: |
| 20 | +### СПОСОБ 1 (Локальный запуск) |
| 21 | + - Настроить модель в файле `./bot_local.py` (на данный момент стоит seq2seq-версия) |
| 22 | + - Указать значения следующих переменных среды: |
| 23 | + - `TOKEN` — токен телеграм-бота |
| 24 | + - `BOT_USERNAME` — id бота |
| 25 | + - `CHAT_ID` — id чата, в котором находится бот |
| 26 | + - В случае использования seq2seq модели, указать в `CHECKPOINT_PATH` путь к архиву с чекпоинтом |
| 27 | + - Выполнить команду: `python bot_local.py` |
| 28 | +### СПОСОБ 2 (Сервер) |
| 29 | + - Склонировать репозиторий на удаленный сервер |
| 30 | + - В `./server.py` указать нужную модель (на данный момент стоит transformer-версия) |
| 31 | + - Запустить сервер командой `uvicorn server:app --host", "0.0.0.0", "--port", "<ПОРТ>"` |
| 32 | + - Также можно использовать данный Dockerfile (настроен для работы на huggingface spaces): |
| 33 | + |
| 34 | +```Dockerfile |
| 35 | +FROM python:3.12 |
| 36 | + |
| 37 | +RUN useradd -m -u 1000 user |
| 38 | +USER user |
| 39 | +ENV HOME=/home/user \ |
| 40 | + PATH=/home/user/.local/bin:$PATH |
| 41 | + |
| 42 | +WORKDIR $HOME/app |
| 43 | + |
| 44 | +COPY --chown=user . $HOME/app |
| 45 | + |
| 46 | +RUN pip install --no-cache-dir --upgrade -r ./requirements.txt |
| 47 | +RUN pip install --no-cache-dir -r models/transformer/requirements.txt |
| 48 | +RUN pip install --no-cache-dir -r models/seq2seq/requirements.txt |
| 49 | + |
| 50 | +EXPOSE 7860 |
| 51 | + |
| 52 | +CMD ["uvicorn", "server:app", "--host", "0.0.0.0", "--port", "7860"] |
| 53 | +``` |
| 54 | + |
| 55 | + - В файле `./bot_server.py` указать значения переменных среды (аналогично способу 1), а в функции `handel_response()` указать ссылку на веб-сервер |
0 commit comments