1
0
Fork 0
forked from zovos/bot_tg

Compare commits

..

No commits in common. "b5c6b35db0041d0b62d472531500f26d03fe78ea" and "65b34a65391ca44011a846dd274d79b1d031590a" have entirely different histories.

5 changed files with 40 additions and 0 deletions

2
.env Normal file
View file

@ -0,0 +1,2 @@
BOT_TOKEN=8488665890:AAH7FY5I2xzHhfOdxlzb11ewl2I-MMTH2-o
TZ=Europe/Moscow

View file

@ -5,5 +5,8 @@ COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY main.py impact.ttf ./
COPY maket ./maket
<<<<<<< HEAD
=======
COPY AI ./AI
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
CMD ["python", "main.py"]

View file

@ -3,8 +3,12 @@
Телеграм‑бот, который:
- вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (`/maket`);
- делает мемы из присланных фото (`/gen_mem Up:... Down:...`);
<<<<<<< HEAD
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`).
=======
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`);
- умеет базарить (`/talk`).
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
## Запуск
@ -12,8 +16,12 @@
docker-compose up --build
```
<<<<<<< HEAD
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон).
=======
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон);
`LLAMA_API_URL` — адрес llama.cpp сервера (для `/talk`)
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
## Команды
@ -22,7 +30,10 @@ docker-compose up --build
- `/maket <id> <текст>` — вписать текст в макет. Доступные: `1 — Владимир Владимирович Путин самый лучший президент` (737x414, точка 104,240).
- `/gen_mem Up:верх Down:низ` — прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down.
- `/break` — показывает, сколько минут до ближайшего перекура/идёт ли перекур.
<<<<<<< HEAD
=======
- `/talk <сообщение>` — побазарить с ИИ. Работает через llama.cpp сервер.
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
## Макеты и шрифт
@ -32,7 +43,10 @@ docker-compose up --build
## Технологии
- Python 3.11, aiogram 3, Pillow.
<<<<<<< HEAD
=======
- llama.cpp для ИИ-фич.
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
- Dockerfile + docker-compose для развёртывания.
## Кратко о логике
@ -40,6 +54,8 @@ docker-compose up --build
- `/maket` подбирает размер текста, чтобы уместить его в область макета.
- `/gen_mem` центрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой.
- `/break` считает по расписанию в `main.py` (словарь `SCHEDULE`).
<<<<<<< HEAD
=======
- `/talk` шлёт запрос к llama.cpp серверу (`LLAMA_API_URL`), системный промпт задаёт стиль фени(Можно изменить).
## ИИ-модуль (`AI/talk_handler.py`)
@ -50,3 +66,4 @@ docker-compose up --build
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`
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)

12
main.py
View file

@ -1,5 +1,8 @@
import asyncio
<<<<<<< HEAD
=======
from AI.talk_handler import handle_talk
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
import logging
import os
import re
@ -133,7 +136,10 @@ HINT_TEXT = (
f"• /maket «id» «текст» — доступные: {templates_list_text()} (1: 737x414, точка 104,240).\n"
"• /gen_mem Up:верх Down:низ — отправь с фото (как подпись) или ответом на фото.\n"
"• /break — узнать, сколько минут до перекура.\n"
<<<<<<< HEAD
=======
"• /talk [сообщение] — побазарить с ИИ на фене.\n"
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
"• /prices — старый способ цен.\n"
"• /fetch — свежие цены с x-server.\n"
"Подсказка: в группах команда должна быть слитно с ботом (/gen_mem@username)."
@ -579,7 +585,10 @@ def main():
BotCommand(command="prices", description="цены x-server"),
BotCommand(command="fetch", description="цены (новый источник)"),
BotCommand(command="zvetok", description="Цветянский бля"),
<<<<<<< HEAD
=======
BotCommand(command="talk", description="Побазарить"),
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
]
)
except Exception: # noqa: WPS440
@ -595,7 +604,10 @@ def main():
dp.message.register(handle_prices, Command("prices"))
dp.message.register(handle_fetch, Command("fetch"))
dp.message.register(handle_zvetok, Command("zvetok"))
<<<<<<< HEAD
=======
dp.message.register(handle_talk, Command("talk"))
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)

View file

@ -1,3 +1,9 @@
<<<<<<< HEAD
aiogram==3.4.1
pillow==10.3.0
requests==2.31.0
=======
aiogram>=3.4.1
pillow>=10.3.0
requests>=2.31.0
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)