69 lines
2.8 KiB
Markdown
69 lines
2.8 KiB
Markdown
# Telegram бот с Gemma
|
||
|
||
Телеграм бот, использующий модель Gemma через Ollama для обработки сообщений и изображений. Поддерживает сохранение контекста в PostgreSQL.
|
||
|
||
## Функциональность
|
||
|
||
- Обработка текстовых сообщений
|
||
- Обработка фотографий
|
||
- Поддержка команды `/clear` для очистки контекста диалога
|
||
- Поддержка команды `/start` для начала работы с ботом
|
||
- Игнорирование стикеров, GIF, видео и документов
|
||
- Сохранение контекста диалогов в PostgreSQL
|
||
|
||
## Запуск с помощью Docker
|
||
|
||
1. Убедитесь, что Docker и Docker Compose установлены
|
||
2. Настройте файл `.env`:
|
||
```
|
||
BOT_TOKEN=your_telegram_bot_token_here
|
||
OLLAMA_HOST=http://192.168.50.168:11434
|
||
OLLAMA_MODEL=gemma3:12b-it-qat
|
||
POSTGRES_DB=gemma_bot
|
||
POSTGRES_USER=postgres
|
||
POSTGRES_PASSWORD=postgres
|
||
```
|
||
3. Запустите контейнеры:
|
||
```
|
||
docker compose up -d
|
||
```
|
||
|
||
## Установка и запуск без Docker
|
||
|
||
1. Установите зависимости:
|
||
```
|
||
pip install aiogram ollama python-dotenv asyncpg
|
||
```
|
||
|
||
2. Настройте файл `.env`:
|
||
```
|
||
BOT_TOKEN=your_telegram_bot_token_here
|
||
OLLAMA_HOST=http://192.168.50.168:11434
|
||
OLLAMA_MODEL=gemma3:12b-it-qat
|
||
POSTGRES_HOST=localhost
|
||
POSTGRES_PORT=5432
|
||
POSTGRES_DB=gemma_bot
|
||
POSTGRES_USER=postgres
|
||
POSTGRES_PASSWORD=postgres
|
||
```
|
||
|
||
3. Убедитесь, что Ollama запущена и модель Gemma доступна.
|
||
4. Убедитесь, что PostgreSQL запущена и создана база данных.
|
||
|
||
5. Запустите бота:
|
||
```
|
||
python bot.py
|
||
```
|
||
|
||
## Как использовать
|
||
|
||
1. Отправьте боту текстовое сообщение, и он ответит на него, используя модель Gemma.
|
||
2. Отправьте боту фотографию (с подписью или без), и он проанализирует ее.
|
||
3. Используйте команду `/clear` для очистки истории диалога.
|
||
4. Используйте команду `/start` для начала нового диалога.
|
||
|
||
## Примечания
|
||
|
||
- Бот поддерживает только одну фотографию за раз.
|
||
- Стикеры, GIF, видео и документы игнорируются.
|
||
- Контекст диалогов сохраняется в PostgreSQL, поэтому при перезапуске бота история сообщений сохраняется. |