Proyek ini membangun basis pengetahuan generasi pengambilan medis (RAG) menggunakan Next.js , Langchain , dan Pinecone sebagai database vektor. Sistem memproses dokumen medis (misalnya, file PDF) dan menyimpan embedding mereka dalam database vektor, memungkinkan pencarian kesamaan yang efisien untuk mengambil informasi yang relevan sebagai tanggapan terhadap kueri pengguna.
Aplikasi ini menyediakan antarmuka yang ramah pengguna untuk mengunggah dokumen medis seperti PDF, mengubahnya menjadi potongan, dan menyimpan embeddings mereka dalam database vektor (Pinecone). Sistem ini menggunakan Langchain untuk dokumen chunking dan memeluk model embedding Face untuk menghasilkan embeddings. Embedding ini dapat dicari secara efisien untuk mengambil informasi yang relevan dari basis pengetahuan medis.
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragPastikan Anda menginstal Node.js (versi 18 atau lebih tinggi). Kemudian instal paket yang diperlukan:
npm install Buat file .env di root proyek dan tambahkan variabel lingkungan berikut:
PINECONE_API_KEY=your_pinecone_api_keyAnda bisa mendapatkan kunci API Pinecone Anda dengan mendaftar di Pinecone.
Setelah menyiapkan, jalankan server pengembangan:
npm run dev Aplikasi Anda sekarang akan berjalan di http://localhost:3000 .
Konfigurasi berikut sangat penting untuk aplikasi:
Anda dapat menentukan ini di UI sebelum mengunggah file.
http://localhost:3000 .Bilah kemajuan akan melacak prosesnya, dan embeddings akan didorong ke database Pinecone.
Setelah embedding diproses dan disimpan, Anda dapat melihatnya di dasbor Pinecone Anda.
Anda dapat memperluas aplikasi dengan membangun antarmuka pencarian untuk menanyakan embeddings yang disimpan dan mengambil informasi yang relevan.
├── 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
Jika Anda mengalami kesalahan:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
Pastikan Anda menjalankan Node.js versi 18+ , yang menyediakan fungsi fetch global. Anda dapat memperbarui node.js menggunakan:
nvm install 18
nvm use 18 Jika vektor tidak didorong ke Pinecone, pastikan kunci API Anda dikonfigurasi dengan benar di file .env .
Untuk dokumen PDF besar, proses penyematan mungkin memakan waktu. Biarkan berjalan sampai bilah kemajuan menunjukkan penyelesaian.