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文档,嵌入过程可能需要时间。让它运行,直到进度栏显示完成。