SQLite + JSON + Agentes de IA: Transformando propostas de engenharia em dados estruturados
Fala, devs e devas!
Trago mais uma experiência daquelas de "quem precisa resolver o problema da empresa com o que tem na mão". Dessa vez, misturei SQLite, C# e Agentes de IA.
O Problema
Há muito tempo venho matutando como facilitar a vida dos engenheiros aqui da empresa. Propostas técnicas de plantas industriais são documentos semiestruturados em Word. A dor é antiga: o conhecimento fica "preso" na cabeça de quem fez a proposta. Se um engenheiro novo chega ou alguém precisa de uma referência de um projeto que nunca fez, tem que sair perguntando para todo mundo.
Sempre me questionei: como transformar esse monte de Word em uma base de dados consultável?
A Solução que montei
Criei um fluxo de agentes que funciona mais ou menos assim:
Extração: Um agente lê o conteúdo da proposta (hoje converto o Word para .txt manualmente) e gera um JSON estruturado.
Armazenamento: Insiro esse JSON direto em uma coluna TEXT do SQLite. Foi aqui que descobri o poder das funções json_extract, json_each e json_tree. Dá para fazer consultas complexas dentro do JSON sem precisar de um banco NoSQL dedicado.
Query Builder: Um agente recebe o schema do JSON e a intenção do usuário (ex: "Quero propostas com motores de 150 a 200kW"). Ele monta a query SQL.
Executor: O agente "Execute Query" tem uma tool que conecta no banco, roda a query e devolve o resultado formatado para o usuário, com número da proposta, cliente e detalhes técnicos.
A Stack
No backend, estou usando C# com o Microsoft Agent Framework (MAF). Comecei com o Semantic Kernel, mas o MAF me ganhou porque lembra muito a lógica de nós do n8n para criar o fluxo sequencial dos agentes e também é uma evolucao do Semantic Kernel e do AutoGen. Para o banco, sigo no padrão Repository com Dapper.
No frontend, usei Vue. Foi minha primeira experiência integrando o ASP.NET Core com um framework JS moderno, e a experiência foi bem fluida.
Próximos Passos e Dúvidas
Nessa jornada, descobri que o SQLite tem extensões incríveis, como a de Full Text Search (FTS) e até para busca vetorial (RAG).
Minha ideia agora é automatizar a conversão Word -> TXT, mas queria ouvir de vocês:
Alguém aqui já usou o Full Text Search do SQLite em produção? Vale a pena?
Para esse cenário de documentos técnicos, vocês acham que o RAG (Busca Vetorial) performaria melhor do que essa extração de JSON que estou fazendo?
Em breve: Repositório e Guia de Estruturação
Vou preparar um repositório no GitHub com a estrutura dos códigos e, principalmente, os system prompts que usei nos agentes.
Como usei dados reais da empresa e não quero ser pego pelo TI por compartilhar informação sensível 😬😬😬, vou subir o repo com arquivos de exemplo genéricos. Vai servir como um guia de como estruturar esse fluxo, até porque usei bastante vibecoding para chegar nessa solução e o resultado ficou bem interessante.
Qualquer feedback, crítica ou sugestão é ouro. Valeu demais quem leu até aqui!