Spaces:
Running
Running
Expense keyword updates
Browse files
main.py
CHANGED
|
@@ -152,7 +152,11 @@ expense_keywords = [
|
|
| 152 |
"paid", "bought", "purchased", "ordered", "spent", "payment",
|
| 153 |
"recharged", "booked", "transaction", "debit", "renewed",
|
| 154 |
"credit card", "cash", "amount", "transfer", "EMI", "wallet",
|
| 155 |
-
"petrol", "bill", "invoice"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
]
|
| 157 |
|
| 158 |
class TextInput(BaseModel):
|
|
@@ -716,6 +720,15 @@ async def analyze(input: TextInput):
|
|
| 716 |
|
| 717 |
best_label = label_map.get(best_label, best_label)
|
| 718 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 719 |
if "reported" in text or "announced" in text or "collapsed" in text:
|
| 720 |
if best_label in ["task", "reminder", "event"]:
|
| 721 |
best_label = "news"
|
|
@@ -736,12 +749,13 @@ async def analyze(input: TextInput):
|
|
| 736 |
mood = estimate_mood(text)
|
| 737 |
tags = generate_tags(best_label, text)
|
| 738 |
language_detected = detect_language(text)
|
| 739 |
-
sentiment_score = get_sentiment_score(text)
|
| 740 |
entities = await asyncio.to_thread(extract_entities, text)
|
| 741 |
people = entities["people"] # Extracted people entities
|
| 742 |
intent = infer_intent(best_label, text)
|
| 743 |
urgency_score = get_urgency_score(text, parsed_dates)
|
| 744 |
detected_stores = detect_store_category(text)
|
|
|
|
| 745 |
expense_category = ""
|
| 746 |
if best_label == "expense" or best_label == "purchase":
|
| 747 |
expense_category = predict_expense_category(text, detected_stores)
|
|
@@ -778,7 +792,7 @@ async def analyze(input: TextInput):
|
|
| 778 |
"people": people,
|
| 779 |
"mood": mood,
|
| 780 |
"language": language_detected,
|
| 781 |
-
"sentiment_score":
|
| 782 |
"tags": tags,
|
| 783 |
"action_required": action_required,
|
| 784 |
"entities": entities,
|
|
@@ -803,5 +817,4 @@ async def analyze(input: TextInput):
|
|
| 803 |
result.pop("raw_json", None)
|
| 804 |
|
| 805 |
# Return the result as JSON response
|
| 806 |
-
return ORJSONResponse(content=result)
|
| 807 |
-
|
|
|
|
| 152 |
"paid", "bought", "purchased", "ordered", "spent", "payment",
|
| 153 |
"recharged", "booked", "transaction", "debit", "renewed",
|
| 154 |
"credit card", "cash", "amount", "transfer", "EMI", "wallet",
|
| 155 |
+
"petrol", "bill", "invoice", "kharida", "kharcha", "kharch", "bill", "paisa", "khareed", "order", "le liya", "diya", "khud diya", "khud kharida",
|
| 156 |
+
"expense", "cost", "buy", "buying", "purchase", "purchased", "paid for", "paid to", "paid via", "paid using",
|
| 157 |
+
"expense", "expenses", "costs", "costing", "bills", "bought from", "ordered from", "paid at",
|
| 158 |
+
"paid online", "paid cash", "paid card", "paid wallet", "paid app", "paid through", "paid via",
|
| 159 |
+
"khariden", "kharidi"
|
| 160 |
]
|
| 161 |
|
| 162 |
class TextInput(BaseModel):
|
|
|
|
| 720 |
|
| 721 |
best_label = label_map.get(best_label, best_label)
|
| 722 |
|
| 723 |
+
if (
|
| 724 |
+
best_label == "task"
|
| 725 |
+
and (any(word in text.lower() for word in expense_keywords) or amounts)
|
| 726 |
+
):
|
| 727 |
+
best_label = "expense"
|
| 728 |
+
|
| 729 |
+
if best_label == "purchase":
|
| 730 |
+
best_label = "expense"
|
| 731 |
+
|
| 732 |
if "reported" in text or "announced" in text or "collapsed" in text:
|
| 733 |
if best_label in ["task", "reminder", "event"]:
|
| 734 |
best_label = "news"
|
|
|
|
| 749 |
mood = estimate_mood(text)
|
| 750 |
tags = generate_tags(best_label, text)
|
| 751 |
language_detected = detect_language(text)
|
| 752 |
+
# sentiment_score = get_sentiment_score(text)
|
| 753 |
entities = await asyncio.to_thread(extract_entities, text)
|
| 754 |
people = entities["people"] # Extracted people entities
|
| 755 |
intent = infer_intent(best_label, text)
|
| 756 |
urgency_score = get_urgency_score(text, parsed_dates)
|
| 757 |
detected_stores = detect_store_category(text)
|
| 758 |
+
|
| 759 |
expense_category = ""
|
| 760 |
if best_label == "expense" or best_label == "purchase":
|
| 761 |
expense_category = predict_expense_category(text, detected_stores)
|
|
|
|
| 792 |
"people": people,
|
| 793 |
"mood": mood,
|
| 794 |
"language": language_detected,
|
| 795 |
+
"sentiment_score": "",
|
| 796 |
"tags": tags,
|
| 797 |
"action_required": action_required,
|
| 798 |
"entities": entities,
|
|
|
|
| 817 |
result.pop("raw_json", None)
|
| 818 |
|
| 819 |
# Return the result as JSON response
|
| 820 |
+
return ORJSONResponse(content=result)
|
|
|