Spaces:
Sleeping
Sleeping
add renranker changes
Browse files- rag_app/rag_2.py +12 -0
rag_app/rag_2.py
CHANGED
|
@@ -77,6 +77,15 @@ def is_harmful(query):
|
|
| 77 |
return any(keyword in query.lower() for keyword in harmful_keywords)
|
| 78 |
|
| 79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
def answer_question(query):
|
| 81 |
print("loading bm25 retriever")
|
| 82 |
bm25_retriever = BM25Retriever.from_persist_dir("models/bm25_retriever")
|
|
@@ -106,5 +115,8 @@ def answer_question(query):
|
|
| 106 |
if is_harmful(query):
|
| 107 |
return "This query has been flagged as unsafe."
|
| 108 |
|
|
|
|
|
|
|
|
|
|
| 109 |
response = keyword_query_engine.query(query)
|
| 110 |
return str(response)
|
|
|
|
| 77 |
return any(keyword in query.lower() for keyword in harmful_keywords)
|
| 78 |
|
| 79 |
|
| 80 |
+
def is_relevant(query, index, threshold=0.7):
|
| 81 |
+
retriever = index.as_retriever(similarity_top_k=1)
|
| 82 |
+
nodes = retriever.retrieve(query)
|
| 83 |
+
if not nodes:
|
| 84 |
+
return False
|
| 85 |
+
similarity = nodes[0].score
|
| 86 |
+
return not similarity <= threshold
|
| 87 |
+
|
| 88 |
+
|
| 89 |
def answer_question(query):
|
| 90 |
print("loading bm25 retriever")
|
| 91 |
bm25_retriever = BM25Retriever.from_persist_dir("models/bm25_retriever")
|
|
|
|
| 115 |
if is_harmful(query):
|
| 116 |
return "This query has been flagged as unsafe."
|
| 117 |
|
| 118 |
+
if not is_relevant(query, index, 0.2):
|
| 119 |
+
return "This query doesn't appear relevant to finance."
|
| 120 |
+
|
| 121 |
response = keyword_query_engine.query(query)
|
| 122 |
return str(response)
|