From ace4941d4525c45e480db8cfd2d83ee33b8053a4 Mon Sep 17 00:00:00 2001 From: Allen Chou Date: Tue, 30 May 2023 16:32:35 +0800 Subject: [PATCH] Skip fetch wiki if score over 0.9 --- app/app/main.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/app/main.py b/app/app/main.py index 751c6c9..95a9642 100644 --- a/app/app/main.py +++ b/app/app/main.py @@ -174,22 +174,28 @@ async def query( query_results = await doc_store.query(queries=emb_queries) for _query_call, query_result in zip(query_call.queries, query_results): - existed_doc_names = [ - doc.metadata["name"] - for doc in query_result.results - if doc.metadata.get("name") - ] + if any(map(lambda doc: doc.score >= 0.9, query_result.results)): + logger.debug( + "Skip wiki fetch. We have enough score with query " + + f"'{query_result.query}'." + ) + continue # Skip if we have enough score + fetch_and_upsert_wiki_docs_task = request.app.dispatch( "wiki.documents.fetch_and_upsert", context=dict( query=query_result.query, top_k=_query_call.top_k, - exclude_names=existed_doc_names, + exclude_names=[ + doc.metadata["name"] + for doc in query_result.results + if doc.metadata.get("name") + ], ), ) app.add_task( fetch_and_upsert_wiki_docs_task, - name="Task-wiki.documents.fetch_and_upsert-(query_result.query,)", + name=f"Task-wiki.documents.fetch_and_upsert-({query_result.query},)", ) return JsonResponse(asdict(api_model.QueryResponse(results=query_results)))