Trouver le bon package Python sur PYPI peut être un peu difficile, car PYPI n'est pas vraiment conçu pour découvrir facilement des packages. Par exemple, vous pouvez rechercher le mot «tracé» et obtenir une liste de centaines de packages contenant le mot «complot» dans un ordre apparemment aléatoire.
Inspiré par cet article de blog sur la recherche d'articles ArXIV à l'aide d'incorporation de vecteur, j'ai décidé de créer une petite application qui vous aide à trouver des packages Python avec une approche similaire. Par exemple, vous pouvez lui demander "Je veux faire de belles parcelles et visualisations", et cela vous fournira une courte liste de packages qui peuvent vous aider.
Le projet fonctionne en collectant des résumés de projet et des descriptions pour tous les packages sur PYPI avec plus de 100 téléchargements hebdomadaires. Ceux-ci sont ensuite convertis en représentations vectorielles à l'aide de transformateurs de phrases. Lorsque l'utilisateur entre dans une requête, il est converti en représentation vectorielle et les descriptions de package les plus similaires sont récupérées à partir de la base de données vectorielle. Un poids supplémentaire est donné à la quantité de téléchargements hebdomadaires avant de présenter les résultats à l'utilisateur dans un tableau de bord.
Le projet utilise les technologies suivantes:
.env Par défaut, toutes les données seront stockées sur votre machine locale. Il est également possible de stocker les données de l'API sur Azure Blob Storage, et de faire lire l'API à partir de là. Pour ce faire, créez un fichier .env :
cp .env.template .envet remplissez les champs requis.
Le script de configuration sera:
data .STORAGE_BACKEND est définie sur BLOB : Téléchargez les ensembles de données sur Blob Storage.Il existe trois méthodes pour exécuter le script de configuration, en fonction de si vous avez installé une boîte à outils NVIDIA GPU et NVIDIA Container. Veuillez exécuter le script de configuration à l'aide de la méthode qui vous est applicable:
Note
L'ensemble de données contient environ 100 000 packages sur PYPI avec plus de 100 téléchargements hebdomadaires. Pour accélérer le développement local, vous pouvez réduire la quantité de packages qui sont traités localement en abaissant la valeur de FRAC_DATA_TO_INCLUDE dans pypi_scout/config.py .
Démarrez l'application à l'aide de Docker Compose:
docker-compose upAprès un court moment, votre application sera en direct sur http: // localhost: 3000.
L'ensemble de données de ce projet est créé à l'aide de l'ensemble de données PYPI sur Google BigQuery. La requête SQL utilisée peut être trouvée dans PYPI_BIGQUERY.SQL. L'ensemble de données résultant est disponible en tant que fichier CSV sur Google Drive.