Uma plataforma Python para conversar com bancos de dados e data lakes em linguagem natural, usando LLM e tecnologias RAG para tornar a análise de dados conversacional.
Descrição Detalhada do Projeto PandasAI
Visão Geral do Projeto
PandasAI é uma plataforma Python inovadora que permite aos utilizadores interagir com bases de dados e data lakes usando linguagem natural. Desenvolvido pela equipa Sinaptik-AI, este projeto visa tornar a análise de dados mais intuitiva e acessível, independentemente do nível técnico do utilizador.
Endereço GitHub: https://github.com/Sinaptik-AI/pandas-ai
Funcionalidades Principais
1. Consulta de Dados em Linguagem Natural
- Suporta perguntas relacionadas a dados em linguagem natural.
- Não é necessário escrever consultas SQL complexas ou código Python.
- Adequado para utilizadores técnicos e não técnicos.
2. Suporte a Múltiplas Fontes de Dados
- Bases de Dados: Bases de dados SQL.
- Formatos de Ficheiro: Ficheiros CSV, Parquet.
- DataFrames: Pandas DataFrame.
- Outros: MongoDB, NoSQL, etc.
3. Integração de Tecnologias LLM e RAG
- Utiliza Grandes Modelos de Linguagem (LLM) para compreender consultas em linguagem natural.
- Adota a tecnologia de Geração Aumentada por Recuperação (RAG) para melhorar a precisão das consultas.
- Usa BambooLLM por padrão, mas também suporta outros LLMs.
4. Visualização de Dados
- Geração automática de vários gráficos.
- Suporta múltiplos tipos de gráficos, como histogramas, gráficos de barras, etc.
- Estilos e cores de gráficos personalizáveis.
Características Técnicas
Requisitos do Sistema
- Python 3.8+ < 3.12
- Suporta Jupyter notebooks e aplicações Streamlit.
- Oferece arquitetura cliente-servidor.
Instalação
Instalação com pip:
pip install "pandasai>=3.0.0b2"
Instalação com poetry:
poetry add "pandasai>=3.0.0b2"
Exemplo de Uso Básico
Consulta de um Único DataFrame
import pandasai as pai
# Criar um DataFrame de exemplo
df = pai.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
# Definir a chave API
pai.api_key.set("your-pai-api-key")
# Realizar uma consulta em linguagem natural
df.chat('Which are the top 5 countries by sales?')
Consulta de Associação de Múltiplos DataFrames
import pandasai as pai
employees_data = {
'EmployeeID': [1, 2, 3, 4, 5],
'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}
salaries_data = {
'EmployeeID': [1, 2, 3, 4, 5],
'Salary': [5000, 6000, 4500, 7000, 5500]
}
employees_df = pai.DataFrame(employees_data)
salaries_df = pai.DataFrame(salaries_data)
pai.api_key.set("your-pai-api-key")
pai.chat("Who gets paid the most?", employees_df, salaries_df)
Geração de Gráficos
df.chat(
"Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)
Funcionalidades Avançadas
Integração com Plataformas de Dados
PandasAI oferece poderosas funcionalidades de integração com plataformas de dados, permitindo carregar e partilhar dados facilmente:
import pandasai as pai
pai.api_key.set("your-pai-api-key")
file = pai.read_csv("./filepath.csv")
dataset = pai.create(path="your-organization/dataset-name",
df=file,
name="dataset-name",
description="dataset-description")
dataset.push()
Ambiente Sandbox Docker
Para fornecer um ambiente de execução de código seguro, PandasAI suporta o sandbox Docker:
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
# Inicializar o sandbox
sandbox = DockerSandbox()
sandbox.start()
# Executar a consulta no sandbox
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
# Parar o sandbox
sandbox.stop()
Cenários de Uso
Público-Alvo
- Utilizadores Não Técnicos: Analisar dados sem aprender SQL ou Python.
- Analistas de Dados: Explorar e analisar dados rapidamente.
- Desenvolvedores: Integrar em aplicações existentes.
- Utilizadores Corporativos: Construir ferramentas internas de análise de dados.
Aplicações Típicas
- Análise de Business Intelligence
- Exploração e visualização de dados
- Geração de relatórios
- Educação e formação
- Desenvolvimento de protótipos
Arquitetura Técnica
Componentes Principais
- Processamento de Linguagem Natural: Compreender a intenção da consulta do utilizador.
- Geração de Código: Converter linguagem natural em código executável.
- Execução Segura: Executar código de forma segura num ambiente sandbox.
- Apresentação de Resultados: Formatar e exibir os resultados da consulta.
Extensibilidade
- Suporta múltiplos backends LLM.
- Conectores de dados personalizáveis.
- Arquitetura plug-in para fácil extensão.
Conclusão
PandasAI representa uma inovação significativa no campo da análise de dados, reduzindo drasticamente a barreira técnica para a análise de dados através do processamento de linguagem natural e da tecnologia LLM. Não é apenas adequado para utilizadores individuais explorarem dados, mas também para empresas construírem plataformas inteligentes de análise de dados. Com o desenvolvimento contínuo da tecnologia de IA, ferramentas como esta desempenharão um papel cada vez mais importante na tomada de decisões orientada por dados.