Skip to content

Проект системы поиска похожих товаров для интернет-магазина с использованием векторной базы данных ChromaDB и модели эмбеддингов Google Gemini через OpenRouter API.

Notifications You must be signed in to change notification settings

dimachen/relevant_shop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система поиска и рекомендаций товаров на RAG

Проект системы поиска похожих товаров для интернет-магазина с использованием векторной базы данных ChromaDB и модели эмбеддингов Google Gemini через OpenRouter API.

Установка

1. Создание виртуального окружения

python -m venv venv

2. Активация виртуального окружения

Windows (WSL/Linux):

source venv/bin/activate

Windows (CMD):

venv\Scripts\activate

3. Установка зависимостей

pip install -r requirements.txt

4. Настройка переменных окружения

Создай файл .env и добавь свой OpenRouter API ключ:

OPENROUTER_API_KEY=your_api_key_here

Получить API ключ можно здесь: https://openrouter.ai/keys

Проект использует модель эмбеддингов google/gemini-embedding-001 через OpenRouter API.

Использование

Векторизация базы товаров

Запусти скрипт для парсинга товаров из products/base.md и сохранения в ChromaDB:

python ingest.py

Скрипт выполнит:

  1. Парсинг 30 товаров из markdown файла
  2. Создание векторных представлений с помощью Google Gemini Embeddings через OpenRouter
  3. Сохранение в ChromaDB (папка chroma_db/)
  4. Готовность к поиску похожих товаров

Поиск похожих товаров

После векторизации запусти Gradio приложение для поиска:

python main.py

Приложение откроется в браузере по адресу http://127.0.0.1:7860 с интерактивным интерфейсом для поиска похожих товаров.

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

relevant_shop/
├── products/
│   └── base.md          # База из 30 товаров (5 категорий по 6 товаров)
├── chroma_db/           # Векторная база данных (создается автоматически)
├── embeddings.py        # Модуль для работы с OpenRouter Embeddings
├── ingest.py            # Скрипт векторизации товаров
├── main.py              # Gradio приложение для поиска товаров
├── requirements.txt     # Зависимости проекта
├── .env                 # Переменные окружения (не в git)
├── .gitignore
└── README.md

База товаров

База содержит 30 товаров в 5 категориях:

  • Электроника (6 товаров): смартфоны, ноутбуки, наушники, часы и т.д.
  • Бытовая техника (6 товаров): роботы-пылесосы, кофемашины, мультиварки и т.д.
  • Спорт и фитнес (6 товаров): велосипеды, гантели, коврики для йоги и т.д.
  • Дом и интерьер (6 товаров): диваны, торшеры, посуда и т.д.
  • Одежда и обувь (6 товаров): куртки, кроссовки, рюкзаки и т.д.

Каждый товар содержит:

  • ID
  • Название
  • Категория
  • Цена
  • Подробное описание
  • Характеристики

Технологии

  • LangChain - фреймворк для работы с LLM и векторными базами
  • ChromaDB - векторная база данных для хранения эмбеддингов
  • OpenRouter API - доступ к модели Google Gemini Embeddings
  • Gradio - веб-интерфейс для поиска товаров
  • Python-dotenv - управление переменными окружения

Доработка и адаптация

Если вам нужна доработка или адаптация этого решения под ваш проект, вы можете обратиться ко мне в Telegram: https://telegram.me/dimachen

Подписывайтесь на телеграм: https://t.me/dchengaev

About

Проект системы поиска похожих товаров для интернет-магазина с использованием векторной базы данных ChromaDB и модели эмбеддингов Google Gemini через OpenRouter API.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages