Добавлена поддержка виртуального окружения и автоматизация

Создано:
- Makefile - команды для управления проектом
- setup.sh - автоматическая установка и настройка
- Виртуальное окружение .venv

Изменено:
- requirements.txt - исправлена версия pydantic для совместимости
- README.md - добавлены инструкции по установке через venv

Команды Makefile:
- make install - установка зависимостей
- make run - запуск бота
- make docker-up - запуск через Docker
- make clean - очистка venv и кэша

Быстрый старт: ./setup.sh

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-04 11:23:48 +03:00
parent f7847226d0
commit 253f557bd1
4 changed files with 152 additions and 8 deletions

52
Makefile Normal file
View File

@@ -0,0 +1,52 @@
.PHONY: help venv install run clean docker-up docker-down docker-logs
help:
@echo "Доступные команды:"
@echo " make venv - Создать виртуальное окружение"
@echo " make install - Установить зависимости"
@echo " make run - Запустить бота локально"
@echo " make clean - Удалить venv и кэш"
@echo " make docker-up - Запустить через Docker Compose"
@echo " make docker-down - Остановить Docker контейнеры"
@echo " make docker-logs - Показать логи Docker"
venv:
python3 -m venv .venv
@echo "Виртуальное окружение создано!"
@echo "Активируйте его: source .venv/bin/activate"
install: venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install -r requirements.txt
@echo "Зависимости установлены!"
run:
@if [ ! -f .env ]; then \
echo "Ошибка: файл .env не найден!"; \
echo "Создайте его: cp .env.example .env"; \
exit 1; \
fi
.venv/bin/python main.py
clean:
rm -rf .venv
find . -type d -name "__pycache__" -exec rm -rf {} +
find . -type f -name "*.pyc" -delete
@echo "Очистка завершена!"
docker-up:
@if [ ! -f .env ]; then \
echo "Ошибка: файл .env не найден!"; \
echo "Создайте его: cp .env.example .env"; \
exit 1; \
fi
docker-compose up -d
docker-down:
docker-compose down
docker-logs:
docker-compose logs -f bot
docker-rebuild:
docker-compose up -d --build

View File

@@ -45,33 +45,75 @@ docker-compose logs -f bot
### Локальная установка ### Локальная установка
#### 1. Клонирование репозитория #### Автоматическая установка (рекомендуется)
```bash
# Клонировать репозиторий
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language
# Запустить скрипт установки
./setup.sh
# Отредактировать .env и добавить токены
nano .env
# Активировать виртуальное окружение
source .venv/bin/activate
# Запустить бота
python main.py
```
#### Использование Makefile
```bash
# Установить всё
make install
# Запустить бота
make run
# Показать все команды
make help
```
#### Ручная установка
**1. Клонирование репозитория**
```bash ```bash
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language cd tg_bot_language
``` ```
### 2. Установка зависимостей **2. Создание виртуального окружения**
```bash ```bash
python3 -m venv .venv
source .venv/bin/activate
```
**3. Установка зависимостей**
```bash
pip install --upgrade pip
pip install -r requirements.txt pip install -r requirements.txt
``` ```
### 3. Настройка окружения **4. Настройка окружения**
Скопируйте `.env.example` в `.env`:
```bash ```bash
cp .env.example .env cp .env.example .env
nano .env # или любой редактор
``` ```
Отредактируйте `.env` и заполните необходимые параметры: Заполните необходимые параметры:
```env ```env
BOT_TOKEN=your_telegram_bot_token_here BOT_TOKEN=your_telegram_bot_token_here
OPENAI_API_KEY=your_openai_api_key_here OPENAI_API_KEY=your_openai_api_key_here
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/language_bot DATABASE_URL=postgresql+asyncpg://botuser:botpassword@localhost:5432/language_bot
DEBUG=True DEBUG=True
``` ```

View File

@@ -4,5 +4,5 @@ asyncpg==0.30.0
alembic==1.14.0 alembic==1.14.0
python-dotenv==1.0.1 python-dotenv==1.0.1
openai==1.57.3 openai==1.57.3
pydantic==2.10.3 pydantic>=2.4.1,<2.10
pydantic-settings==2.6.1 pydantic-settings==2.6.1

50
setup.sh Executable file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
echo "🚀 Настройка проекта Telegram бота для изучения языков"
echo ""
# Проверка Python
if ! command -v python3 &> /dev/null; then
echo "❌ Python3 не найден. Установите Python 3.11+"
exit 1
fi
echo "✅ Python $(python3 --version) найден"
# Создание venv
if [ ! -d ".venv" ]; then
echo "📦 Создание виртуального окружения..."
python3 -m venv .venv
echo "✅ Виртуальное окружение создано"
else
echo "✅ Виртуальное окружение уже существует"
fi
# Активация venv и установка зависимостей
echo "📥 Установка зависимостей..."
source .venv/bin/activate
pip install --upgrade pip > /dev/null
pip install -r requirements.txt
echo "✅ Зависимости установлены"
# Создание .env если не существует
if [ ! -f ".env" ]; then
echo "📝 Создание файла .env..."
cp .env.example .env
echo "⚠️ Не забудьте заполнить .env файл (BOT_TOKEN, OPENAI_API_KEY)"
else
echo "✅ Файл .env уже существует"
fi
echo ""
echo "✨ Настройка завершена!"
echo ""
echo "Следующие шаги:"
echo "1. Отредактируйте .env и добавьте токены"
echo "2. Активируйте venv: source .venv/bin/activate"
echo "3. Запустите бота: python main.py"
echo ""
echo "Или используйте Makefile:"
echo " make run - Запустить бота"
echo " make docker-up - Запустить через Docker"