
Este repositorio contiene la implementación de SearchThearxiv.com, un motor de búsqueda semántico simple para más de 300,000 ml de documentos en ARXIV (y contando). El código se separa en dos partes, app y data . app contiene la implementación de la interfaz y el backend de la aplicación web, mientras que data son responsables de actualizar la base de datos a intervalos regulares utilizando OpenAI y Pinecone. Tanto app como data contienen un DockerFile para una fácil implementación en plataformas en la nube. No espero (o aliento) a nadie a ejecutar un clon del proyecto por su cuenta (que sería extraño), pero podría servir como inspiración para las personas que construyen un tipo similar de motor de búsqueda semántico.
Para ejecutar el código, debe proporcionar la siguiente lista de variables de entorno:
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
Se requiere que el nombre de usuario de Kaggle y la clave API obtengan el metadataset de ARXIV, mantenidos (y actualizados semanalmente) por la Universidad de Cornell. La tecla API de OpenAI se usa para incrustar nuevos documentos utilizando el modelo text-embedding-ada-002 . La tecla API Pinecone y el nombre del índice se utilizan para conectarse al índice (es decir, la base de datos de vector) alojados en Pinecone.
Si solo está interesado en los incrustaciones, he publicado el conjunto de datos completo en Kaggle. El tamaño actual es de alrededor de 10 GB, pero crece ligeramente cada semana a medida que se agregan nuevos documentos.
Si, por alguna razón, aún desea incrustar los documentos por su cuenta, puede ejecutar embed.py en data después de descargar la metadataSet de Kaggle, establecer las variables de entorno y crear un índice Pinecone. Si no desea usar Pinecone, puede modificar el código como desee. Dado que el índice estará inicialmente vacío, el script incrustará todos los documentos de ML (nuevamente, más de 300,000). Sin embargo, antes de hacerlo, estimará un precio utilizando Tiktoken Tokenizer de OpenAI y le pedirá que confirme. Puede omitir este paso ejecutando python3 embed.py --no-confirmation .
Si le gusta SearchThearxiv.com y le gustaría ver algo mejorado, ¿no dude en enviar una solicitud de extracción?