โครงการนี้สร้าง ฐานความรู้ในการดึงการแพทย์ (RAG) โดยใช้ next.js , langchain และ pinecone เป็นฐานข้อมูลเวกเตอร์ ระบบประมวลผลเอกสารทางการแพทย์ (เช่นไฟล์ PDF) และจัดเก็บ embeddings ของพวกเขาในฐานข้อมูลเวกเตอร์ทำให้การค้นหาความคล้ายคลึงกันอย่างมีประสิทธิภาพเพื่อดึงข้อมูลที่เกี่ยวข้องเพื่อตอบคำถามผู้ใช้
แอปพลิเคชันนี้ให้อินเทอร์เฟซที่ใช้งานง่ายสำหรับการอัปโหลดเอกสารทางการแพทย์เช่น PDFS แปลงเป็นชิ้นและจัดเก็บการฝังตัวในฐานข้อมูลเวกเตอร์ (Pinecone) ระบบใช้ Langchain สำหรับเอกสาร chunking และ กอดโมเดลการฝังของใบหน้า เพื่อสร้างการฝังตัว การฝังตัวเหล่านี้สามารถค้นหาได้อย่างมีประสิทธิภาพสำหรับการดึงข้อมูลที่เกี่ยวข้องจากฐานความรู้ทางการแพทย์
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragตรวจสอบให้แน่ใจว่าคุณติดตั้ง node.js (เวอร์ชัน 18 ขึ้นไป) จากนั้นติดตั้งแพ็คเกจที่ต้องการ:
npm install สร้างไฟล์ .env ในรูทของโครงการและเพิ่มตัวแปรสภาพแวดล้อมต่อไปนี้:
PINECONE_API_KEY=your_pinecone_api_keyคุณสามารถรับคีย์ Pinecone API ของคุณได้โดยลงทะเบียนที่ Pinecone
หลังจากตั้งค่าให้เรียกใช้เซิร์ฟเวอร์การพัฒนา:
npm run dev แอปของคุณจะทำงานที่ http://localhost:3000
การกำหนดค่าต่อไปนี้เป็นสิ่งจำเป็นสำหรับแอพ:
คุณสามารถระบุสิ่งเหล่านี้ใน UI ก่อนที่จะอัปโหลดไฟล์
http://localhost:3000แถบความคืบหน้าจะติดตามกระบวนการและการฝังตัวจะถูกส่งไปยังฐานข้อมูล Pinecone
เมื่อประมวลผลและเก็บไว้ใน embeddings คุณสามารถดูได้ในแผงควบคุม Pinecone ของคุณ
คุณสามารถขยายแอพได้โดยการสร้างอินเทอร์เฟซการค้นหาเพื่อสอบถามการฝังตัวที่เก็บไว้และดึงข้อมูลที่เกี่ยวข้อง
├── 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
หากคุณพบข้อผิดพลาด:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
ตรวจสอบให้แน่ใจว่าคุณใช้งาน Node.js เวอร์ชัน 18+ ซึ่งให้ฟังก์ชั่น fetch ทั่วโลก คุณสามารถอัปเดต node.js โดยใช้:
nvm install 18
nvm use 18 หากเวกเตอร์ไม่ถูกส่งไปยัง Pinecone ให้ตรวจสอบให้แน่ใจว่าคีย์ API ของคุณได้รับการกำหนดค่าอย่างถูกต้องในไฟล์. .env
สำหรับเอกสาร PDF ขนาดใหญ่กระบวนการฝังอาจต้องใช้เวลา ปล่อยให้มันทำงานจนกว่าแถบความคืบหน้าจะแสดงให้เสร็จสมบูรณ์