georgeek commited on
Commit
2123b97
·
1 Parent(s): a034ebc
One_model.py CHANGED
@@ -59,12 +59,16 @@ def parseBill(data):
59
  categories = set()
60
  names = set()
61
 
 
 
 
62
  for sub in subscribers:
63
  logicalResource = sub.get("logicalResource")
64
  billSummaryItems = sub.get("billSummaryItem", [])
65
  for item in billSummaryItems:
66
  try:
67
  categories.add(item["cat"]),
 
68
  names.add(item["name"])
69
  except KeyError:
70
  continue
@@ -76,6 +80,10 @@ def parseBill(data):
76
  "Valoare": item["amt"]
77
  })
78
 
 
 
 
 
79
 
80
  return {
81
  "Data factura": billDate,
@@ -84,7 +92,7 @@ def parseBill(data):
84
  "Costuri suplimentare": extraCharge,
85
  "Total plata factura": totalBillCosts,
86
  "Costuri utilizatori": subscriberCosts,
87
- "Categorii": list(categories),
88
  "Costuri": list(names)
89
  }
90
 
@@ -92,9 +100,9 @@ def check_related_keys(question, user_id):
92
  user_data = load_user_data(user_id)
93
  categories = set()
94
  for bill in user_data.get("bills", []):
95
- categories.update(bill.get("Categorii", []))
96
- st.write(f"Categorii: {categories}")
97
- return [category for category in categories if category.lower() in question.lower()]
98
 
99
  def process_query(query, user_id, model_name):
100
  user_data = load_user_data(user_id)
@@ -114,7 +122,7 @@ def process_query(query, user_id, model_name):
114
  )
115
 
116
  max_input_length = 5550
117
- st.write(f"Context:\n{context}")
118
  st.write(f"Context size: {len(context)} characters")
119
 
120
  if len(context) > max_input_length:
 
59
  categories = set()
60
  names = set()
61
 
62
+ for tax in taxItems:
63
+ categories.add(tax.get("cat"))
64
+
65
  for sub in subscribers:
66
  logicalResource = sub.get("logicalResource")
67
  billSummaryItems = sub.get("billSummaryItem", [])
68
  for item in billSummaryItems:
69
  try:
70
  categories.add(item["cat"]),
71
+ categories.add(item["name"]),
72
  names.add(item["name"])
73
  except KeyError:
74
  continue
 
80
  "Valoare": item["amt"]
81
  })
82
 
83
+ #st.write(f"Costuri totale factura: {totalBillCosts}")
84
+ #st.write(f"Costuri utilizatori: {subscriberCosts}")
85
+ #st.write(f"Categorii: {categories}")
86
+
87
 
88
  return {
89
  "Data factura": billDate,
 
92
  "Costuri suplimentare": extraCharge,
93
  "Total plata factura": totalBillCosts,
94
  "Costuri utilizatori": subscriberCosts,
95
+ "Entities": list(categories),
96
  "Costuri": list(names)
97
  }
98
 
 
100
  user_data = load_user_data(user_id)
101
  categories = set()
102
  for bill in user_data.get("bills", []):
103
+ categories.update(bill.get("Entities", []))
104
+ st.write(f"Entities: {categories}")
105
+ return [category for category in categories if any(word.lower() in question.lower() for word in category.split())]
106
 
107
  def process_query(query, user_id, model_name):
108
  user_data = load_user_data(user_id)
 
122
  )
123
 
124
  max_input_length = 5550
125
+ #st.write(f"Context:\n{context}")
126
  st.write(f"Context size: {len(context)} characters")
127
 
128
  if len(context) > max_input_length:
