Encontrar o pacote Python certo no Pypi pode ser um pouco difícil, pois o Pypi não é realmente projetado para descobrir pacotes facilmente. Por exemplo, você pode procurar a palavra "enredo" e obter uma lista de centenas de pacotes que contêm a palavra "enredo" em ordem aparentemente aleatória.
Inspirado nesta postagem do blog sobre encontrar artigos do ARXIV usando incorporação de vetores, decidi criar um pequeno aplicativo que o ajude a encontrar pacotes Python com uma abordagem semelhante. Por exemplo, você pode pedir "eu quero fazer lotes e visualizações agradáveis" e fornecerá uma pequena lista de pacotes que podem ajudá -lo com isso.
O projeto funciona coletando resumos e descrições de projetos para todos os pacotes no Pypi com mais de 100 downloads semanais. Estes são então convertidos em representações vetoriais usando transformadores de frases. Quando o usuário insere uma consulta, ele é convertido em uma representação vetorial e as descrições de pacotes mais semelhantes são buscadas no banco de dados vetorial. O peso adicional é fornecido à quantidade de downloads semanais antes de apresentar os resultados ao usuário em um painel.
O projeto usa as seguintes tecnologias:
.env Por padrão, todos os dados serão armazenados em sua máquina local. Também é possível armazenar os dados da API no Azure Blob Storage e fazer com que a API seja lida a partir daí. Para fazer isso, crie um arquivo .env :
cp .env.template .enve preencha os campos necessários.
O script de configuração será:
data .STORAGE_BACKEND estiver definida como BLOB : faça o upload dos conjuntos de dados para armazenamento em blob.Existem três métodos para executar o script de configuração, dependente de se você tiver um kit de ferramentas de GPU e NVIDIA GPU e NVIDIA instalado. Por favor, execute o script de configuração usando o método aplicável a você:
Observação
O conjunto de dados contém aproximadamente 100.000 pacotes no PYPI com mais de 100 downloads semanais. Para acelerar o desenvolvimento local, você pode diminuir a quantidade de pacotes que são processados localmente, reduzindo o valor de FRAC_DATA_TO_INCLUDE em pypi_scout/config.py .
Inicie o aplicativo usando o Docker Compose:
docker-compose upDepois de um tempo, seu aplicativo estará ao vivo em http: // localhost: 3000.
O conjunto de dados para este projeto é criado usando o conjunto de dados PYPI no Google BigQuery. A consulta SQL usada pode ser encontrada em pypi_bigquery.sql. O conjunto de dados resultante está disponível como um arquivo CSV no Google Drive.