Поиск фильмов с API Gemini, MongoDB Vector Search и Pletrit UI
Описание:
Этот проект реализует приложение для поиска фильма, которое использует силу:
- Google Gemini API: для эффективного поколения векторного встраивания, захватывая семантическое значение сюжетов фильмов.
- Поиск вектора MongoDB: для получения фильмов с семантически похожими на поисковый запрос пользователя.
- Streamlit: для создания удобного и интерактивного веб-приложения.
Функции:
- Пользователи могут ввести поисковый запрос для фильмов.
- Приложение использует API Gemini для создания векторного представления запроса.
- Затем он выполняет векторный поиск в MongoDB, чтобы найти фильмы с подобными сюжетными вставками.
- Пользовательский интерфейс отображает подробную информацию о полученных фильмах, включая заголовок, резюме сюжета (если доступно) и, необязательно, постеры (если в данных присутствуют URL -адреса).
Требования:
- Python 3.x
- Требуемые библиотеки:
-
google-generativeai (для API Gemini) -
pymongo (для взаимодействия MongoDB) -
streamlit (для разработки веб -приложений)
Установка:
- Клонировать это хранилище.
- Создайте виртуальную среду (рекомендуется):
python -m venv env
source env/bin/activate # Windows: envScriptsactivate.bat
- Установите необходимые библиотеки:
pip install google-generativeai pymongo streamlit
Настраивать:
- Настройте API Gemini:
- Получите Google Cloud Project и включите API Gemini.
- Создайте ключ API и установите переменную среды
GOOGLE_API_KEY соответственно.
- Подключитесь к MongoDB:
- Установите базу данных MongoDB с коллекцией, содержащей данные фильма. Коллекция должна включать документы с такими полями, как
title , plot (для поиска вектора) и необязательно poster (для отображения изображения). - Замените заполнители в
connection_string.py вашей строкой подключения MongoDB и именами базы данных/сбора.
Использование:
- Запустите приложение:
streamlit run movie_recs.py
- Введите поисковый запрос в поле Text Input и нажмите «Enter».
- Приложение будет отображать список фильмов, которые семантически соответствуют вашему запросу, а также их детали.