Shiny + Agentes de IA: como criar aplicativos web inteligentes

A combinação de interfaces de usuário interativas com o poder dos grandes modelos de linguagem (LLMs) está abrindo um universo de possibilidades. Imagine criar um aplicativo web que não apenas exibe dados, mas também conversa com o usuário, respondendo a perguntas complexas com base em uma base de conhecimento específica. Usando Shiny para Python e ferramentas de IA como as do Google, isso é mais acessível do que nunca.

Analisando a estrutura de um projeto real de um agente de, por exemplo, saúde, podemos entender como essas peças se conectam para criar uma aplicação coesa e inteligente.

As ferramentas essenciais

Para construir um agente de IA com uma interface web, precisamos de um conjunto específico de ferramentas. A espinha dorsal do projeto se apoia em algumas bibliotecas-chave:

  • Shiny: Usado para construir a interface do usuário (UI). Com ele, é possível criar o layout do aplicativo, como a janela de chat, e gerenciar a interatividade com o usuário de forma simples e direta em Python.
  • LangChain: Atua como um orquestrador. É a "cola" que conecta a interface do usuário aos modelos de linguagem e à nossa base de dados. Ele simplifica a criação de cadeias de processos complexas, como a que usamos para consulta e resposta.
  • Google Generative AI: Fornece os modelos de IA, como o Gemini. Um modelo é usado para gerar as respostas em linguagem natural, e outro, especializado, para transformar os documentos em vetores numéricos (embeddings) que a máquina consegue entender e comparar.
  • ChromaDB: Funciona como um banco de dados vetorial. É aqui que os documentos processados são armazenados, permitindo que o sistema realize buscas de similaridade semântica de forma extremamente rápida e eficiente.
  • PyPDF: Uma biblioteca auxiliar, mas crucial, para carregar e extrair o texto dos documentos em formato PDF que alimentarão a base de conhecimento do agente.

Organização e arquitetura do projeto

A organização do código é fundamental para que o aplicativo seja funcional e fácil de manter. A estrutura geral pode ser dividida em três partes principais:

  1. A interface com o usuário - UI (app.py): Este arquivo é responsável por toda a parte visual e de interação. Utilizando o shiny, ele cria a página web, define o título e inicializa o componente de chat com mensagens de boas-vindas. Sua principal função é capturar a pergunta do usuário e enviá-la para o módulo de lógica do agente, exibindo a resposta em tempo real.
  2. O cérebro do agente (rag.py): Aqui reside a inteligência da aplicação, implementando a técnica conhecida como Geração Aumentada por Recuperação (RAG). O processo ocorre em etapas:
    • Carregamento: O sistema lê os arquivos (neste caso, PDFs de uma pasta local).
    • Divisão: Os documentos são quebrados em pedaços menores (chunks) para otimizar a busca.
    • Vetorização: Cada pedaço de texto é convertido em um embedding pelo modelo de IA do Google e armazenado no banco de dados vetorial Chroma.
    • Recuperação e Geração: Quando o usuário faz uma pergunta, o sistema primeiro busca no Chroma os chunks de texto mais relevantes. Em seguida, esses chunks são enviados ao modelo Gemini, juntamente com a pergunta original, para que ele gere uma resposta precisa e contextualizada.
  3. Configuração centralizada (configs.json): Para evitar que parâmetros e textos fiquem espalhados pelo código, um arquivo de configuração centraliza tudo. Nele, definimos o "prompt do sistema" (que instrui a IA sobre sua personalidade e função), os parâmetros do modelo (como criatividade e tamanho da resposta), os caminhos para os arquivos e até mesmo os textos da interface do usuário. Isso torna o aplicativo extremamente flexível e fácil de adaptar.

Ao unir a simplicidade do Shiny para criar interfaces web com o poder da orquestração do LangChain e a inteligência dos modelos do Google, é possível desenvolver assistentes virtuais especializados e robustos, capazes de transformar a maneira como interagimos com informações complexas.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como planejar um pipeline de previsão macroeconômica: da coleta ao dashboard

Montar um pipeline de previsão macroeconômica não é apenas uma tarefa técnica — é um exercício de integração entre dados, modelos e automação. Neste post, apresento uma visão geral de como estruturar esse processo de ponta a ponta, da coleta de dados até a construção de um dashboard interativo, que exibe previsões automatizadas de inflação, câmbio, PIB e taxa Selic.

Coletando e integrando dados do BCB, IBGE e IPEA de forma automatizada

Quem trabalha com modelagem e previsão macroeconômica sabe o quanto é demorado reunir dados de diferentes fontes — Banco Central, IBGE, IPEA, FRED, IFI... Cada um com sua API, formato, frequência e estrutura. Esse gargalo de coleta e padronização consome tempo que poderia estar sendo usado na análise, nos modelos ou na comunicação dos resultados.

Foi exatamente por isso que criamos uma rotina de coleta automatizada, que busca, trata e organiza séries temporais econômicas diretamente das APIs oficiais, pronta para ser integrada a pipelines de previsão, dashboards ou agentes de IA econometristas.

Criando operações SQL com IA Generativa no R com querychat

No universo da análise de dados, a velocidade para obter respostas é um diferencial competitivo. Frequentemente, uma simples pergunta de negócio — “Qual foi nosso produto mais vendido no último trimestre na região Nordeste?” — inicia um processo que envolve abrir o RStudio, escrever código dplyr ou SQL, executar e, finalmente, obter a resposta. E se pudéssemos simplesmente perguntar isso aos nossos dados em português, diretamente no nosso dashboard Shiny?

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.