Criando IA Assistant usando Shiny no Python

Resumo

Nesta postagem, ensinamos a como criar um chatbot interativo utilizando o Shiny 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.


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 Chat, que permite construir interfaces de chat interativas e integrá-las a modelos de IA generativa, como OpenAI, Gemini, LangChain, entre outros.

O código em Python completo deste exercício está disponível para os membros do  Clube AM.

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.

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 Chat

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 Chat, é 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 Shiny Python

IA disponíveis

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

  • OpenAI
  • Gemini
  • LangChain
  • Anthropic

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

Principais funções e seus usos

  • 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

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, Econom

Tenha acesso ao código e suporte desse e de mais 500 exercícios no Clube AM!

Quer o código desse e de mais de 500 exercícios de análise de dados com ideias validadas por nossos especialistas em problemas reais de análise de dados do seu dia a dia? Além de acesso a vídeos, materiais extras e todo o suporte necessário para você reproduzir esses exercícios? Então, fale com a gente no Whatsapp e veja como fazer parte do Clube AM, clicando aqui.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar automação com Python e IA na análise de ações

No cenário atual, profissionais de finanças buscam formas mais rápidas, eficientes e precisas para analisar dados e tomar decisões. Uma das grandes revoluções para isso é o uso combinado de Python, automação e modelos de linguagem grande (LLMs), como o Google Gemini. O dashboard que criamos é um ótimo exemplo prático dessa integração, reunindo dados, cálculos, visualizações e análise textual em um único ambiente.

Análise de ações com IA - um guia inicial

Neste artigo, você vai aprender a integrar IA na análise de ações de forma automatizada utilizando Python. Ao final, você terá um pipeline completo capaz de coletar dados de mercado, gerar gráficos, elaborar relatórios com linguagem natural.

Quais são as ferramentas de IA?

Um aspecto crucial dos Agentes de IA é a sua capacidade de tomar ações, que acontecem por meio do uso de Ferramentas (Tools). Neste artigo, vamos aprender o que são Tools, como defini-las de forma eficaz e como integrá-las ao seu Agente por meio da System Prompt. Ao fornecer as Tools certas para o seu Agente — e ao descrever claramente como essas Tools funcionam — você pode aumentar drasticamente o que sua IA é capaz de realizar.

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.