Создано: - 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>
207 lines
6.3 KiB
Markdown
207 lines
6.3 KiB
Markdown
# Telegram Бот для изучения языков
|
||
|
||
Интеллектуальный Telegram бот для изучения английского языка с использованием AI.
|
||
|
||
## Возможности
|
||
|
||
- 📚 Управление словарным запасом с автоматическим переводом через AI
|
||
- ✍️ Ежедневные задания для практики (в разработке)
|
||
- 💬 Диалоговая практика с ИИ (в разработке)
|
||
- 📊 Статистика прогресса (в разработке)
|
||
|
||
## Текущая версия (MVP)
|
||
|
||
**Реализовано:**
|
||
- ✅ Команда `/start` - приветствие и регистрация пользователя
|
||
- ✅ Команда `/add [слово]` - добавление слов в словарь с AI-переводом
|
||
- ✅ Команда `/vocabulary` - просмотр словаря
|
||
- ✅ Команда `/help` - справка
|
||
- ✅ База данных (PostgreSQL) для хранения пользователей и словарей
|
||
- ✅ Интеграция с OpenAI API для перевода слов
|
||
|
||
## Установка и запуск
|
||
|
||
### 🐳 Docker Compose (рекомендуется)
|
||
|
||
```bash
|
||
# Клонировать репозиторий
|
||
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
|
||
cd tg_bot_language
|
||
|
||
# Настроить .env
|
||
cp .env.example .env
|
||
# Отредактируйте .env и добавьте BOT_TOKEN и OPENAI_API_KEY
|
||
|
||
# Запустить
|
||
docker-compose up -d
|
||
|
||
# Проверить логи
|
||
docker-compose logs -f bot
|
||
```
|
||
|
||
📖 Подробная инструкция: [README_DOCKER.md](README_DOCKER.md)
|
||
|
||
---
|
||
|
||
### Локальная установка
|
||
|
||
#### Автоматическая установка (рекомендуется)
|
||
|
||
```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. Создание виртуального окружения**
|
||
|
||
```bash
|
||
python3 -m venv .venv
|
||
source .venv/bin/activate
|
||
```
|
||
|
||
**3. Установка зависимостей**
|
||
|
||
```bash
|
||
pip install --upgrade pip
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
**4. Настройка окружения**
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
nano .env # или любой редактор
|
||
```
|
||
|
||
Заполните необходимые параметры:
|
||
|
||
```env
|
||
BOT_TOKEN=your_telegram_bot_token_here
|
||
OPENAI_API_KEY=your_openai_api_key_here
|
||
DATABASE_URL=postgresql+asyncpg://botuser:botpassword@localhost:5432/language_bot
|
||
DEBUG=True
|
||
```
|
||
|
||
**Получение токенов:**
|
||
- Telegram Bot Token: создайте бота через [@BotFather](https://t.me/BotFather)
|
||
- OpenAI API Key: получите на [platform.openai.com](https://platform.openai.com/api-keys)
|
||
|
||
### 4. Настройка базы данных
|
||
|
||
Создайте PostgreSQL базу данных:
|
||
|
||
```bash
|
||
createdb language_bot
|
||
```
|
||
|
||
Или используйте Docker:
|
||
|
||
```bash
|
||
docker run --name language-bot-db -e POSTGRES_PASSWORD=password -e POSTGRES_DB=language_bot -p 5432:5432 -d postgres:15
|
||
```
|
||
|
||
### 5. Запуск бота
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
bot_tg_language/
|
||
├── bot/
|
||
│ ├── handlers/ # Обработчики команд
|
||
│ │ ├── start.py # /start, /help
|
||
│ │ └── vocabulary.py # /add, /vocabulary
|
||
│ └── keyboards/ # Клавиатуры (пока не используется)
|
||
├── database/
|
||
│ ├── models.py # Модели БД (User, Vocabulary, Task)
|
||
│ └── db.py # Подключение к БД
|
||
├── services/
|
||
│ ├── ai_service.py # Сервис для работы с OpenAI
|
||
│ ├── user_service.py # Сервис пользователей
|
||
│ └── vocabulary_service.py # Сервис словаря
|
||
├── config/
|
||
│ └── settings.py # Настройки приложения
|
||
├── main.py # Точка входа
|
||
├── requirements.txt # Зависимости
|
||
├── .env.example # Пример конфигурации
|
||
└── TZ.md # Техническое задание
|
||
```
|
||
|
||
## Использование
|
||
|
||
### Команды бота
|
||
|
||
- `/start` - Начать работу с ботом
|
||
- `/add [слово]` - Добавить слово в словарь
|
||
- `/vocabulary` - Посмотреть свой словарь
|
||
- `/help` - Показать справку
|
||
|
||
### Пример использования
|
||
|
||
1. Запустите бота: `/start`
|
||
2. Добавьте слово: `/add elephant`
|
||
3. Бот переведёт слово через AI и предложит добавить в словарь
|
||
4. Подтвердите добавление
|
||
5. Просмотрите словарь: `/vocabulary`
|
||
|
||
## Roadmap
|
||
|
||
См. [TZ.md](TZ.md) для полного технического задания.
|
||
|
||
**Следующие этапы:**
|
||
- [ ] Ежедневные задания с разными типами упражнений
|
||
- [ ] Тематические подборки слов
|
||
- [ ] Импорт слов из текста
|
||
- [ ] Диалоговая практика с AI
|
||
- [ ] Статистика и прогресс
|
||
- [ ] Spaced repetition алгоритм
|
||
|
||
## Технологии
|
||
|
||
- **Python 3.11+**
|
||
- **aiogram 3.x** - Telegram Bot framework
|
||
- **SQLAlchemy 2.x** - ORM для работы с БД
|
||
- **PostgreSQL** - База данных
|
||
- **OpenAI API** - AI для перевода и проверки
|
||
|
||
## Лицензия
|
||
|
||
MIT |