Este projeto cria uma base de conhecimento de geração de recuperação médica (RAG) usando o Next.js , Langchain e Pinecone como banco de dados vetorial. O sistema processa documentos médicos (por exemplo, arquivos PDF) e armazena suas incorporações em um banco de dados vetorial, permitindo uma pesquisa de similaridade eficiente para recuperar informações relevantes em resposta às consultas do usuário.
Este aplicativo fornece uma interface amigável para fazer upload de documentos médicos, como PDFs, convertendo-os em pedaços e armazenando suas incorporações em um banco de dados vetorial (Pinecone). O sistema usa o Langchain para fazer documentos e abraçar os modelos de incorporação do rosto para gerar incorporações. Essas incorporações podem ser pesquisadas com eficiência para recuperar informações relevantes das bases de conhecimento médico.
git clone https://github.com/ShantamShukla/medicalrag.git
cd medicalragCertifique -se de ter o Node.js (versão 18 ou superior) instalado. Em seguida, instale os pacotes necessários:
npm install Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis de ambiente:
PINECONE_API_KEY=your_pinecone_api_keyVocê pode obter sua tecla API Pinecone, inscrevendo -se na Pinecone.
Depois de configurar, execute o servidor de desenvolvimento:
npm run dev Seu aplicativo agora estará em execução em http://localhost:3000 .
As configurações a seguir são essenciais para o aplicativo:
Você pode especificá -los na interface do usuário antes de enviar arquivos.
http://localhost:3000 .A barra de progresso rastreará o processo e as incorporações serão empurradas para o banco de dados Pinecone.
Depois que as incorporações são processadas e armazenadas, você pode visualizá -las no painel do Pinecone.
Você pode estender o aplicativo criando uma interface de pesquisa para consultar as incorporações armazenadas e recuperar informações relevantes.
├── 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
Se você encontrar o erro:
Failed to find any user-provided fetch implementation. Using global fetch implementation.
Verifique se você está executando o Node.js versão 18+ , que fornece uma função fetch global. Você pode atualizar o Node.js usando:
nvm install 18
nvm use 18 Se os vetores não estiverem sendo pressionados para Pinecone, verifique se sua chave da API está configurada corretamente no arquivo .env .
Para documentos grandes em PDF, o processo de incorporação pode levar tempo. Deixe -o funcionar até que a barra de progresso mostre a conclusão.