Panacea Document Q&A + RAG¶
Esta receita explica como a Panacea constrói perguntas e respostas de documentos privados com geração aumentada por recuperação (RAG).
O que você aprenderá¶
- Como a Panacea ingere documentos e os armazena como texto pesquisável
- Como o backend recupera partes relevantes para uma pergunta
- Como o sistema utiliza embeddings e fontes de documentos para fundamentar respostas
- Como o feedback de perguntas e respostas é capturado e melhora as respostas futuras
Por que isso é importante¶
A Panacea foi projetada para permitir que equipes façam perguntas sobre documentos privados sem enviá-los para um serviço de chat de terceiros. O fluxo de trabalho é:
- Fazer upload de documentos
- Dividir e incorporar conteúdo
- Recuperar partes relevantes para uma consulta do usuário
- Responder usando um LLM com citações
- Capturar feedback para melhorar a qualidade
Principais arquivos da Panacea¶
| Arquivo | Por que é importante |
|---|---|
Panacea/backend/api_endpoints/documents/handler.py |
Rotas da API para upload e ingestão de documentos |
Panacea/backend/database/db.py |
Lógica SQL para armazenamento e recuperação de documentos |
Panacea/backend/database/qa_feedback.py |
Captura de feedback para perguntas e respostas de documentos |
Panacea/backend/agents/multi_agent_system.py |
Agentes de recuperação de documentos usados em fluxos de trabalho multi-agente |
Como funciona¶
- Os documentos são enviados através do backend e armazenados em
documents.document_text. - O sistema divide documentos grandes e cria metadados de recuperação para busca rápida.
- Quando um usuário faz uma pergunta, a Panacea seleciona um ou mais agentes especializados para recuperar as melhores partes e, em seguida, gera uma resposta.
- O resultado inclui citações de fontes para que os usuários possam rastrear a resposta de volta ao documento original.
- Sinais de feedback são registrados em
qa_feedbackpara permitir melhorias futuras na qualidade.
Execute localmente¶
A partir da raiz do workspace (anote/panacea):
bash
cd Panacea
cp backend/.env.example backend/.env
docker compose up --build
Isso inicia o backend, aplicativo web, MySQL, Redis e Tika.
Se você já estiver dentro da pasta da receita, use:
bash
cd ../../../Panacea
cp backend/.env.example backend/.env
docker compose up --build
Abra http://localhost:3000 para usar a interface web da Panacea. Os uploads de documentos são tratados pela rota do backend POST /ingest-pdf com os campos de formulário obrigatórios chat_id e files[].
Exemplo de comando de upload:
bash
curl -X POST http://localhost:5000/ingest-pdf \
-F chat_id=1 \
-F "files[]=@./path/to/document.pdf"
Passo a passo mínimo para upload¶
- Inicie a Panacea a partir da raiz do repositório:
bash
cd Panacea
cp backend/.env.example backend/.env
docker compose up --build
- Em outro terminal, faça o upload de um único documento de texto ou PDF:
bash
curl -X POST http://localhost:5000/ingest-pdf \
-F chat_id=1 \
-F "files[]=@./Cookbook/recipes/03-panacea-document-qa-rag/data/sample-doc.txt"
-
Confirme que o backend retorna uma resposta bem-sucedida
Documento Enviado. -
Use a interface web em
http://localhost:3000e selecione a mesma sessão de chat para fazer perguntas sobre o documento enviado.
Se você quiser testar a API diretamente após o upload, encontre o ID da sessão de chat na interface ou no banco de dados e envie perguntas através do fluxo de chat do aplicativo. A Panacea irá recuperar partes relevantes e gerar uma resposta fundamentada.
Notas para o livro de receitas¶
Esta receita é ideal para uma entrada de livro de receitas que explica como a Panacea suporta o trabalho de conhecimento privado. É mais conceitual do que um script de uma linha, porque o verdadeiro valor está em entender a arquitetura de ingestão e recuperação de documentos.