PYPI에서 올바른 파이썬 패키지를 찾는 것은 실제로 패키지를 쉽게 발견하도록 설계되지 않았기 때문에 약간 어려울 수 있습니다. 예를 들어, "플롯"이라는 단어를 검색하고 겉보기에 임의의 순서로 "플롯"이라는 단어가 포함 된 수백 개의 패키지 목록을 얻을 수 있습니다.
벡터 임베드를 사용하여 ARXIV 기사를 찾는 것에 대한이 블로그 게시물에서 영감을 얻은 저는 유사한 접근 방식을 가진 Python 패키지를 찾는 데 도움이되는 작은 응용 프로그램을 작성하기로 결정했습니다. 예를 들어, "좋은 음모와 시각화를 만들고 싶습니다"라고 물을 수 있으며,이를 도와 줄 수있는 짧은 패키지 목록을 제공합니다.
이 프로젝트는 PYPI의 모든 패키지에 대한 프로젝트 요약 및 설명을 100 회 이상 다운로드하여 수집하여 작동합니다. 그런 다음 문장 변압기를 사용하여 벡터 표현으로 변환됩니다. 사용자가 쿼리를 입력하면 벡터 표현으로 변환되며 가장 유사한 패키지 설명이 벡터 데이터베이스에서 가져옵니다. 대시 보드에서 사용자에게 결과를 제시하기 전에 주간 다운로드의 양에 추가 가중치가 부여됩니다.
이 프로젝트는 다음과 같은 기술을 사용합니다.
.env 파일을 만듭니다 기본적으로 모든 데이터는 로컬 컴퓨터에 저장됩니다. Azure Blob Storage에 API의 데이터를 저장하고 API를 읽을 수도 있습니다. 그렇게하려면 .env 파일을 만듭니다.
cp .env.template .env필요한 필드를 채우십시오.
설정 스크립트는 다음과 같습니다.
data 디렉토리에 저장하십시오.STORAGE_BACKEND 환경 변수가 BLOB 으로 설정된 경우 : 데이터 세트를 Blob Storage에 업로드하십시오.NVIDIA GPU 및 NVIDIA 컨테이너 툴킷이 설치된 경우 설정 스크립트를 실행하는 세 가지 방법이 있습니다. 적용 가능한 메소드를 사용하여 설정 스크립트를 실행하십시오.
메모
데이터 세트에는 PYPI에 약 100,000 개의 패키지가 포함되어 있으며 매주 100 개가 넘는 다운로드가 포함되어 있습니다. 로컬 개발 속도를 높이려면 pypi_scout/config.py 에서 FRAC_DATA_TO_INCLUDE 의 값을 낮추어 로컬로 처리되는 패키지의 양을 줄일 수 있습니다.
Docker Compose를 사용하여 응용 프로그램을 시작하십시오.
docker-compose up잠시 후, 신청서는 http : // localhost : 3000에서 라이브됩니다.
이 프로젝트의 데이터 세트는 Google BigQuery의 PYPI 데이터 세트를 사용하여 작성됩니다. 사용 된 SQL 쿼리는 pypi_bigquery.sql에서 찾을 수 있습니다. 결과 데이터 세트는 Google 드라이브에서 CSV 파일로 사용할 수 있습니다.