Model
Проект представляет собой сервис, который взаимодействует с базой данных для получения информации о продуктах, их фотографиях и ценах. Сервис также включает функциональность для обработки запросов с использованием ChatAssistant и предоставляет API для взаимодействия с клиентами.
Компоненты проекта
- cmd/assistant/main.go: Основной файл, который инициализирует конфигурацию, создает сервер на базе Gin и определяет маршруты для обработки запросов.
- internal/services/store/Store.go: Содержит методы для взаимодействия с базой данных, такие как получение продуктов по идентификаторам, получение фотографий и цен по продукту.
- internal/services/chatassistant: Пакет, отвечающий за обработку запросов с использованием ChatAssistant.
- internal/config: Пакет для инициализации конфигурации проекта.
Запуск проекта
Для запуска проекта необходимо выполнить следующие шаги:
-
Сборка 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"]
-
Сборка и запуск контейнера: Выполните команды:
docker build -t myapp . docker run -p 8080:8080 myapp
-
Запуск сервера: Сервер будет доступен по адресу
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.