Skip to content
This repository was archived by the owner on Oct 2, 2025. It is now read-only.

Hackaton-Moodify-2025/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Backend Service

Назначение

Backend — это центральный API-шлюз, который:

  • Принимает запросы от внешних пользователей и организаторов (endpoint /predict).
  • Делегирует классификацию и анализ отзывов ML-сервису (lct-ml).
  • Проверяет корректность данных и возвращает структурированные ошибки.
  • Форматирует ответы в соответствии с требованиями ТЗ.

API

POST /predict

Формат запроса:

{
  "data": [
    {"id": 1, "text": "Очень понравилось обслуживание..."},
    {"id": 2, "text": "Кредитную карту одобрили быстро"}
  ]
}

Формат ответа:

 {
  "predictions": [
    {"id": 1, "topics": ["Обслуживание","Мобильное приложение"], "sentiments": ["положительно","отрицательно"]},
    {"id": 2, "topics": ["Кредитная карта"], "sentiments": ["нейтрально"]}
  ]
} 

Go Backend API (GoBackend/)

🚀 Быстрый старт

Запуск с Docker (рекомендуется)

  1. Перейдите в папку проекта:
cd GoBackend
  1. Запустите проект:
docker compose up --build
  1. API будет доступно по адресу: http://localhost:8080

Запуск без Docker

  1. Установите Go 1.25+
  2. Установите зависимости:
cd GoBackend
go mod download
  1. Запустите сервер:
go run cmd/server/main.go

📋 Go API Endpoints

Health Check

GET /health

Проверка работоспособности сервера.

Ответ:

{
  "status": "healthy",
  "timestamp": "2025-09-27T01:10:42.082Z",
  "version": "1.0.0"
}

Получение отзывов

GET /api/v1/reviews

Получение отзывов с пагинацией и фильтрацией.

Параметры запроса:

  • page (int, default: 1) - номер страницы
  • limit (int, default: 20, max: 100) - количество отзывов на странице
  • topic (string, optional) - фильтр по теме
  • sentiment (string, optional) - фильтр по тональности

Пример запроса:

GET /api/v1/reviews?page=1&limit=10&topic=Обслуживание&sentiment=положительно

Ответ:

{
  "reviews": [
    {
      "id": 1,
      "link": "https://example.com/review/1",
      "date": "2025-01-15",
      "title": "Отличное обслуживание",
      "text": "Очень понравилось обслуживание в отделении...",
      "rating": "5",
      "status": "published",
      "product": "Депозиты", 
      "city": "Москва",
      "topics": ["Обслуживание"],
      "sentiments": ["положительно"]
    }
  ],
  "total": 14410,
  "page": 1,
  "limit": 10,
  "total_pages": 1441
}

Аналитические данные

GET /api/v1/analytics

Получение полных данных для аналитики (все отзывы + предсказания).

Ответ:

{
  "reviews": [...], 
  "predictions": [
    {
      "id": 1,
      "topics": ["Обслуживание", "Мобильное приложение"],
      "sentiments": ["положительно", "отрицательно"]
    }
  ]
}

⚠️ Внимание: Этот endpoint возвращает большой объем данных (~36MB). Используйте с осторожностью.

⚙️ Технологии

  • Go 1.25
  • Fiber v3 (веб-фреймворк)
  • Docker & Docker Compose
  • JSON для обмена данными

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors