Como criar um Assistente de IA com ShinyChat Python

Introdução

O Shiny Python é uma ferramenta que facilita a criação de aplicativos web interativos diretamente com Python. Recentemente, o Shiny introduziu um novo componente chamado ShinyChat Python, que permite construir interfaces de chat interativas e integrá-las a modelos de IA generativa, como OpenAI, Gemini, LangChain, entre outros.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.

Shiny Python

Shiny para Python é uma biblioteca que permite a criação de aplicativos web interativos com um enfoque simples e direto, usando apenas Python. Inspirado no sucesso do Shiny para R, ele traz a mesma facilidade para quem deseja transformar análises de dados, visualizações ou modelos de machine learning em ferramentas interativas que podem ser acessadas via navegador, sem a necessidade de conhecimento avançado em desenvolvimento web.

shiny python

Como funciona o Shiny Python?

No núcleo do Shiny Python estão dois componentes essenciais:

  1. UI (Interface de Usuário): A parte do aplicativo que o usuário vê e interage. Usando componentes prontos, como botões, caixas de texto, gráficos e, agora, interfaces de chat, é possível construir interfaces dinâmicas e responsivas.
  2. Server (Servidor): Onde a lógica do aplicativo reside. É aqui que você processa as entradas dos usuários, manipula dados e gera saídas, como gráficos ou respostas automatizadas em um chatbot.

Potencial e Aplicações do Shiny Python

O Shiny Python oferece uma gama de possibilidades para diferentes áreas:

  • Visualização de Dados: Crie dashboards interativos que respondem em tempo real a mudanças nos dados, permitindo uma análise dinâmica.
  • Machine Learning: Integre modelos de machine learning treinados em Python diretamente na interface. O usuário pode fazer previsões em tempo real, modificar parâmetros e visualizar os resultados.
  • Ferramentas de Negócios: Desde relatórios dinâmicos até calculadoras de risco e retorno, o Shiny Python oferece flexibilidade para empresas que precisam de soluções personalizadas baseadas em dados.

O Componente ShinyChat Python

Uma das mais recentes e interessantes adições ao Shiny Python é o componente de Chat. Com ele, é possível construir interfaces de chat onde os usuários podem interagir diretamente com o aplicativo, simulando um atendimento ao cliente automatizado ou utilizando IAs generativas para fornecer respostas mais complexas e contextualizadas.

Com o ShinyChat Python, é possível:

  • Criar bots de conversação integrados a modelos de IA, como OpenAIGemini, e LangChain.
  • Desenvolver interfaces onde o usuário insere texto, faz perguntas ou solicita ações, e o backend responde com base em algoritmos de machine learning ou repositórios de conhecimento.
  • Integrar modelos generativos que aprendem com as interações e geram respostas sob demanda, utilizando funções de streaming para respostas mais fluidas.

Com a flexibilidade do Shiny Python, essas interações podem ser personalizadas, ajustadas e integradas a outras ferramentas, como APIs de terceiros, bases de dados, ou até mesmo sistemas de recomendação.


Como funciona o módulo Chat do ShinyChat Python

IA disponíveis

O módulo Chat do Shiny Python é compatível com diversas IAs generativas, como:

  • OpenAI
  • Gemini
  • LangChain
  • Anthropic
  • Entre outros

Essas IAs podem ser integradas para oferecer respostas instantâneas aos usuários do chatbot.

Principais funções e usos do ShinyChat Python

  • chat.ui(): Define a interface de chat.
  • @chat.on_user_submit: Define uma função assíncrona que processa o input do usuário.
  • chat.append_message(): Adiciona uma mensagem ao chat.
  • chat.append_message_stream(): Utiliza o modo streaming para adicionar mensagens de forma contínua.
  • chat.messages(): Retorna as mensagens do chat.

Essas funções permitem personalizar o comportamento do chatbot, desde a coleta de mensagens até a resposta da IA.


Criando um Chatbot usando Gemini + ShinyChat Python

Agora, vamos criar um chatbot integrado à IA Gemini. Siga os passos abaixo:

1° Passo: Configurando o ambiente

Utilize o comando abaixo para gerar o template de um chatbot com IA:

shiny create --template chat-ai-gemini

2° Passo: Integrando o API Key

Obtenha a chave da API da Gemini e insira no arquivo app.py, seguindo as instruções fornecidas no topo do arquivo.

3° Passo: Definindo a interface

No seu arquivo app.py você pode definir a interface que desejar, entretanto, por padrão, a seguinte interface é criada:

