Skip to content

joaobalogh/i2a2-prj-04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Agente de Análise de Dados com Google Gemini

1. Visão Geral

Este projeto é uma aplicação web interativa, construída com Streamlit, que permite a usuários realizarem análises de dados em arquivos CSV através de linguagem natural. A aplicação utiliza um agente inteligente, alimentado pelo modelo de linguagem Google Gemini, para interpretar as perguntas do usuário, gerar e executar código Python (usando a biblioteca Pandas), e apresentar os resultados de forma clara, seja como texto ou como visualizações gráficas.

O objetivo principal é democratizar a análise de dados, permitindo que até mesmo usuários sem conhecimento em programação possam extrair insights valiosos de seus datasets.

2. Funcionalidades Principais ✨

  • Upload de Arquivos CSV: Interface simples para carregar seus próprios datasets.
  • Chat Interativo: Converse com o agente para solicitar análises.
  • Interpretação de Linguagem Natural: O agente compreende perguntas complexas sobre os dados.
  • Geração e Execução de Código: Gera dinamicamente código Python (pandas, matplotlib, seaborn) para realizar as tarefas.
  • Auto-Correção: O agente é capaz de corrigir seu próprio código em caso de erros, realizando múltiplas tentativas.
  • Geração de Gráficos: Cria e exibe visualizações de dados como gráficos de barras, histogramas, heatmaps, etc.
  • Respostas em Linguagem Natural: Traduz os resultados técnicos (saídas de código) em explicações claras e objetivas.

3. Arquitetura do Agente 🧠

O agente segue um padrão de design inspirado em ReAct (Reason + Act). O fluxo de operação é o seguinte:

  1. Roteador (Router): Primeiro, o agente classifica a pergunta do usuário para entender sua intenção (é uma pergunta sobre os dados, sobre as capacidades do agente ou conhecimento geral?).
  2. Geração de Código (Code Generation): Se a pergunta for sobre os dados, o agente usa o contexto do DataFrame (colunas, tipos de dados, etc.), o histórico da conversa e a pergunta atual para gerar um script Python que possa respondê-la.
  3. Executor de Código (Code Executor): O script gerado é executado em um ambiente seguro. A saída (texto ou um arquivo de imagem) é capturada.
  4. Mecanismo de Correção (Self-Correction): Se o código falhar, o erro é capturado e enviado de volta para o passo de Geração de Código, que tentará uma nova abordagem.
  5. Sumarizador (Summarizer): Se o código for executado com sucesso e produzir um resultado textual, o agente o interpreta e gera uma explicação amigável para o usuário.

[Image of an AI agent architecture diagram]

4. Tecnologias Utilizadas 🛠️

  • Linguagem: Python 3.10+
  • Modelo de IA: Google Gemini (via google-generativeai)
  • Interface Web: Streamlit
  • Análise de Dados: Pandas
  • Visualização de Dados: Matplotlib, Seaborn

5. Guia de Instalação e Uso

5.1. Pré-requisitos

  • Python 3.10 ou superior
  • Uma chave de API do Google Gemini. Você pode obter uma no Google AI Studio.

5.2. Instalação

  1. Clone o repositório:

    git clone [https://github.com/seu-usuario/seu-repositorio.git](https://github.com/seu-usuario/seu-repositorio.git)
    cd seu-repositorio
  2. Crie e ative um ambiente virtual (recomendado):

    python -m venv venv
    source venv/bin/activate  # No Windows: venv\Scripts\activate
  3. Instale as dependências:

    pip install -r requirements.txt

    (Nota: Crie um arquivo requirements.txt com o conteúdo abaixo)

    streamlit
    pandas
    matplotlib
    seaborn
    google-generativeai
    

5.3. Configuração

O agente precisa da sua chave de API do Google Gemini. Exporte-a como uma variável de ambiente:

export GEMINI_API_KEY="SUA_CHAVE_DE_API_AQUI"

5.4. Execução

Para iniciar a aplicação, execute o seguinte comando no seu terminal:

streamlit run app.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages