Como criar um Assistente de IA com ShinyChat R

Introdução

O Shiny R consolidou-se como a principal ferramenta para criar aplicações web interativas diretamente do R. Para elevar ainda mais o nível dessas aplicações, o pacote shinychat R surge como uma solução revolucionária, simplificando drasticamente a criação de interfaces de chat. Ao combiná-lo com o pacote ellmer para a comunicação com Modelos de Linguagem (LLMs) torna-se incrivelmente fácil desenvolver chatbots sofisticados para análise de dados, atendimento ao cliente ou tutoria inteligente.

(você também encontra o shinychat disponível para a linguagem Python, veja mais sobre aqui).

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

O Poder do shinychat R

O shinychat R foi projetado com um objetivo claro: tornar a criação de interfaces de chat em Shiny uma tarefa trivial. Em vez de construir manualmente os componentes de UI e gerenciar o estado da conversa com reactiveValues, o shinychat oferece uma abordagem de alto nível.

                                                                                       Shiny R LogoShinychat R Logo

Suas principais vantagens são:

  • Simplicidade Extrema: Com a função chat_ui(), você cria uma interface de chat completa e responsiva.

  • Gerenciamento de Streaming: A função chat_append() lida nativamente com respostas em modo streaming, exibindo o texto da IA conforme ele é gerado, o que proporciona uma experiência de usuário fluida e moderna.

  • Integração Perfeita: Funciona em harmonia com o ecossistema Shiny e pacotes de backend como o ellmer.

Tutorial Passo a Passo: Construindo seu Chatbot com shinychat R

Vamos criar um chatbot assistente para a Análise Macro, especializado em Data Science.

Primeiro, certifique-se de ter o R e o RStudio instalados. Em seguida, instale os pacotes necessários executando o seguinte comando no seu console R:

install.packages(c("shiny", "shinychat", "ellmer", "bslib", "dotenv"))

Para usar o Google Gemini, você precisará de uma chave de API.

  1. Obtenha sua chave de API no Google AI Studio.

  2. Para manter sua chave segura, crie um arquivo chamado .env na mesma pasta do seu projeto Shiny.

  3. Dentro do arquivo .env, adicione a seguinte linha, substituindo "SUA_CHAVE_AQUI" pela sua chave real: GOOGLE_API_KEY="SUA_CHAVE_AQUI"

  4. Reinicie sua sessão no Rstudio ou IDE de uso.

O pacote ellmer irá detectar e usar essa chave automaticamente.

Agora, vamos ao código. Crie um arquivo chamado app.R e cole o conteúdo abaixo. A seguir, explicaremos cada parte.

# Carrega as bibliotecas necessárias
library(shiny)
library(shinychat)
library(ellmer)

# --- Interface do Usuário (UI) ---
# Usamos bslib::page_fluid para um layout moderno e responsivo.
# A função chat_ui() do pacote shinychat R cria toda a interface de chat.
ui <- bslib::page_fluid(
  chat_ui("chat",
          messages = '👋 Olá! Eu sou o Assistente da Análise Macro. Qual a sua dúvida?')
)

# --- Lógica do Servidor (Server) ---
server <- function(input, output, session) {
  
  # 1. Inicializa a conexão com o modelo de IA
  # Usamos ellmer para configurar o chat com o Gemini.
  # O 'system_prompt' define a persona e o conhecimento do nosso chatbot.
  chat <- ellmer::chat_google_gemini(model = "gemini-1.5-flash", # Modelo rápido e eficiente
                                     system_prompt = "
                                     Você é um AI Assistant da Análise Macro, preparado para ajudar alunos com dúvidas sobre
                                     Data Science usando as linguagens R, Python e SQL
                                     em temas como: Modelagem e Previsão, Séries Temporais, Econometria, Machine Learning,
                                     Macroeconomia, Macroeconometria e Análise de Demonstrações Contábeis.
                                     "
  )
  
  # 2. Reage à entrada do usuário
  # observeEvent escuta quando o usuário envia uma nova mensagem (input$chat_user_input).
  observeEvent(input$chat_user_input, {
    
    # 3. Envia a mensagem para a IA e obtém a resposta em streaming
    # chat$stream_async() envia a pergunta do usuário e retorna um objeto de stream.
    stream <- chat$stream_async(input$chat_user_input)
    
    # 4. Adiciona a resposta em streaming à interface
    # chat_append() do shinychat R exibe a resposta na tela, token por token.
    chat_append("chat", stream)
  })
}