from app_utils import load_dotenv
from google.generativeai import GenerativeModel
from shiny.express import ui
# Either explicitly set the GOOGLE_API_KEY environment variable before launching the
# app, or set them in a file named `.env`. The `python-dotenv` package will load `.env`
# as environment variables which can later be read by `os.getenv()`.
load_dotenv()
llm = GenerativeModel()
# Set some Shiny page options
ui.page_opts(
    title="Hello Google Gemini Chat",
    fillable=True,
    fillable_mobile=True,
)
# Create and display empty chat
chat = ui.Chat(id="chat")
chat.ui()
# Define a callback to run when the user submits a message
@chat.on_user_submit
async def _():
# Get messages currently in the chat
    contents = chat.messages(format="google")
# Generate a response message stream
    response = llm.generate_content(
        contents=contents,
        stream=True,
    )
# Append the response stream into the chat
await chat.append_message_stream(response)

4° Passo: Testando e rodando o chatbot

Rode o comando abaixo para iniciar o servidor:

shiny run app.py

Isso irá abrir o aplicativo em seu navegador, onde você poderá interagir com o chatbot usando a IA Gemini.

5° Passo (extra): Adicionando contexto ao chatbot

É possível adicionar contexto e instruções para a AI definindo o parâmetro messages na função chat.messages. O código abaixo exemplifica como usar o parâmetro, dado que é necessário usar uma lista com um dicionário, definindo a chave com user, se o usuário é o assistente, o sistema ou usuário. E outra chave com content definindo a instrução para o Chatbot.

Exemplo:

chat = ui.Chat(id="chat", messages = [{'user' : 'assistant',
                                           'content' : """Oi! Eu sou o Chatbot da Análise Macro e estou aqui para te ajudar com
                                                          Data Science usando as linguagens R, Python e SQL
                                                          para Modelagem e Previsão, Séries Temporais, Econometria, Machine Learning, Macroeconomia, Macroeconometria e Análise de Demonstrações Contábeis."""}]) shinychat python

Conclusão

O Shiny Python, com a recente adição do componente ShinyChat Python, emerge como uma ferramenta poderosa e acessível para o desenvolvimento de aplicações web interativas, especialmente chatbots. A facilidade de integração com modelos de IA generativa, como o Gemini, exemplifica como é possível construir interfaces conversacionais robustas e funcionais com poucas linhas de código. Essa capacidade de transformar análises de dados e modelos de machine learning em ferramentas interativas e acessíveis via navegador democratiza o acesso à inteligência artificial, permitindo que empresas e desenvolvedores criem soluções personalizadas para visualização de dados, machine learning e automação de tarefas.

Há ainda, o uso e implementação da biblioteca Chatlas, que se posiciona como um complemento ideal para o Shiny Python. Enquanto o Shiny oferece a estrutura e a interface para o chatbot, o Chatlas poderia atuar como o "cérebro" por trás da interação, fornecendo uma camada avançada de processamento de linguagem natural e acesso unificado a diversas fontes de dados empresariais.

A integração do Chatlas com um chatbot Shiny Python permitiria que os usuários não apenas conversassem com um modelo de IA genérico, mas sim com seus próprios dados corporativos, fazendo perguntas complexas em linguagem natural e recebendo insights acionáveis diretamente na interface do Shiny. Isso transformaria um chatbot comum em um assistente de dados inteligente e altamente contextualizado, elevando a experiência do usuário e o valor estratégico da aplicação. Mas, essa integração, deixemos em uma postagem futura no blog da Análise Macro.

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

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.

Como criar Agentes de Economia com CrewAI

O CrewAI é uma biblioteca open source que permite criar times de agentes de IA atuando de forma colaborativa. Cada agente recebe um papel, um objetivo e um histórico contextual, tornando-o especializado para tarefas específicas. Na área de economia e finanças, isso possibilita montar equipes virtuais capazes de consultar dados do Banco Central, interpretar indicadores e gerar relatórios automáticos de forma eficiente.

Como criar Agentes de Economia com Google ADK

A inteligência artificial está evoluindo dos modelos que apenas respondem comandos para agentes capazes de agir, decidir e colaborar. O Agent Development Kit (ADK), do Google, surge como uma ferramenta para criar times de agentes, unindo LLMs a fluxos de trabalho bem definidos. Para economistas e cientistas de dados econômicos, isso abre espaço para automatizar rotinas complexas — como consultas em APIs e geração de relatórios — de maneira mais inteligente e autônoma.

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.