data/user_data/user_data_0721714413.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"bills": [{"Data factura": "2024-12-20", "Serie numar factura": "VDF682981042", "De plata": 10.15, "Costuri suplimentare": 10.15, "Total plata factura": [{"categorie": "Total factura curenta", "amount": 10.15}, {"categorie": "Total sume neincluse in baza de impozitare TVA", "amount": 10.15}, {"categorie": "Abonamente si extraoptiuni", "amount": 107.69}, {"categorie": "Reduceri", "amount": -107.69}, {"categorie": "Sold precedent", "amount": 10.15}, {"categorie": "Total platit din sold precedent", "amount": 10.15}, {"categorie": "Total de plata", "amount": 10.15}], "Costuri utilizatori": [{"Numar telefon": "721714413", "Categorie cost": "Sume incasate in numele tertilor", "Cost": "Donatii SMS (fara TVA)", "Valoare": 10.15}, {"Numar telefon": "721714413", "Categorie cost": "Reduceri", "Cost": "Reducere Vodafone Secure Net", "Valoare": -1.07}, {"Numar telefon": "721714413", "Categorie cost": "Reduceri", "Cost": "Reducere abonament lunar", "Valoare": -106.62}, {"Numar telefon": "721714413", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "RED INFINITY 25 DEMO", "Valoare": 106.62}, {"Numar telefon": "721714413", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Vodafone Secure Net", "Valoare": 1.07}], "Entities": ["Reducere abonament lunar", "Donatii SMS (fara TVA)", "Total sume neincluse in baza de impozitare TVA", "Total platit din sold precedent", "Reduceri", "Sold precedent", "Vodafone Secure Net", "RED INFINITY 25 DEMO", "Sume incasate in numele tertilor", "Reducere Vodafone Secure Net", "Total Sume incasate in numele tertilor", "Total factura curenta", "Abonamente si extraoptiuni", "Total de plata"], "Costuri": ["Reducere abonament lunar", "Donatii SMS (fara TVA)", "Vodafone Secure Net", "RED INFINITY 25 DEMO", "Reducere Vodafone Secure Net"]}]}
data/user_data/user_data_0724077190.json CHANGED
@@ -1 +1 @@
1
- {"bills": [{"Data factura": "2025-01-06", "Serie numar factura": "VDF685952701", "De plata": 5550.46, "Costuri suplimentare": 5445.53, "Total plata factura": [{"categorie": "Total factura curenta", "amount": 104.93}, {"categorie": "TVA 19%", "amount": 16.75}, {"categorie": "Total rate terminal", "amount": 5445.53}, {"categorie": "Abonamente si extraoptiuni", "amount": 91.17}, {"categorie": "Reduceri", "amount": -2.99}, {"categorie": "Rest plata", "amount": -5073.74}, {"categorie": "Sold precedent", "amount": -5073.74}, {"categorie": "Total de plata", "amount": 476.72}], "Costuri utilizatori": [{"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Red 11", "Valoare": 34.08}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promo", "Valoare": -8.52}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Secure Net", "Valoare": 2.99}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promotionala 12 luni", "Valoare": -4.26}, {"Numar telefon": "724015962", "Categorie cost": "Rate terminal", "Cost": "Promotie Vodafone Smartphone cu plata in rate 12/36", "Valoare": 70.99}, {"Numar telefon": "373920691", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Abonament Vodafone WiFi Instant Nelimitat+", "Valoare": 29.82}, {"Numar telefon": "724077190", "Categorie cost": "Reduceri", "Cost": "Reducere Secure Net", "Valoare": -2.99}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "RED Start", "Valoare": 38.33}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Secure Net", "Valoare": 2.99}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promotionala 12 luni", "Valoare": -4.26}, {"Numar telefon": "724077190", "Categorie cost": "Rate terminal", "Cost": "Valoare rate ramase pana la expirare contract", "Valoare": 5374.54}], "Categorii": ["Reduceri", "Abonamente si extraoptiuni", "Rate terminal", "Total sume datorate rate terminal"], "Costuri": ["Valoare rate ramase pana la expirare contract", "Secure Net", "Promotie Vodafone Smartphone cu plata in rate 12/36", "Abonament Vodafone WiFi Instant Nelimitat+", "Reducere promotionala 12 luni", "RED Start", "Reducere promo", "Red 11", "Reducere Secure Net"]}]}
 
