Encontrar el paquete Python correcto en Pypi puede ser un poco difícil, ya que PYPI no está realmente diseñado para descubrir paquetes fácilmente. Por ejemplo, puede buscar la palabra "trama" y obtener una lista de cientos de paquetes que contienen la palabra "trama" en orden aparentemente aleatorio.
Inspirado en esta publicación de blog sobre cómo encontrar artículos ARXIV utilizando integridades vectoriales, decidí crear una pequeña aplicación que lo ayude a encontrar paquetes de Python con un enfoque similar. Por ejemplo, puede preguntarle "Quiero hacer buenas tramas y visualizaciones", y le proporcionará una breve lista de paquetes que pueden ayudarlo con eso.
El proyecto funciona mediante la recopilación de resúmenes y descripciones del proyecto para todos los paquetes en PYPI con más de 100 descargas semanales. Luego se convierten en representaciones vectoriales utilizando transformadores de oraciones. Cuando el usuario ingresa una consulta, se convierte en una representación vectorial, y las descripciones de paquetes más similares se obtienen de la base de datos de vector. Se da un peso adicional a la cantidad de descargas semanales antes de presentar los resultados al usuario en un tablero.
El proyecto utiliza las siguientes tecnologías:
.env Por defecto, todos los datos se almacenarán en su máquina local. También es posible almacenar los datos para la API en Azure Blob Storage, y se lee la API desde allí. Para hacerlo, cree un archivo .env :
cp .env.template .envy complete los campos requeridos.
El script de configuración:
data .STORAGE_BACKEND está configurada en BLOB : cargue los conjuntos de datos en el almacenamiento de blob.Hay tres métodos para ejecutar el script de configuración, dependiendo de si tiene una GPU NVIDIA y un conjunto de herramientas de contenedores NVIDIA instalado. Ejecute el script de configuración utilizando el método aplicable para usted:
Nota
El conjunto de datos contiene aproximadamente 100,000 paquetes en PYPI con más de 100 descargas semanales. Para acelerar el desarrollo local, puede reducir la cantidad de paquetes que se procesan localmente bajando el valor de FRAC_DATA_TO_INCLUDE en pypi_scout/config.py .
Inicie la aplicación usando Docker Compose:
docker-compose upDespués de un corto tiempo, su aplicación estará en vivo en http: // localhost: 3000.
El conjunto de datos para este proyecto se crea utilizando el conjunto de datos PYPI en Google BigQuery. La consulta SQL utilizada se puede encontrar en pypi_bigQuery.sql. El conjunto de datos resultante está disponible como un archivo CSV en Google Drive.