Files
tg_bot_language/README.md
mamonov.ep f7847226d0 Добавлен Docker Compose для простого развёртывания
Создано:
- Dockerfile для контейнеризации бота
- docker-compose.yml с сервисами bot и db
- .dockerignore для оптимизации образа
- README_DOCKER.md с подробной документацией

Изменено:
- README.md - добавлена секция Docker
- .env.example - добавлены переменные PostgreSQL

Теперь бот можно запустить одной командой:
docker-compose up -d

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 11:16:14 +03:00

165 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)
---
### Локальная установка
#### 1. Клонирование репозитория
```bash
git clone http://103.137.249.134:3000/NANDI/tg_bot_language.git
cd tg_bot_language
```
### 2. Установка зависимостей
```bash
pip install -r requirements.txt
```
### 3. Настройка окружения
Скопируйте `.env.example` в `.env`:
```bash
cp .env.example .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
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