Создание агента для анализа данных на естественном языке с использованием Gemini и Pandas
В этом руководстве мы изучим, как использовать мощь моделей Gemini от Google вместе с гибкостью библиотеки Pandas для выполнения как простого, так и сложного анализа данных на классическом наборе данных о «Титанике». Объединив клиент ChatGoogleGenerativeAI с экспериментальным агентом Pandas из LangChain, мы создадим интерактивного «агента», который сможет интерпретировать запросы на естественном языке. Этот агент будет способен исследовать данные, вычислять статистику, находить корреляции и генерировать визуальные отчёты без необходимости писать ручной код для каждой задачи.
Почему стоит использовать агента на базе Gemini?
Традиционно работа с большими наборами данных требует глубоких знаний программирования и статистики. Но что, если бы вы могли задать вопросы данных на обычном языке? Gemini и LangChain делают это возможным. Они упрощают анализ данных, позволяя бизнес-профессионалам и аналитикам получать полезные инсайты без необходимости глубоких технических знаний.
Преимущества
- Интуитивный интерфейс для работы с данными.
- Экономия времени на анализ и визуализацию данных.
- Возможность осуществлять сложные запросы без написания кода.
Настройка окружения
Первоначально необходимо установить необходимые библиотеки. Запустите следующую команду:
!pip install langchain_experimental langchain_google_genai pandas
После установки импортируйте основные модули:
import os
import pandas as pd
import numpy as np
from langchain.agents.agent_types import AgentType
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain_google_genai import ChatGoogleGenerativeAI
Теперь установите переменную окружения GOOGLE_API_KEY, и мы готовы создать агента на базе Gemini для анализа данных в формате диалога.
Создание агента Gemini
def setup_gemini_agent(df, temperature=0, model="gemini-1.5-flash"):
llm = ChatGoogleGenerativeAI(
model=model,
temperature=temperature,
convert_system_message_to_human=True
)
agent = create_pandas_dataframe_agent(
llm=llm,
df=df,
verbose=True,
agent_type=AgentType.OPENAI_FUNCTIONS,
allow_dangerous_code=True
)
return agent
Эта функция инициализирует клиент LLM на базе Gemini с выбранной моделью и температурой, а затем оборачивает его в агент DataFrame LangChain, который может выполнять запросы на естественном языке к вашему DataFrame.
Загрузка и исследование данных
def load_and_explore_data():
print("Загрузка набора данных о Титанике...")
df = pd.read_csv(
"https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv"
)
print(f"Размер набора данных: {df.shape}")
print(f"Столбцы: {list(df.columns)}")
return df
Эта функция загружает CSV-файл о Титанике напрямую из репозитория GitHub Pandas, предоставляя быстрый обзор его размеров и названий столбцов.
Примеры базового анализа
def basic_analysis_demo(agent):
print("\nПРИМЕР БАЗОВОГО АНАЛИЗА")
print("=" * 50)
queries = [
"Сколько строк и столбцов в наборе данных?",
"Каков процент выживших?",
"Сколько людей имеют более трех братьев и сестер?",
"Каков квадратный корень от средней возраста?",
"Покажи распределение классов пассажиров"
]
for query in queries:
print(f"\nВопрос: {query}")
try:
result = agent.invoke(query)
print(f"Результат: {result['output']}")
except Exception as e:
print(f"Ошибка: {e}")
Это демонстрационная процедура инициализирует базовые исследовательские запросы к нашему агенту DataFrame, захватывая и отображая вывод или любые возникающие ошибки.
Советы по внедрению
Чтобы успешно интегрировать агента Gemini в ваши рабочие процессы, следуйте этим простым шагам:
- Начните с установки всех необходимых библиотек.
- Обратите внимание на структуру вашего набора данных и убедитесь, что он очищен и правильно подготовлен.
- Экспериментируйте с различными запросами, чтобы понять, как агент справляется с задачами.
- Задавайте уточняющие вопросы, чтобы получить более детальную информацию.
Частые ошибки
- Игнорирование необходимости очистки данных перед анализом.
- Стремление к получению слишком сложных запросов без предварительного тестирования простых.
- Неосторожное обращение с параметрами модели, как, например, температура.
Лайфхаки
- Используйте короткие и ясные формулировки запросов для лучшего понимания со стороны агента.
- Создайте набор стандартных вопросов для повседневного использования.
- Регулярно обновляйте библиотеки для доступа к новейшим функциям.
Заключение
Сочетание Pandas с Gemini через агент DataFrame от LangChain превращает исследование данных из написания шаблонного кода в создание ясных запросов на естественном языке. Пользователи могут вычислять сводные статистики, создавать пользовательские оценочные показатели риска, сравнивать несколько DataFrame или проводить углубленный анализ выживания, достигая всего этого с минимальными усилиями. Этот интерактивный аналитический помощник может адаптироваться к новым вопросам на лету, выявляя скрытые закономерности и ускоряя рабочие процессы.
Попробуйте данный подход в своем проекте и откройте для себя новые возможности анализа данных!