Pandas-AI#

Pandas-AI - библиотека Python, которая использует генеративную модель искусственного интеллекта для интерпретации запросов на естественном языке и их преобразования в код Python для взаимодействия с фреймами данных pandas и возвращения конечных результатов пользователю.

Установка#

pip install pandasai[qdrant]

Использование#

Можно начать разговор, создав экземпляр Agent, основанный на фрейме данных Pandas. По умолчанию для работы модели языка Pandas-AI требуется ключ API.

Полный список поддерживаемых моделей языка можно найти здесь.

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",
        ],
        "sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000],
    }
)

os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"

agent = Agent(sales_by_country)
agent.chat("Which are the top 5 countries by sales?")
# OUTPUT: China, United States, Japan, Germany, Australia

Поддержка Vector DB#

Можно обучить Pandas-AI лучше понимать данные и повысить качество результатов.

Vector DB может быть настроен как векторное хранилище для загрузки учебных данных и поиска семантически релевантного контента.

from pandasai.ee.vectorstores.qdrant import Qdrant

qdrant = Qdrant(
    collection_name="<SOME_COLLECTION>",
    embedding_model="sentence-transformers/all-MiniLM-L6-v2",
    url="http://localhost:6333",
    grpc_port=6334,
    prefer_grpc=True
)

agent = Agent(df, vector_store=qdrant)

# Train with custom information
agent.train(docs="The fiscal year starts in April")

# Train the q/a pairs of code snippets
query = "What are the total sales for the current fiscal year?"
response = """
import pandas as pd

df = dfs[0]

# Calculate the total sales for the current fiscal year
total_sales = df[df['date'] >= pd.to_datetime('today').replace(month=4, day=1)]['sales'].sum()
result = { "type": "number", "value": total_sales }
"""
agent.train(queries=[query], codes=[response])

# # The model will use the information provided in the training to generate a response

Дополнительная документация#