medicalrag
1.0.0
該項目將使用Next.js , Langchain和Pinecone作為矢量數據庫建立醫學檢索效果的一代(RAG)知識庫。該系統處理醫療文檔(例如PDF文件),並將其嵌入在矢量數據庫中,從而使有效的相似性搜索能夠以響應用戶查詢來檢索相關信息。
該應用程序提供了一個用戶友好的接口,用於上傳醫療文檔,例如PDF,將其轉換為塊,並將其嵌入在矢量數據庫(Pinecone)中。該系統使用Langchain來塊文檔和擁抱Face的嵌入模型來生成嵌入。可以有效地搜索這些嵌入,以從醫學知識庫中檢索相關信息。
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalrag確保您安裝了node.js(版本18或更高版本)。然後安裝所需的軟件包:
npm install在項目的根部創建.env文件,並添加以下環境變量:
PINECONE_API_KEY=your_pinecone_api_key您可以通過在Pinecone上註冊來獲得Pinecone API鍵。
設置後,運行開發服務器:
npm run dev您的應用程序現在將在http://localhost:3000上運行。
以下配置對於應用程序至關重要:
您可以在上傳文件之前在UI中指定它們。
http://localhost:3000打開應用程序。進度條將跟踪該過程,並將嵌入將被推到Pinecone數據庫。
處理和存儲嵌入後,您可以在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,請確保在.env文件中正確配置您的API鍵。
對於大型PDF文檔,嵌入過程可能需要時間。讓它運行,直到進度欄顯示完成。