Проект системы поиска похожих товаров для интернет-магазина с использованием векторной базы данных ChromaDB и модели эмбеддингов Google Gemini через OpenRouter API.
python -m venv venvWindows (WSL/Linux):
source venv/bin/activateWindows (CMD):
venv\Scripts\activatepip install -r requirements.txtСоздай файл .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Скрипт выполнит:
- Парсинг 30 товаров из markdown файла
- Создание векторных представлений с помощью Google Gemini Embeddings через OpenRouter
- Сохранение в ChromaDB (папка
chroma_db/) - Готовность к поиску похожих товаров
После векторизации запусти 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