1
+ {"bills": [{"Data factura": "2025-01-06", "Serie numar factura": "VDF685952701", "De plata": 5550.46, "Costuri suplimentare": 5445.53, "Total plata factura": [{"categorie": "Total factura curenta", "amount": 104.93}, {"categorie": "TVA 19%", "amount": 16.75}, {"categorie": "Total rate terminal", "amount": 5445.53}, {"categorie": "Abonamente si extraoptiuni", "amount": 91.17}, {"categorie": "Reduceri", "amount": -2.99}, {"categorie": "Rest plata", "amount": -5073.74}, {"categorie": "Sold precedent", "amount": -5073.74}, {"categorie": "Total de plata", "amount": 476.72}], "Costuri utilizatori": [{"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Red 11", "Valoare": 34.08}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promo", "Valoare": -8.52}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Secure Net", "Valoare": 2.99}, {"Numar telefon": "724015962", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promotionala 12 luni", "Valoare": -4.26}, {"Numar telefon": "724015962", "Categorie cost": "Rate terminal", "Cost": "Promotie Vodafone Smartphone cu plata in rate 12/36", "Valoare": 70.99}, {"Numar telefon": "373920691", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Abonament Vodafone WiFi Instant Nelimitat+", "Valoare": 29.82}, {"Numar telefon": "724077190", "Categorie cost": "Reduceri", "Cost": "Reducere Secure Net", "Valoare": -2.99}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "RED Start", "Valoare": 38.33}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Secure Net", "Valoare": 2.99}, {"Numar telefon": "724077190", "Categorie cost": "Abonamente si extraoptiuni", "Cost": "Reducere promotionala 12 luni", "Valoare": -4.26}, {"Numar telefon": "724077190", "Categorie cost": "Rate terminal", "Cost": "Valoare rate ramase pana la expirare contract", "Valoare": 5374.54}], "Entities": ["Rate terminal", "Reducere promotionala 12 luni", "Total sume datorate rate terminal", "Total de plata", "Secure Net", "Promotie Vodafone Smartphone cu plata in rate 12/36", "Red 11", "Reducere Secure Net", "Rest plata", "TVA 19%", "Reduceri", "Abonamente si extraoptiuni", "RED Start", "Reducere promo", "Total rate terminal", "Sold precedent", "Valoare rate ramase pana la expirare contract", "Abonament Vodafone WiFi Instant Nelimitat+", "Total factura curenta"], "Costuri": ["RED Start", "Secure Net", "Promotie Vodafone Smartphone cu plata in rate 12/36", "Red 11", "Valoare rate ramase pana la expirare contract", "Reducere promotionala 12 luni", "Reducere Secure Net", "Abonament Vodafone WiFi Instant Nelimitat+", "Reducere promo"]}]}
logs/conversation_logs.json CHANGED
@@ -106,5 +106,29 @@
106
  "total_tokens": 1452
107
  },
108
  "cost": 0.021779999999999997
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
  ]
 
106
  "total_tokens": 1452
107
  },
108
  "cost": 0.021779999999999997
109
+ },
110
+ {
111
+ "timestamp": "2025-01-16T17:25:05.245852",
112
+ "user_id": "0721714413",
113
+ "user_query": "care numar are costuri mai mari",
114
+ "assistant_response": "Din informa\u021biile furnizate \u00een JSON, putem observa urm\u0103toarele costuri facturate din factura cu seria \u201eVDF682981042\u201d:\n\n1. **Total de plata factura:** 10.15 lei\n2. **Costuri suplimentare:** 10.15 lei\n\n\u00cen ceea ce prive\u0219te costurile utilizatorilor, acestea includ:\n\n- **Donatii SMS (fara TVA):** 10.15 lei\n- **Reducere Vodafone Secure Net:** -1.07 lei\n- **Reducere abonament lunar:** -106.62 lei\n- **RED INFINITY 25 DEMO:** 106.62 lei\n- **Vodafone Secure Net:** 1.07 lei\n\nCosturile totale din aceste categorii se vor calcula ca fiind:\n\n- **Sume incasate in numele tertilor:** 10.15 lei (Donatii SMS)\n- **Reduceri:** -107.69 lei (cu -1.07 lei \u0219i -106.62 lei).\n- **Abonamente si extraoptiuni:** 107.69 lei (106.62 lei + 1.07 lei)\n\nTotalul costurilor utilizatorului pentru fiecare categorie arat\u0103 astfel:\n\n- Totalul evidentiat pentru **Sume \u00eencasate \u00een numele ter\u021bilor** este 10.15 lei.\n- Totalul **Reduceri** este -107.69 lei.\n- Totalul pentru **Abonamente \u0219i extraop\u021biuni** este 107.69 lei.\n\nAstfel, din analiza costurilor, reiese c\u0103 utilizatorul are costuri totale de 10.15 lei, iar costurile \u00eenregistrate din abonamente \u0219i extraop\u021biuni dep\u0103\u0219esc semnificativ sumele \u00eencasate prin dona\u021bii.\n\n\u00cen concluzie, factura referit\u0103 la acest num\u0103r arat\u0103 c\u0103 cea mai mare sum\u0103 este generat\u0103 prin **abonamente \u0219i extraop\u021biuni**, mai ales prin serviciile RED INFINITY 25 DEMO, care este semnificativ mai mare dec\u00e2t costurile totale facturate.",
115
+ "tokens": {
116
+ "prompt_tokens": 620,
117
+ "completion_tokens": 427,
118
+ "total_tokens": 1047
119
+ },
120
+ "cost": 0.015705
121
+ },
122
+ {
123
+ "timestamp": "2025-01-16T17:27:47.506227",
124
+ "user_id": "0721714413",
125
+ "user_query": "ce abonamente am",
126
+ "assistant_response": "Din informa\u021biile furnizate, iat\u0103 detaliile legate de abonamentele dvs.:\n\n1. **Abonamente \u0219i extraop\u021biuni**:\n - **RED INFINITY 25 DEMO**: 106.62 lei\n - **Vodafone Secure Net**: 1.07 lei\n\n2. **Reduceri**:\n - **Reducere abonament lunar**: -106.62 lei\n\nAstfel, abonamentul actual pe care \u00eel ave\u021bi este \u201eRED INFINITY 25 DEMO\u201d, iar \u201eReducerea abonament lunar\u201d a fost aplicat\u0103, reduc\u00e2nd valoarea total\u0103 a acestuia.",
127
+ "tokens": {
128
+ "prompt_tokens": 629,
129
+ "completion_tokens": 134,
130
+ "total_tokens": 763
131
+ },
132
+ "cost": 0.011444999999999999
133
  }
