forked from zovos/bot_tg
Compare commits
No commits in common. "65b34a65391ca44011a846dd274d79b1d031590a" and "b5c6b35db0041d0b62d472531500f26d03fe78ea" have entirely different histories.
65b34a6539
...
b5c6b35db0
5 changed files with 0 additions and 40 deletions
2
.env
2
.env
|
|
@ -1,2 +0,0 @@
|
||||||
BOT_TOKEN=8488665890:AAH7FY5I2xzHhfOdxlzb11ewl2I-MMTH2-o
|
|
||||||
TZ=Europe/Moscow
|
|
||||||
|
|
@ -5,8 +5,5 @@ COPY requirements.txt ./
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
COPY main.py impact.ttf ./
|
COPY main.py impact.ttf ./
|
||||||
COPY maket ./maket
|
COPY maket ./maket
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
COPY AI ./AI
|
COPY AI ./AI
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
CMD ["python", "main.py"]
|
CMD ["python", "main.py"]
|
||||||
|
|
|
||||||
17
README.md
17
README.md
|
|
@ -3,12 +3,8 @@
|
||||||
Телеграм‑бот, который:
|
Телеграм‑бот, который:
|
||||||
- вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (`/maket`);
|
- вписывает текст шрифтом Impact (белый с чёрной обводкой) в макеты (`/maket`);
|
||||||
- делает мемы из присланных фото (`/gen_mem Up:... Down:...`);
|
- делает мемы из присланных фото (`/gen_mem Up:... Down:...`);
|
||||||
<<<<<<< HEAD
|
|
||||||
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`).
|
|
||||||
=======
|
|
||||||
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`);
|
- подсказывает, сколько минут до перекура по заданному расписанию (`/break`);
|
||||||
- умеет базарить (`/talk`).
|
- умеет базарить (`/talk`).
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
||||||
## Запуск
|
## Запуск
|
||||||
|
|
||||||
|
|
@ -16,12 +12,8 @@
|
||||||
docker-compose up --build
|
docker-compose up --build
|
||||||
```
|
```
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон).
|
|
||||||
=======
|
|
||||||
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон);
|
Переменные окружения: задайте `BOT_TOKEN` в `.env` (уже добавлен шаблон);
|
||||||
`LLAMA_API_URL` — адрес llama.cpp сервера (для `/talk`)
|
`LLAMA_API_URL` — адрес llama.cpp сервера (для `/talk`)
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
||||||
## Команды
|
## Команды
|
||||||
|
|
||||||
|
|
@ -30,10 +22,7 @@ docker-compose up --build
|
||||||
- `/maket <id> <текст>` — вписать текст в макет. Доступные: `1 — Владимир Владимирович Путин самый лучший президент` (737x414, точка 104,240).
|
- `/maket <id> <текст>` — вписать текст в макет. Доступные: `1 — Владимир Владимирович Путин самый лучший президент` (737x414, точка 104,240).
|
||||||
- `/gen_mem Up:верх Down:низ` — прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down.
|
- `/gen_mem Up:верх Down:низ` — прислать с фото (подпись) или ответом на фото. Можно указывать только Up или только Down.
|
||||||
- `/break` — показывает, сколько минут до ближайшего перекура/идёт ли перекур.
|
- `/break` — показывает, сколько минут до ближайшего перекура/идёт ли перекур.
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
- `/talk <сообщение>` — побазарить с ИИ. Работает через llama.cpp сервер.
|
- `/talk <сообщение>` — побазарить с ИИ. Работает через llama.cpp сервер.
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
||||||
## Макеты и шрифт
|
## Макеты и шрифт
|
||||||
|
|
||||||
|
|
@ -43,10 +32,7 @@ docker-compose up --build
|
||||||
## Технологии
|
## Технологии
|
||||||
|
|
||||||
- Python 3.11, aiogram 3, Pillow.
|
- Python 3.11, aiogram 3, Pillow.
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
- llama.cpp для ИИ-фич.
|
- llama.cpp для ИИ-фич.
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
- Dockerfile + docker-compose для развёртывания.
|
- Dockerfile + docker-compose для развёртывания.
|
||||||
|
|
||||||
## Кратко о логике
|
## Кратко о логике
|
||||||
|
|
@ -54,8 +40,6 @@ docker-compose up --build
|
||||||
- `/maket` подбирает размер текста, чтобы уместить его в область макета.
|
- `/maket` подбирает размер текста, чтобы уместить его в область макета.
|
||||||
- `/gen_mem` центрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой.
|
- `/gen_mem` центрирует текст по ширине, масштабирует под изображение, рисует белый текст с чёрной обводкой.
|
||||||
- `/break` считает по расписанию в `main.py` (словарь `SCHEDULE`).
|
- `/break` считает по расписанию в `main.py` (словарь `SCHEDULE`).
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
- `/talk` шлёт запрос к llama.cpp серверу (`LLAMA_API_URL`), системный промпт задаёт стиль фени(Можно изменить).
|
- `/talk` шлёт запрос к llama.cpp серверу (`LLAMA_API_URL`), системный промпт задаёт стиль фени(Можно изменить).
|
||||||
|
|
||||||
## ИИ-модуль (`AI/talk_handler.py`)
|
## ИИ-модуль (`AI/talk_handler.py`)
|
||||||
|
|
@ -66,4 +50,3 @@ 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`
|
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`
|
2. Запустить: `./llama-server -m model.gguf --host 0.0.0.0 --port 8080 -c 2048`
|
||||||
3. Прописать URL в `.env`: `LLAMA_API_URL=http://адрес:8080`
|
3. Прописать URL в `.env`: `LLAMA_API_URL=http://адрес:8080`
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
|
||||||
12
main.py
12
main.py
|
|
@ -1,8 +1,5 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
from AI.talk_handler import handle_talk
|
from AI.talk_handler import handle_talk
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
@ -136,10 +133,7 @@ HINT_TEXT = (
|
||||||
f"• /maket «id» «текст» — доступные: {templates_list_text()} (1: 737x414, точка 104,240).\n"
|
f"• /maket «id» «текст» — доступные: {templates_list_text()} (1: 737x414, точка 104,240).\n"
|
||||||
"• /gen_mem Up:верх Down:низ — отправь с фото (как подпись) или ответом на фото.\n"
|
"• /gen_mem Up:верх Down:низ — отправь с фото (как подпись) или ответом на фото.\n"
|
||||||
"• /break — узнать, сколько минут до перекура.\n"
|
"• /break — узнать, сколько минут до перекура.\n"
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
"• /talk [сообщение] — побазарить с ИИ на фене.\n"
|
"• /talk [сообщение] — побазарить с ИИ на фене.\n"
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
"• /prices — старый способ цен.\n"
|
"• /prices — старый способ цен.\n"
|
||||||
"• /fetch — свежие цены с x-server.\n"
|
"• /fetch — свежие цены с x-server.\n"
|
||||||
"Подсказка: в группах команда должна быть слитно с ботом (/gen_mem@username)."
|
"Подсказка: в группах команда должна быть слитно с ботом (/gen_mem@username)."
|
||||||
|
|
@ -585,10 +579,7 @@ def main():
|
||||||
BotCommand(command="prices", description="цены x-server"),
|
BotCommand(command="prices", description="цены x-server"),
|
||||||
BotCommand(command="fetch", description="цены (новый источник)"),
|
BotCommand(command="fetch", description="цены (новый источник)"),
|
||||||
BotCommand(command="zvetok", description="Цветянский бля"),
|
BotCommand(command="zvetok", description="Цветянский бля"),
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
BotCommand(command="talk", description="Побазарить"),
|
BotCommand(command="talk", description="Побазарить"),
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
except Exception: # noqa: WPS440
|
except Exception: # noqa: WPS440
|
||||||
|
|
@ -604,10 +595,7 @@ def main():
|
||||||
dp.message.register(handle_prices, Command("prices"))
|
dp.message.register(handle_prices, Command("prices"))
|
||||||
dp.message.register(handle_fetch, Command("fetch"))
|
dp.message.register(handle_fetch, Command("fetch"))
|
||||||
dp.message.register(handle_zvetok, Command("zvetok"))
|
dp.message.register(handle_zvetok, Command("zvetok"))
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
dp.message.register(handle_talk, Command("talk"))
|
dp.message.register(handle_talk, Command("talk"))
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,3 @@
|
||||||
<<<<<<< HEAD
|
|
||||||
aiogram==3.4.1
|
|
||||||
pillow==10.3.0
|
|
||||||
requests==2.31.0
|
|
||||||
=======
|
|
||||||
aiogram>=3.4.1
|
aiogram>=3.4.1
|
||||||
pillow>=10.3.0
|
pillow>=10.3.0
|
||||||
requests>=2.31.0
|
requests>=2.31.0
|
||||||
>>>>>>> b5c6b35 (ИИ-бот на фене через llama.cpp)
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue