Ce projet construit une base de connaissances de génération (RAG) de récupération médicale en utilisant Next.js , Langchain et PineCone comme base de données vectorielle. Le système traite les documents médicaux (par exemple, les fichiers PDF) et stocke leurs intérêts dans une base de données vectorielle, permettant une recherche de similitude efficace pour récupérer des informations pertinentes en réponse aux requêtes utilisateur.
Cette application fournit une interface conviviale pour le téléchargement de documents médicaux tels que les PDF, les convertir en morceaux et le stockage de leurs incorporations dans une base de données vectorielle (Pinecone). Le système utilise Langchain pour secouer des documents et étreindre les modèles d'intégration de Face pour générer des intégres. Ces intérêts peuvent être recherchés efficacement pour récupérer les informations pertinentes à partir de bases de connaissances médicales.
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragAssurez-vous que Node.js (version 18 ou supérieure) est installé. Ensuite, installez les packages requis:
npm install Créez un fichier .env dans la racine du projet et ajoutez les variables d'environnement suivantes:
PINECONE_API_KEY=your_pinecone_api_keyVous pouvez obtenir votre clé API Pinecone en vous inscrivant à Pinecone.
Après la configuration, exécutez le serveur de développement:
npm run dev Votre application fonctionnera désormais sur http://localhost:3000 .
Les configurations suivantes sont essentielles pour l'application:
Vous pouvez les spécifier dans l'interface utilisateur avant de télécharger des fichiers.
http://localhost:3000 .La barre de progression suivra le processus et les intégres seront poussés à la base de données de pignon.
Une fois les incorporations traitées et stockées, vous pouvez les visualiser dans votre tableau de bord PineCone.
Vous pouvez étendre l'application en créant une interface de recherche pour interroger les intégres stockés et récupérer des informations pertinentes.
├── 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 vous rencontrez l'erreur:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
Assurez-vous que vous exécutez Node.js version 18+ , qui fournit une fonction fetch globale. Vous pouvez mettre à jour Node.js en utilisant:
nvm install 18
nvm use 18 Si les vecteurs ne sont pas poussés à Pinecone, assurez-vous que votre clé API est correctement configurée dans le fichier .env .
Pour les grands documents PDF, le processus d'incorporation peut prendre du temps. Laissez-le fonctionner jusqu'à ce que la barre de progrès montre la fin.