Skip to content

Amplicode/spring-aio-tg-bot

Repository files navigation

Spring Bot

Spring АйО Bot - это Telegram бот, разработанный на Spring Boot, который предоставляет различные функции, включая взаимодействие с экспертами, генерацию фактов и ответов на вопросы с использованием ИИ.

Видео-гайд

Процесс создания бота полностью продемонстрирован в серии видео:

  1. Продвинутый Telegram-бот на Java/Spring для Spring АйО. Часть 1: Архитектура и первая рабочая версия part-1.png
  2. Coming soon... part-2.png
  3. Coming soon... part-3.png

Функции

  • Старт: Приветственное сообщение и инициализация сессии пользователя.
  • Эксперты: Просмотр списка доступных экспертов.
  • Задать вопрос эксперту: Возможность задать вопрос выбранному эксперту.
  • Спросить: Генерация ответа на вопрос с использованием ИИ.
  • Факт: Генерация интересного факта.
  • Язык: Изменение языка интерфейса (русский/английский).
  • О боте: Информация о боте.

Технологии

  • Java 24
  • Spring Boot 3.5.6
  • Telegram Bots API
  • PostgreSQL
  • Liquibase для миграций базы данных
  • Spring AI для интеграции с OpenAI
  • Docker для контейнеризации

Требования

  • Java 24
  • PostgreSQL
  • Docker (опционально для запуска в контейнерах)

Установка и запуск

Локальный запуск

  1. Клонируйте репозиторий:

    git clone <url-репозитория>
    cd spring-bot
  2. Настройте переменные окружения. Создайте файл secret.env в корне проекта со следующим содержимым:

    BOT_TOKEN=ваш_telegram_bot_token
    POSTGRES_HOST=localhost
    POSTGRES_DB=telegram-bot
    POSTGRES_USER=root
    POSTGRES_PASSWORD=root
    OPENAI_API_KEY=ваш_openai_api_key
    AI_OPENAI_BASE_URL=https://openrouter.ai/api
    AI_OPENAI_CHAT_OPTIONS_MODEL=x-ai/grok-4-fast
    
  3. Запустите PostgreSQL базу данных.

  4. Соберите и запустите приложение:

    ./gradlew build
    ./gradlew bootRun

Запуск с Docker

  1. Клонируйте репозиторий и настройте secret.env как описано выше.

  2. Запустите сервисы с помощью Docker Compose:

    docker-compose up --build

Приложение будет доступно на порту 8080, а бот начнет работать в Telegram.

Структура проекта

  • src/main/java/io/amplicode/springbot/ - Исходный код приложения
    • bot/ - Логика Telegram бота
      • commands/ - Обработчики команд
      • config/ - Конфигурация
      • model/ - Модели данных
      • service/ - Сервисы
    • rest/ - REST контроллеры
  • src/main/resources/ - Ресурсы
    • db/changelog/ - Миграции Liquibase
    • application.properties - Конфигурация приложения
    • messages_*.properties - Локализованные сообщения

Конфигурация

Основные настройки в application.properties:

  • bot.token - Токен Telegram бота
  • spring.datasource.* - Настройки базы данных
  • spring.ai.openai.* - Настройки OpenAI API

Разработка

Для разработки используйте IDE с поддержкой Java и Spring Boot. Запуск тестов:

./gradlew test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published