Model

Проект представляет собой сервис, который взаимодействует с базой данных для получения информации о продуктах, их фотографиях и ценах. Сервис также включает функциональность для обработки запросов с использованием ChatAssistant и предоставляет API для взаимодействия с клиентами.

Компоненты проекта

  1. cmd/assistant/main.go: Основной файл, который инициализирует конфигурацию, создает сервер на базе Gin и определяет маршруты для обработки запросов.
  2. internal/services/store/Store.go: Содержит методы для взаимодействия с базой данных, такие как получение продуктов по идентификаторам, получение фотографий и цен по продукту.
  3. internal/services/chatassistant: Пакет, отвечающий за обработку запросов с использованием ChatAssistant.
  4. internal/config: Пакет для инициализации конфигурации проекта.

Запуск проекта

Для запуска проекта необходимо выполнить следующие шаги:

  1. Сборка Docker-образа: Создайте Dockerfile с содержимым:

    # Используем базовый образ с Go
    FROM golang:1.23.2
    
    # Устанавливаем рабочую директорию
    WORKDIR /app
    
    # Копируем файлы проекта
    COPY go.mod go.sum ./
    RUN go mod download
    COPY . .
    
    # Сборка приложения
    RUN go build -o main ./cmd/assistant
    
    # Указываем порт
    EXPOSE 8080
    
    # Запуск приложения
    CMD ["./main"]
  2. Сборка и запуск контейнера: Выполните команды:

    docker build -t myapp .
    docker run -p 8080:8080 myapp
  3. Запуск сервера: Сервер будет доступен по адресу http://localhost:8080.

API Маршруты

  • POST /llm-request: Обрабатывает запросы с использованием ChatAssistant.
  • GET /get-product: Возвращает информацию о продукте по его идентификатору.
  • GET /get-matched-ids: Возвращает список продуктов, соответствующих запросу пользователя.

Примеры запросов

  • POST /llm-request:

    {
      "query": "example query"
    }
  • GET /get-product:

    curl "http://localhost:8080/get-product?Id=123"
  • GET /get-matched-ids:

    curl "http://localhost:8080/get-matched-ids?query=example&limit=10"

Зависимости

Проект использует следующие зависимости:

  • Gin: Веб-фреймворк для создания HTTP-сервера.
  • GORM: ORM-библиотека для работы с базой данных.
  • Go: Язык программирования для написания серверной части.

Авторы и благодарности

Покажите свою признательность тем, кто внес вклад в проект.

Лицензия

Укажите, под какой лицензией распространяется проект.

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

Если разработка проекта замедлилась или остановилась, добавьте соответствующее уведомление в начало README.