Skip to content

Repository files navigation

Документация системы поиска товаров на основе ChromaDB

Этот сервис предназначен для:

  • Индексации и хранения информации о товарах в векторном хранилище (ChromaDB).
  • Поиска товаров по описанию и метаданным с использованием векторного поиска.
  • Интеграции с внешними системами, такими как Telegram и HubSpot, для получения запросов и отправки уведомлений.

Сервис построен на базе FastAPI и использует uvicorn для запуска сервера. Векторное представление данных о товарах формируется с использованием NLP-технологий, что обеспечивает быстрый и точный поиск.


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

Проект состоит из следующих основных файлов:

  • main.py
    Основной модуль, в котором:

    • Инициализируется приложение FastAPI.
    • Определяются API-эндпоинты для поиска товаров.
    • Настраиваются зависимости, такие как проверка токена доступа.
    • Запускаются фоновые процессы для обработки поисковых запросов и взаимодействия с внешними системами (Telegram, HubSpot).
  • chromadb_utils.py
    Утилиты для работы с векторным хранилищем ChromaDB:

    • Функция для получения или создания коллекций товаров по заданной метке.
    • Функции для вставки (upsert) и удаления записей о товарах в коллекциях.
  • text_utils.py
    Утилиты для обработки текстов:

    • Семантическое разбиение описаний товаров на логически завершённые части, что способствует более точной векторизации и поиску.
  • config.py
    Конфигурационные параметры проекта, включая настройки подключения к ChromaDB, параметры аутентификации и прочее.

  • models.py
    Определения моделей данных:

    • Описание сущностей товаров.
    • Модели для формирования запросов на поиск и структурирования ответов API.
  • file_utils.py
    Утилиты для работы с файлами, необходимые для импорта данных о товарах и их дальнейшей обработки.


1. Файл main.py

1.1. Импорты и конфигурация

В начале файла импортируются:

  • Стандартные библиотеки (для асинхронности, логирования, обработки сигналов).
  • Сторонние библиотеки (FastAPI, uvicorn, torch и другие).
  • Локальные модули для работы с ChromaDB, интеграции с Telegram, обработки текстов и конфигурации.

Эта конфигурация обеспечивает:

  • Инициализацию сервера FastAPI.
  • Настройку подключения к векторной базе данных ChromaDB.
  • Обработку поисковых запросов по товарам и взаимодействие с внешними системами.

1.2. API-эндпоинты

Основные эндпоинты сервиса позволяют:

  • Искать товары по текстовому описанию с фильтрацией по метаданным.
  • Добавлять, обновлять и удалять записи товаров в базе данных.
  • Обрабатывать входящие запросы из внешних источников (например, запросы, поступающие через Telegram).

2. Запуск сервиса

Для запуска сервиса используется uvicorn. Пример команды для запуска сервера:

uvicorn main:app --host 0.0.0.0 --port 8000

About

search

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages