Добавлена поддержка виртуального окружения и автоматизация
Создано: - 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:
52
Makefile
Normal file
52
Makefile
Normal 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
|
||||
56
README.md
56
README.md
@@ -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
|
||||
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
|
||||
cd tg_bot_language
|
||||
```
|
||||
|
||||
### 2. Установка зависимостей
|
||||
**2. Создание виртуального окружения**
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
**3. Установка зависимостей**
|
||||
|
||||
```bash
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 3. Настройка окружения
|
||||
|
||||
Скопируйте `.env.example` в `.env`:
|
||||
**4. Настройка окружения**
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env # или любой редактор
|
||||
```
|
||||
|
||||
Отредактируйте `.env` и заполните необходимые параметры:
|
||||
Заполните необходимые параметры:
|
||||
|
||||
```env
|
||||
BOT_TOKEN=your_telegram_bot_token_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
|
||||
```
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@ asyncpg==0.30.0
|
||||
alembic==1.14.0
|
||||
python-dotenv==1.0.1
|
||||
openai==1.57.3
|
||||
pydantic==2.10.3
|
||||
pydantic>=2.4.1,<2.10
|
||||
pydantic-settings==2.6.1
|
||||
|
||||
50
setup.sh
Executable file
50
setup.sh
Executable 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"
|
||||
Reference in New Issue
Block a user