# --- Executa a Aplicação ---
shinyApp(ui, server)

Entendendo o Código:

  • UI (Interface do Usuário): A mágica do shinychat R está aqui. A função chat_ui("chat", ...) cria sozinha a caixa de histórico de mensagens, o campo para o usuário digitar e o botão de envio. O argumento messages define a mensagem de boas-vindas inicial do bot.

  • Server (Lógica do Servidor):

    1. ellmer::chat_google_gemini(...): Preparamos nosso assistente de IA. O system_prompt é crucial, pois ele instrui o modelo sobre como ele deve se comportar e qual é sua área de especialização.

    2. observeEvent(input$chat_user_input, ...): Este é o gatilho. Toda vez que o usuário envia uma mensagem, o código dentro deste bloco é executado. O input$chat_user_input é um ID padrão criado pelo chat_ui.

    3. chat$stream_async(...): Enviamos a mensagem do usuário (input$chat_user_input) para o Gemini de forma assíncrona e solicitamos uma resposta em streaming.

    4. chat_append("chat", stream): Esta é a segunda função chave do shinychat R. Ela recebe o stream de resposta da IA e o anexa à interface de chat, criando aquele efeito de digitação em tempo real.

Com o arquivo app.R salvo, basta clicar no botão "Run App" no RStudio ou executar o seguinte comando no console: 

shiny::runApp("app.R")

Sua aplicação de chatbot será aberta no navegador, pronta para interagir!

Assistente de IA com Shinychat R

Conclusão

Como vimos, a combinação dos pacotes shinychat R e ellmer transforma a criação de chatbots avançados em R de uma tarefa complexa para um processo simples e elegante. O shinychat R abstrai toda a complexidade da interface do usuário, permitindo que você se concentre na lógica do seu assistente de IA. Esta abordagem abre um novo leque de possibilidades para a criação de ferramentas de dados interativas, tutores virtuais e assistentes inteligentes diretamente no ambiente R.

Quer aprender mais?

Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com o uso de Python e IA.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Econometria, ML ou IA para previsão da PMC?

A previsão de indicadores econômicos é uma tarefa crucial para governos, empresas e investidores. No Brasil, a Pesquisa Mensal de Comércio (PMC) do IBGE, que mede a variação percentual do volume de vendas no varejo, é um dos termômetros mais importantes da atividade econômica. Diante da crescente disponibilidade de ferramentas e técnicas, surge a pergunta: qual a melhor abordagem para prever a PMC? A econometria tradicional, o machine learning (ML) ou a inteligência artificial (IA) generativa?

Como criar um Assistente de IA com ShinyChat R

O Shiny R consolidou-se como a principal ferramenta para criar aplicações web interativas diretamente do R. Para elevar ainda mais o nível dessas aplicações, o pacote shinychat R surge como uma solução revolucionária, simplificando drasticamente a criação de interfaces de chat. Ao combiná-lo com o pacote ellmer para a comunicação com IAs generativas, torna-se incrivelmente fácil desenvolver chatbots sofisticados para análise de dados, atendimento ao cliente ou tutoria inteligente.

Como criar um Assistente de IA com ShinyChat Python

Nesta postagem, ensinamos a como criar um chatbot interativo utilizando o ShinyChat Python. Veremos os principais conceitos sobre o módulo Chat do Shiny e como integrá-lo a modelos de IA generativa, como Gemini, para criar um chatbot funcional em poucos passos.

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.