Поиск правильного пакета Python на PYPI может быть немного сложным, так как PYPI действительно не предназначен для легко обнаружения пакетов. Например, вы можете найти слово «сюжет» и получить список сотен пакетов, которые содержат слово «сюжет» в, казалось бы, случайном порядке.
Вдохновленный этим сообщением в блоге о поиске статей ARXIV с использованием векторных встраиваний, я решил построить небольшое приложение, которое поможет вам найти пакеты Python с аналогичным подходом. Например, вы можете спросить это «Я хочу сделать хорошие сюжеты и визуализации», и это предоставит вам короткий список пакетов, которые могут помочь вам в этом.
Проект работает, собирая резюме и описания проекта для всех пакетов на PYPI с более чем 100 еженедельными загрузками. Затем они преобразуются в векторные представления с использованием трансформаторов предложений. Когда пользователь входит в запрос, он преобразуется в векторное представление, а наиболее похожие описания пакетов извлекаются из векторной базы данных. Дополнительный вес придается количеству еженедельных загрузок, прежде чем представлять результаты пользователю на панели панели.
Проект использует следующие технологии:
.env По умолчанию все данные будут храниться на вашей локальной машине. Также можно сохранить данные для API на хранилище Blob -Blob и прочитать API оттуда. Для этого создайте файл .env :
cp .env.template .envи заполните требуемые поля.
Сценарий настройки будет:
data .STORAGE_BACKEND установлена на BLOB : загрузите наборы данных, чтобы Blob Blob.Существует три метода для запуска сценария настройки, в зависимости от того, установлены ли у вас nvidia GPU и Nvidia Container Toolkit. Пожалуйста, запустите скрипт настроек, используя метод, который применим для вас:
Примечание
Набор данных содержит приблизительно 100 000 пакетов на PYPI с более чем 100 недельными загрузками. Чтобы ускорить локальную разработку, вы можете снизить количество пакетов, которые обрабатываются локально, снизив значение FRAC_DATA_TO_INCLUDE в pypi_scout/config.py .
Запустите приложение с помощью Docker Compose:
docker-compose upЧерез некоторое время ваше заявление будет жить по адресу http: // localhost: 3000.
Набор данных для этого проекта создается с использованием набора данных PYPI в Google BigQuery. Используемый запрос SQL можно найти в pypi_bigquery.sql. Полученный набор данных доступен в виде файла CSV на Google Drive.