이 프로젝트는 Next.js , Langchain 및 Pinecone을 벡터 데이터베이스로 사용하여 의료 검색 세대 (RAG) 지식 기반을 구축합니다. 시스템은 의료 문서 (예 : PDF 파일)를 처리하고 임베딩을 벡터 데이터베이스에 저장하여 효율적인 유사성 검색을 통해 사용자 쿼리에 대한 관련 정보를 검색 할 수 있습니다.
이 응용 프로그램은 PDFS와 같은 의료 문서를 업로드하고 청크로 변환하고 벡터 데이터베이스 (PENECONE)에 임베딩을 저장하기위한 사용자 친화적 인 인터페이스를 제공합니다. 이 시스템은 문서를 청킹하고 얼굴의 임베딩 모델을 포옹하기 위해 Langchain을 사용하여 임베딩을 생성합니다. 이러한 임베딩은 의료 지식 기반에서 관련 정보를 검색하기 위해 효율적으로 검색 할 수 있습니다.
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragNode.js (버전 18 이상)가 설치되어 있는지 확인하십시오. 그런 다음 필요한 패키지를 설치하십시오.
npm install 프로젝트의 루트에 .env 파일을 만들고 다음 환경 변수를 추가하십시오.
PINECONE_API_KEY=your_pinecone_api_keyPinecone에 가입하여 Pinecone API 키를 얻을 수 있습니다.
설정 후 개발 서버를 실행하십시오.
npm run dev 앱은 이제 http://localhost:3000 에서 실행됩니다.
다음 구성은 앱에 필수적입니다.
파일을 업로드하기 전에 UI에서이를 지정할 수 있습니다.
http://localhost:3000 에서 앱을 엽니 다.진행률 표시 줄은 프로세스를 추적하며 임베딩은 PENECONE 데이터베이스로 밀어 넣습니다.
임베딩이 처리되고 저장되면 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.
글로벌 fetch 기능을 제공하는 Node.js 버전 18+를 실행 중인지 확인하십시오. 다음을 사용하여 Node.js를 업데이트 할 수 있습니다.
nvm install 18
nvm use 18 벡터가 Pinecone으로 푸시되지 않으면 .env 파일에 API 키가 올바르게 구성되어 있는지 확인하십시오.
대규모 PDF 문서의 경우 임베딩 프로세스에 시간이 걸릴 수 있습니다. 진행률 바가 완료 될 때까지 실행하십시오.