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