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.
- 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.
O agente segue um padrão de design inspirado em ReAct (Reason + Act). O fluxo de operação é o seguinte:
- 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?).
- 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.
- Executor de Código (Code Executor): O script gerado é executado em um ambiente seguro. A saída (texto ou um arquivo de imagem) é capturada.
- 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.
- 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]
- 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
- Python 3.10 ou superior
- Uma chave de API do Google Gemini. Você pode obter uma no Google AI Studio.
-
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 -
Crie e ative um ambiente virtual (recomendado):
python -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
(Nota: Crie um arquivo
requirements.txtcom o conteúdo abaixo)streamlit pandas matplotlib seaborn google-generativeai
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"Para iniciar a aplicação, execute o seguinte comando no seu terminal:
streamlit run app.py