Spaces:
Runtime error
Runtime error
Update recommender/graph_retrieval.py
Browse files
recommender/graph_retrieval.py
CHANGED
|
@@ -7,6 +7,7 @@ from nodes.intent import CreditCardState
|
|
| 7 |
from neo4j import GraphDatabase
|
| 8 |
from neo4j.exceptions import ServiceUnavailable, TransientError
|
| 9 |
import time
|
|
|
|
| 10 |
|
| 11 |
#neo4j credentials
|
| 12 |
NEO4J_URI = os.environ.get("NEO4J_URI")
|
|
@@ -20,9 +21,16 @@ def get_driver():
|
|
| 20 |
_driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
|
| 21 |
return _driver
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
class Neo4jConnectionError(Exception):
|
| 24 |
pass
|
| 25 |
-
|
| 26 |
# --- Eligibility Filter ---
|
| 27 |
def eligibility_filter(cards, user_income, user_cibil, user_age,min_joining_fee, max_joining_fee,
|
| 28 |
min_annual_fee, max_annual_fee):
|
|
@@ -44,9 +52,6 @@ def eligibility_filter(cards, user_income, user_cibil, user_age,min_joining_fee,
|
|
| 44 |
eligible_cards.append(card_name)
|
| 45 |
return eligible_cards
|
| 46 |
|
| 47 |
-
class Neo4jConnectionError(Exception):
|
| 48 |
-
pass
|
| 49 |
-
|
| 50 |
class Neo4jRetrievalTool(BaseTool):
|
| 51 |
name: str = "neo4j_card_retriever"
|
| 52 |
description: str = "Runs Cypher and builds FAISS on filtered cards."
|
|
|
|
| 7 |
from neo4j import GraphDatabase
|
| 8 |
from neo4j.exceptions import ServiceUnavailable, TransientError
|
| 9 |
import time
|
| 10 |
+
import re
|
| 11 |
|
| 12 |
#neo4j credentials
|
| 13 |
NEO4J_URI = os.environ.get("NEO4J_URI")
|
|
|
|
| 21 |
_driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASS))
|
| 22 |
return _driver
|
| 23 |
|
| 24 |
+
def normalize_card_name(name):
|
| 25 |
+
name = name.lower()
|
| 26 |
+
name = name.replace("+", "plus")
|
| 27 |
+
name = re.sub(r"[^a-z0-9 ]", "", name)
|
| 28 |
+
name = re.sub(r"\s+", " ", name).strip()
|
| 29 |
+
return name
|
| 30 |
+
|
| 31 |
class Neo4jConnectionError(Exception):
|
| 32 |
pass
|
| 33 |
+
|
| 34 |
# --- Eligibility Filter ---
|
| 35 |
def eligibility_filter(cards, user_income, user_cibil, user_age,min_joining_fee, max_joining_fee,
|
| 36 |
min_annual_fee, max_annual_fee):
|
|
|
|
| 52 |
eligible_cards.append(card_name)
|
| 53 |
return eligible_cards
|
| 54 |
|
|
|
|
|
|
|
|
|
|
| 55 |
class Neo4jRetrievalTool(BaseTool):
|
| 56 |
name: str = "neo4j_card_retriever"
|
| 57 |
description: str = "Runs Cypher and builds FAISS on filtered cards."
|