PandasAI: Платформа для анализа данных
PandasAI - это Python-платформа, которая позволяет легко задавать вопросы своим данным на естественном языке. Она помогает как не техническим пользователям взаимодействовать с данными более естественным образом, так и техническим пользователям экономить время и усилия при работе с данными.
🚀 Развертывание PandasAI
PandasAI может быть использована различными способами. Вы можете легко использовать ее в своих Jupyter-ноутбуках или Streamlit-приложениях, а также развернуть как REST API с помощью FastAPI или Flask. Если вы заинтересованы в управляемом облачном сервисе PandasAI Cloud или нашем предложении для предприятия с самостоятельным хостингом, свяжитесь с нами.
🔧 Начало работы
Полную документацию по PandasAI вы можете найти здесь. Вы можете либо решить использовать PandasAI в своих Jupyter-ноутбуках, Streamlit-приложениях, либо использовать архитектуру клиент-сервер из репозитория.
☁️ Использование платформы
📦 Установка
Платформа PandasAI использует docker-зированную архитектуру клиент-сервер. Вам потребуется иметь Docker установленным на вашем компьютере.
git clone https://github.com/sinaptik-ai/pandas-ai/
cd pandas-ai
docker-compose build
🚀 Запуск платформы
После того, как вы построили платформу, вы можете запустить ее с помощью:
docker-compose up
Это запустит клиент и сервер, и вы сможете получить доступ к клиенту по адресу .
📚 Использование библиотеки
📦 Установка
Вы можете установить библиотеку PandasAI с помощью pip или poetry. С помощью pip:
pip install pandasai
С помощью poetry:
poetry add pandasai
🔍 Демонстрация
Попробуйте библиотеку PandasAI самостоятельно в своем браузере:
import os
import pandas as pd
from pandasai import Agent
# Sample DataFrame
sales_by_country = pd.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] })
# По умолчанию, если вы не выберете другой LLM, будет использоваться BambooLLM.
# Вы можете получить свой бесплатный API-ключ, зарегистрировавшись на https://pandabi.ai (вы также можете настроить его в своем.env файле)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
agent = Agent(sales_by_country)
agent.chat('Which are the top 5 countries by sales?')
Ответ: China, United States, Japan, Germany, Australia
Или вы можете задать более сложные вопросы:
agent.chat( "What is the total sales for the top 3 countries by sales?" )
Ответ: The total sales for the top 3 countries by sales is 16500.
Генерация визуальных диаграмм
Вы также можете попросить PandasAI сгенерировать диаграммы для вас:
agent.chat( "Plot the histogram of countries showing for each one the gd. Use different colors for each bar", )
Несколько DataFrame
Вы также можете передать в PandasAI несколько DataFrame и задавать вопросы, связанные с ними.
import os
import pandas as pd
from pandasai import Agent
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 = pd.DataFrame(employees_data)
salaries_df = pd.DataFrame(salaries_data)
# По умолчанию, если вы не выберете другой LLM, будет использоваться BambooLLM.
# Вы можете получить свой бесплатный API-ключ, зарегистрировавшись на https://pandabi.ai (вы также можете настроить его в своем.env файле)
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
agent = Agent([employees_df, salaries_df])
agent.chat("Who gets paid the most?")
Ответ: Olivia gets paid the most.
Вы можете найти больше примеров в директории examples.
🔒 Конфиденциальность и безопасность
Для генерации кода Python для выполнения, мы берем некоторые случайные выборки из DataFrame, мы рандомизируем их (используя случайную генерацию для чувствительных данных и перемешивание для нечувствительных данных) и отправляем только рандомизированную голову в LLM. Если вы хотите усилить свою конфиденциальность, вы можете создать экземпляр PandasAI с enforce_privacy = True, который не будет отправлять голову (но только имена столбцов) в LLM.
📜 Лицензия
PandasAI доступна под лицензией MIT expat, за исключением директории pandasai/ee (которая имеет свою лицензию здесь, если применимо. Если вы заинтересованы в управляемом облачном сервисе PandasAI Cloud или нашем предложении для предприятия с самостоятельным хостингом, свяжитесь с нами.
Ресурсы
Документация для полной документации Примеры для примеров в ноутбуках Discord для обсуждения с сообществом и командой PandasAI