? Векторный поиск тряпичной системы
Сложная система рекомендаций фильма с использованием возможностей Vector Search and Rag (Поиск дополненного поколения), основанная на трансформаторах предложений Huggingface и Mongodb Atlas.
? Функции
- Семантический поиск : использует предложения для осмысленных поисков фильмов
- Векторная база данных : использует возможности векторного поиска MongoDB Atlas
- Обработка в режиме реального времени : генерируйте Entgeddings на лету, используя API Huggingface's API
- Эффективный поиск : быстрые и точные рекомендации по фильмам, основанные на описаниях сюжетов
Структура проекта
Vector-Search-RaG/
├── apps/
│ └── semantic_search/
│ ├── __init__.py
│ ├── hf_connection.py # HuggingFace API connection
│ ├── mongo_connection.py # MongoDB connection handler
│ └── movie_recs.py # Movie recommendation logic
├── ragenv/ # Virtual environment
├── LICENSE
└── README.md
Начиная
Предварительные условия
- Python 3.8 или выше
- Account Mongodb Atlas
- Guggingface API токен
- PIP (менеджер пакетов Python)
Настройка среды
- Клонировать репозиторий:
git clone https://github.com/yourusername/Vector-Search-RaG.git
cd Vector-Search-RaG
- Создать и активировать виртуальную среду:
python -m venv ragenv
source ragenv/bin/activate # On Windows: ragenvScriptsactivate
- Установить зависимости:
pip install pymongo requests python-decouple
- Создайте файл
.env в корневом каталоге с вашими учетными данными:
MONGODB_URI = your_mongodb_connection_string
HUGGING_FACE_TOKEN = your_huggingface_token
Компоненты конфигурации
Соединение HuggingFace ( hf_connection.py )
- Управляет подключениями к API Huggingface
- Использует модель
sentence-transformers/all-MiniLM-L6-v2 для генерации встроенных вкладчиков. - Обрабатывает аутентификацию API и обработку ошибок
Соединение mongodb ( mongo_connection.py )
- Устанавливает безопасное соединение с Mongodb Atlas
- Реализует безопасность TLS
- Включает проверку подключения и обработку ошибок
Рекомендации фильма ( movie_recs.py )
- Реализует функциональность поиска вектора
- Процессы фильмов запросы и генерируют рекомендации
- Включает утилиты для извлечения и обновления данных о фильмах
? Использование
Базовый пример поиска
from apps . semantic_search . movie_recs import search_movies
# Search for movies with a specific plot description
query = "A group of bandits stage a brazen train hold-up"
search_movies ( query )
Обновление данных фильмов
from apps . semantic_search . movie_recs import fetch_and_update_movies
# Fetch and update movie information
fetch_and_update_movies ()
Векторные данные поиска
Система использует агрегацию $ mongodb $vectorSearch для семантического поиска:
- Генерирует встроения с использованием трансформатора предложений HuggingFaceface
- Поиск против предварительно вычисленных вторжений сюжета, хранящихся в MongoDB
- Возвращает наиболее семантически похожие фильмы на основе описаний сюжетов
Функции безопасности
- Шифрование TLS для соединений MongoDB
- Безопасная обработка токенов API через переменные среды
- Проверка сертификата для безопасных соединений
️ Важные примечания
- Убедитесь, что ваш кластер Mongodb Atlas имеет возможность поиска вектора
- API API HuggingFace имеет ограничения по цене - рассмотрите возможность реализации кэширования для использования производства
- Держите свой файл
.env в безопасности и никогда не посвятите его управлению версиями
? Соображения производительности
- Система использует
numCandidates: 100 для широкого поиска - Результаты ограничены 4 фильмами за запрос для оптимального времени отклика
- Индекс векторного поиска "DlotseManticSearch" должен быть должным образом настроен в MongoDB
? Внося
- Вилка репозитория
- Создайте филиал своей функции (
git checkout -b feature/AmazingFeature ) - Сделайте свои изменения (
git commit -m 'Add some AmazingFeature' ) - Толкайте к ветке (
git push origin feature/AmazingFeature ) - Откройте запрос на тягу
Лицензия
Этот проект лицензирован в соответствии с условиями файла лицензии, включенным в хранилище.