Una plataforma Python para interactuar con bases de datos y data lakes utilizando lenguaje natural, empleando tecnologías LLM y RAG para hacer que el análisis de datos sea conversacional.
Descripción Detallada del Proyecto PandasAI
Visión General del Proyecto
PandasAI es una innovadora plataforma Python que permite a los usuarios interactuar con bases de datos y data lakes utilizando lenguaje natural. Desarrollado por el equipo de Sinaptik-AI, este proyecto tiene como objetivo hacer que el análisis de datos sea más intuitivo y fácil de usar, independientemente del nivel técnico del usuario.
Dirección de GitHub: https://github.com/Sinaptik-AI/pandas-ai
Características Principales
1. Consulta de Datos en Lenguaje Natural
- Permite hacer preguntas relacionadas con los datos en lenguaje natural
- No requiere escribir consultas SQL complejas ni código Python
- Adecuado tanto para usuarios no técnicos como técnicos
2. Soporte para Múltiples Fuentes de Datos
- Bases de Datos: Bases de datos SQL
- Formatos de Archivo: Archivos CSV, Parquet
- DataFrames: Pandas DataFrame
- Otros: MongoDB, NoSQL, etc.
3. Integración de Tecnologías LLM y RAG
- Utiliza Grandes Modelos de Lenguaje (LLM) para comprender las consultas en lenguaje natural
- Emplea la técnica de Generación Aumentada por Recuperación (RAG) para mejorar la precisión de las consultas
- Utiliza BambooLLM por defecto, y también soporta otros LLM
4. Visualización de Datos
- Genera automáticamente varios tipos de gráficos
- Soporta múltiples tipos de gráficos como histogramas, gráficos de barras, etc.
- Permite personalizar estilos y colores de los gráficos
Características Técnicas
Requisitos del Sistema
- Python 3.8+ < 3.12
- Soporta Jupyter notebooks y aplicaciones Streamlit
- Ofrece una arquitectura cliente-servidor
Métodos de Instalación
Instalación con pip:
pip install "pandasai>=3.0.0b2"
Instalación con poetry:
poetry add "pandasai>=3.0.0b2"
Ejemplos de Uso Básico
Consulta de un Solo DataFrame
import pandasai as pai
# Crear un DataFrame de ejemplo
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]
})
# Configurar la clave API
pai.api_key.set("your-pai-api-key")
# Realizar una consulta en lenguaje natural
df.chat('Which are the top 5 countries by sales?')
Consulta de Múltiples DataFrames Relacionados
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)
Generación de Gráficos
df.chat(
"Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)
Funcionalidades Avanzadas
Integración con Plataformas de Datos
PandasAI ofrece potentes capacidades de integración con plataformas de datos, permitiendo cargar y compartir datos fácilmente:
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()
Entorno Sandbox de Docker
Para proporcionar un entorno seguro de ejecución de código, PandasAI soporta el sandbox de Docker:
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
# Inicializar el sandbox
sandbox = DockerSandbox()
sandbox.start()
# Ejecutar la consulta en el sandbox
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
# Detener el sandbox
sandbox.stop()
Casos de Uso
Audiencia Objetivo
- Usuarios no técnicos: Pueden analizar datos sin necesidad de aprender SQL o Python
- Analistas de datos: Para explorar y analizar datos rápidamente
- Desarrolladores: Para integrar en aplicaciones existentes
- Usuarios empresariales: Para construir herramientas internas de análisis de datos
Aplicaciones Típicas
- Análisis de inteligencia de negocios
- Exploración y visualización de datos
- Generación de informes
- Educación y formación
- Desarrollo de prototipos
Arquitectura Técnica
Componentes Principales
- Procesamiento de Lenguaje Natural: Para comprender la intención de la consulta del usuario
- Generación de Código: Para convertir el lenguaje natural en código ejecutable
- Ejecución Segura: Para ejecutar código de forma segura en un entorno sandbox
- Presentación de Resultados: Para formatear y mostrar los resultados de la consulta
Escalabilidad
- Soporta múltiples backends de LLM
- Conectores de datos personalizables
- Arquitectura de plugins para facilitar la extensión
Resumen
PandasAI representa una innovación significativa en el campo del análisis de datos, reduciendo drásticamente la barrera técnica para el análisis de datos mediante el procesamiento de lenguaje natural y la tecnología LLM. No solo es adecuado para usuarios individuales que exploran datos, sino también para empresas que buscan construir plataformas inteligentes de análisis de datos. Con el continuo avance de la tecnología de IA, herramientas como esta desempeñarán un papel cada vez más importante en la toma de decisiones basada en datos.