bot_tg/README.md

52 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sex Bomba TG Bot
Телеграм‑бот, который:
- вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (`/maket`);
- делает мемы из присланных фото (`/gen_mem Up:... Down:...`);
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`);
- умеет базарить (`/talk`).
## Запуск
```bash
docker-compose up --build
```
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон);
`LLAMA_API_URL` — адрес llama.cpp сервера (для `/talk`)
## Команды
- `/start` — отвечает кратко.
- `/help` — выводит подсказки и список макетов.
- `/maket <id> <текст>` — вписать текст в макет. Доступные: `1 — Владимир Владимирович Путин самый лучший президент` (737x414, точка 104,240).
- `/gen_mem Up:верх Down:низ` — прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down.
- `/break` — показывает, сколько минут до ближайшего перекура/идёт ли перекур.
- `/talk <сообщение>` — побазарить с ИИ. Работает через llama.cpp сервер.
## Макеты и шрифт
- Шрифт `impact.ttf` лежит в корне.
- Макеты в `maket/`, сейчас есть `1.png`. Добавляйте новые, прописав их в словаре `TEMPLATES` в `main.py`.
## Технологии
- Python 3.11, aiogram 3, Pillow.
- llama.cpp для ИИ-фич.
- Dockerfile + docker-compose для развёртывания.
## Кратко о логике
- `/maket` подбирает размер текста, чтобы уместить его в область макета.
- `/gen_mem` центрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой.
- `/break` считает по расписанию в `main.py` (словарь `SCHEDULE`).
- `/talk` шлёт запрос к llama.cpp серверу (`LLAMA_API_URL`), системный промпт задаёт стиль фени(Можно изменить).
## ИИ-модуль (`AI/talk_handler.py`)
Отдельный модуль, не трогает основной код. Подключается к llama.cpp серверу через OpenAI-совместимый API (`/v1/chat/completions`).
Настройка сервера:
1. Скачать модель: `wget https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf`
2. Запустить: `./llama-server -m model.gguf --host 0.0.0.0 --port 8080 -c 2048`
3. Прописать URL в `.env`: `LLAMA_API_URL=http://адрес:8080`