
이 repo에는 ARXIV (및 계산)에서 30 만 ML 종이를위한 간단한 의미 검색 엔진 인 SearchThearxiv.com의 구현이 포함되어 있습니다. 코드는 두 부분의 app 과 data 로 분리됩니다. app 에는 웹 앱의 프론트 엔드 및 백엔드 구현이 포함되어 있으며 data OpenAI 및 Pinecone을 사용하여 정기적으로 데이터베이스를 업데이트 할 책임이 있습니다. app 과 data 에는 클라우드 플랫폼에 쉽게 배포 할 수있는 dockerfile이 포함되어 있습니다. 나는 누군가가 스스로 프로젝트의 클론을 실행할 것을 기대하지 않거나 격려하지는 않지만 (이상한 일이 될 것입니다) 비슷한 유형의 의미 검색 엔진을 구축하는 사람들에게 영감을 줄 수 있습니다.
코드를 실행하려면 다음 환경 변수 목록을 제공해야합니다.
KAGGLE_USERNAME=your_kaggle_username
KAGGLE_API_KEY=your_kaggle_api_key
OPENAI_API_KEY=your_openai_api_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_INDEX_NAME=your_pinecone_index_name
Kaggle 사용자 이름 및 API 키는 Cornell University에서 유지 관리하고 매주 업데이트 된 Arxiv Metadataset를 가져 오려면 필요합니다. OpenAI API 키는 text-embedding-ada-002 모델을 사용하여 새로운 용지를 포함시키는 데 사용됩니다. PENECONE API 키 및 인덱스 이름은 Pinecone에서 호스팅 된 인덱스 (IE 벡터 데이터베이스)에 연결하는 데 사용됩니다.
임베딩에만 관심이 있다면 Kaggle에 전체 데이터 세트를 게시했습니다. 현재 크기는 약 10GB이지만 새로운 용지가 추가되면 매주 약간 자랍니다.
어떤 이유로 든 여전히 논문을 직접 포함시키려는 경우 Kaggle에서 Metadataset을 다운로드하고 환경 변수를 설정하고 Pinecone 인덱스를 작성 한 후 data 에서 embed.py 실행할 수 있습니다. Pinecone을 사용하지 않으려면 원하는대로 코드를 자유롭게 수정할 수 있습니다. 색인이 처음에는 비어 있으므로 스크립트는 모든 ML 용지 (다시 300,000 이상)를 포함합니다. 그러나 그렇게하기 전에 OpenAi의 Tiktoken 토큰 화기를 사용하여 가격을 추정하고 확인하도록 요청합니다. python3 embed.py --no-confirmation 실행 하여이 단계를 건너 뛸 수 있습니다.
SearchThearxiv.com을 좋아하고 개선 된 것을보고 싶다면 풀 요청을 자유롭게 제출하십시오.