Бот для генерации астрологических отчетов (Синастрия) с использованием OpenAI GPT-4o, генерации PDF (ReportLab) и DOCX (python-docx).
- Python 3.10+
- OpenAI API Key
- Telegram Bot Token
Это рекомендуемый способ для постоянной работы бота на сервере.
Обновите пакеты и установите Python/Git:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-venv python3-pip git -ycd /opt
sudo git clone https://github.com/CorvusSharp/GenTelegramAstrology.git astrolog_bot
sudo chown -R $USER:$USER /opt/astrolog_bot
cd /opt/astrolog_bot# Создаем виртуальное окружение
python3 -m venv venv
# Активируем
source venv/bin/activate
# Обновляем pip и ставим зависимости
pip install --upgrade pip
pip install -r requirements.txtСоздайте файл с настройками:
cp env_example .env
nano .envВставьте ваши ключи:
TELEGRAM_BOT_TOKEN=ваш_токен_от_botfather
OPENAI_API_KEY=ваш_ключ_openaiЗапустите бота вручную, чтобы убедиться, что ошибок нет:
python astro_bot/main.pyНажмите Ctrl+C, чтобы остановить.
Чтобы бот работал в фоне и перезапускался автоматически при падении или перезагрузке сервера.
Создайте файл службы:
sudo nano /etc/systemd/system/astro_bot.serviceВставьте следующий текст (замените root на вашего пользователя, если нужно, но для /opt часто используют root или специального юзера):
[Unit]
Description=Telegram Astrology Bot
After=network.target
[Service]
# Имя пользователя, от которого запускается бот
User=root
# Рабочая директория
WorkingDirectory=/opt/astrolog_bot
# Команда запуска (путь к python внутри venv)
ExecStart=/opt/astrolog_bot/venv/bin/python astro_bot/main.py
# Перезапуск при падении
Restart=always
RestartSec=5
# Логирование
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=astro_bot
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable astro_bot
sudo systemctl start astro_bot# Статус
sudo systemctl status astro_bot
# Чтение логов в реальном времени
sudo journalctl -u astro_bot -fЕсли вы предпочитаете Docker:
- Настройте
.envфайл. - Запустите контейнеры:
docker-compose up -d --buildКогда вы внесли изменения в код и хотите обновить сервер:
cd /opt/astrolog_bot
git pull origin main
source venv/bin/activate
pip install -r requirements.txt # Если менялись зависимости
sudo systemctl restart astro_botastro_bot/— Исходный код ботаmain.py— Точка входаtelegram_bot.py— Логика Telegramprompts.py— Текстовые промпты для LLMpdf_renderer.py/docx_renderer.py— Генераторы файлов
fonts/— Шрифты (Times New Roman) для PDFrequirements.txt— Python зависимости