Este proyecto construye una base de conocimiento de la generación de recuperación médica (RAG) utilizando Next.js , Langchain y Pinecone como la base de datos vectorial. El sistema procesa documentos médicos (por ejemplo, archivos PDF) y almacena sus incrustaciones en una base de datos vectorial, lo que permite una búsqueda de similitud eficiente para recuperar información relevante en respuesta a las consultas de los usuarios.
Esta aplicación proporciona una interfaz fácil de usar para cargar documentos médicos como PDFS, convertirlos en trozos y almacenar sus incrustaciones en una base de datos vectorial (Pinecone). El sistema utiliza Langchain para fragmentar documentos y abrazar los modelos de incrustación de Face para generar incrustaciones. Estas incrustaciones se pueden buscar eficientemente para recuperar información relevante de las bases de conocimiento médico.
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragAsegúrese de tener Node.js (versión 18 o superior) instalado. Luego instale los paquetes requeridos:
npm install Cree un archivo .env en la raíz del proyecto y agregue las siguientes variables de entorno:
PINECONE_API_KEY=your_pinecone_api_keyPuede obtener su tecla API Pinecone registrándose en Pinecone.
Después de configurar, ejecute el servidor de desarrollo:
npm run dev Su aplicación ahora se ejecutará en http://localhost:3000 .
Las siguientes configuraciones son esenciales para la aplicación:
Puede especificarlos en la interfaz de usuario antes de cargar archivos.
http://localhost:3000 .La barra de progreso rastreará el proceso, y las embedidas serán empujadas a la base de datos de Pinecone.
Una vez que se procesan y almacenan los incrustaciones, puede verlos en su tablero de Pinecone.
Puede extender la aplicación creando una interfaz de búsqueda para consultar los incrustaciones almacenadas y recuperar información relevante.
├── pages/
│ ├── api/
│ │ └── updatedatabase.ts # API route to handle document uploading and embedding
│ ├── index.tsx # Main page for uploading documents
├── utils/
│ ├── updateVectorDB.ts # Utility function to chunk, embed, and upload vectors
├── components/
│ └── UI components for the project
├── documents/ # Place for storing documents
├── config.ts # Configuration file (batch sizes, etc.)
├── .env # Environment variables
└── README.md # This readme file
Si encuentra el error:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
Asegúrese de ejecutar Node.js versión 18+ , que proporciona una función fetch global. Puede actualizar Node.js usando:
nvm install 18
nvm use 18 Si los vectores no están siendo presionados a Pinecone, asegúrese de que su tecla API esté configurada correctamente en el archivo .env .
Para los grandes documentos PDF, el proceso de incrustación puede llevar tiempo. Déjelo funcionar hasta que la barra de progreso muestre la finalización.