-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpandasai_chatbot.py
63 lines (45 loc) · 1.92 KB
/
pandasai_chatbot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import os
import openai
import warnings
import numpy as np
import pandas as pd
import seaborn as sns
from pandasai import Agent
from pandasai.llm import OpenAI
import matplotlib.pyplot as plt
from pandasai import SmartDataframe
from pandasai.connectors import BaseConnector
from pandasai.connectors import PandasConnector
warnings.filterwarnings('ignore')
os.environ['G_ENABLE_DIAGNOSTIC'] = '0'
warnings.filterwarnings("ignore", category=DeprecationWarning)
llm = OpenAI(api_token="Your OpenAI API Key")
data = pd.read_csv('Data/harcama_gecmisi_ocak_subat.csv')
field_descriptions = {
'Tarih': 'Harcamanın yapıldığı tarih. (Örneğin: 2024-01-15)',
'İşlem Türü': 'Harcamanın türü. Bu, harcamanın hangi kategoriye girdiğini belirtir. (Örneğin: Alışveriş, Fatura Ödemesi, ATM Çekimi, Restoran, Ulaşım)',
'Tutar': 'Harcamanın parasal değeri. (Örneğin: 150.75)',
'Harcama Kategorisi': 'Harcamanın yapıldığı genel kategori. (Örneğin: Market, Elektrik, Su, İnternet, ATM, Restoran, Ulaşım)',
'Açıklama': 'Harcama hakkında daha spesifik bilgi veren açıklama. Genellikle mağaza adı veya fatura türü gibi detaylar içerir. (Örneğin: Migros, Kebapçı, Otobüs)',
}
config = {
'llm': llm,
'save_charts': True,
'save_charts_path': 'exports/charts',
'open_charts': False,
'max_retries': 1}
connector = PandasConnector(
{"original_df": data},
field_descriptions=field_descriptions)
df = SmartDataframe(connector,
description="Kişinin banka hesabından yaptığı harcama kayıtları",
config=config
)
def tr_promts(df, prompt):
tr_promt = " Cevabı Türkçe olarak 1 kez döndür. Eğer grafik istiyorsam sadece 1 kez grafiği çiz."
full_prompt = prompt + tr_promt
response = df.chat(full_prompt)
return response
user_input = input("Size nasıl yardımcı olabilirim: ")
response = tr_promts(df, user_input)
print(response)