134
  ]
pages/Two_models.py CHANGED
@@ -59,12 +59,16 @@ def parseBill(data):
59
  categories = set()
60
  names = set()
61
 
 
 
 
62
  for sub in subscribers:
63
  logicalResource = sub.get("logicalResource")
64
  billSummaryItems = sub.get("billSummaryItem", [])
65
  for item in billSummaryItems:
66
  try:
67
  categories.add(item["cat"]),
 
68
  names.add(item["name"])
69
  except KeyError:
70
  continue
@@ -76,25 +80,13 @@ def parseBill(data):
76
  "Valoare": item["amt"]
77
  })
78
 
79
-
80
- return {
81
- "Data factura": billDate,
82
- "Serie numar factura": billNo,
83
- "De plata": amountDue,
84
- "Costuri suplimentare": extraCharge,
85
- "Total plata factura": totalBillCosts,
86
- "Costuri utilizatori": subscriberCosts,
87
- "Categorii": list(categories),
88
- "Costuri": list(names)
89
- }
90
-
91
  def check_related_keys(question, user_id):
92
  user_data = load_user_data(user_id)
93
  categories = set()
94
  for bill in user_data.get("bills", []):
95
  categories.update(bill.get("Categorii", []))
96
- st.write(f"Categorii: {categories}")
97
- return [category for category in categories if category.lower() in question.lower()]
98
 
99
  def process_query(query, user_id, model_name):
100
  user_data = load_user_data(user_id)
 
59
  categories = set()
60
  names = set()
61
 
62
+ for tax in taxItems:
63
+ categories.add(tax.get("cat"))
64
+
65
  for sub in subscribers:
66
  logicalResource = sub.get("logicalResource")
67
  billSummaryItems = sub.get("billSummaryItem", [])
68
  for item in billSummaryItems:
69
  try:
70
  categories.add(item["cat"]),
71
+ categories.add(item["name"]),
72
  names.add(item["name"])
73
  except KeyError:
74
  continue
 
80
  "Valoare": item["amt"]
81
  })
82
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  def check_related_keys(question, user_id):
84
  user_data = load_user_data(user_id)
85
  categories = set()
86
  for bill in user_data.get("bills", []):
87
  categories.update(bill.get("Categorii", []))
88
+ st.write(f"Entities: {categories}")
89
+ return [category for category in categories if any(word.lower() in question.lower() for word in category.split())]
90
 
91
  def process_query(query, user_id, model_name):
92
  user_data = load_user_data(user_id)