Arquitetura da Solução¶
Diagrama Arquitetural do MVP¶

Legenda
- 🧱 (Blocos de Código): Serviços, componentes de software, processos.
- 🗂️ (Arquivos/Dados): Fontes de dados estáticas ou artefatos gerados.
- 🗄️ (Banco de Dados): Soluções de armazenamento persistente.
- ☁️ (Serviço Externo): APIs de terceiros.
- 👤 (Ator): Usuário humano do sistema.
Camada FRONTEND (Python)¶
A camada de interação direta com o 👤 Cidadão. É responsável por toda a experiência do usuário.
- Chatbot (Streamlit): Ponto de entrada do usuário. Renderiza um formulário que simula a página de envio de manifestações (inspirado no fala.BR) e contêm o chatbot que irá consumir o sistema de IA. Utilização do Streamlit para criação da UI do projeto usando python.
Camada BACKEND (Python)¶
O núcleo do sistema, responsável pela lógica de negócios, processamento de ML e gerenciamento de dados. É composto por serviços que se comunicam internamente.
-
API Gateway (RestAPI): Ponto de entrada único do backend (Single Point of Entry). Construído em FastAPI, gerencia todas as requisições HTTP, roteando-as para os serviços internos apropriados.
-
Serviço RAG: Responsável pela Geração Aumentada por Recuperação (RAG). Utiliza o LlamaIndex para:
- Receber a consulta (e o histórico de chat).
- Buscar por contexto relevante no
🗄️ Banco Vetorial (Qdrant). - Construir o prompt final (consulta + contexto + regras de prompt) e enviá-lo para a
☁️ LLM (Ollama). - Gerenciar a memória da conversa por sessão de usuário.
OBS: Para o MVP 1, o Serviço RAG também é responsável por utilizar a LLM para classificar a intenção do usuário e realizar a classficação dos campos.
Camada de PIPELINES DE TREINAMENTO (Offline)¶
Processos executados em lote ("offline") que criam os artefatos de ML e os dados necessários para o funcionamento dos serviços de backend.
- Scrapers: Scripts (usando BeautifulSoup) que varrem os
🗂️ Sites Governamentais (URL)em busca de manuais, leis e documentos públicos. - Ingestão RAG: Pipeline do LlamaIndex que recebe os
🗂️ Documentos (PDF)e os dados processados pelosScrapers. Ele é responsável por dividir (chunking), vetorizar (embedding) e inserir esse conhecimento no🗄️ Banco Vetorial (Qdrant).
Banco de Dados e Serviços Externos¶
Componentes de armazenamento e APIs de terceiros que suportam a arquitetura.
- Banco Vetorial (Qdrant): Por meio da pipeline
Ingestão RAGArmazena o conhecimento da organização (documentos, manuais, heurísticas) em formato de vetores. É lido peloServiço RAGpara realizar buscas semânticas rápidas. - LLM (Ollama): Serviço externo que atua como o cérebro de geração de linguagem. É chamado pelo
Serviço RAGpara formular as respostas finais ao usuário.
[Esboço] Diagrama Arquitetural Completo¶
