From 680482bd067f9c5ab52d55ba8160adaeac03c276 Mon Sep 17 00:00:00 2001 From: Yuhong Sun Date: Mon, 18 Mar 2024 16:33:49 -0700 Subject: [PATCH] Metadata filter for document search API (#53) --- backend/danswer/search/preprocessing/access_filters.py | 1 + backend/danswer/server/query_and_chat/query_backend.py | 1 + backend/ee/danswer/server/query_and_chat/query_backend.py | 1 + backend/tests/regression/answer_quality/eval_direct_qa.py | 1 + backend/tests/regression/answer_quality/relari.py | 1 + 5 files changed, 5 insertions(+) diff --git a/backend/danswer/search/preprocessing/access_filters.py b/backend/danswer/search/preprocessing/access_filters.py index 5ea2132028a4..e8141864d113 100644 --- a/backend/danswer/search/preprocessing/access_filters.py +++ b/backend/danswer/search/preprocessing/access_filters.py @@ -16,5 +16,6 @@ def build_user_only_filters(user: User | None, db_session: Session) -> IndexFilt source_type=None, document_set=None, time_cutoff=None, + tags=None, access_control_list=user_acl_filters, ) diff --git a/backend/danswer/server/query_and_chat/query_backend.py b/backend/danswer/server/query_and_chat/query_backend.py index b8c6945dcab4..a151c7d30d20 100644 --- a/backend/danswer/server/query_and_chat/query_backend.py +++ b/backend/danswer/server/query_and_chat/query_backend.py @@ -52,6 +52,7 @@ def admin_search( source_type=question.filters.source_type, document_set=question.filters.document_set, time_cutoff=question.filters.time_cutoff, + tags=question.filters.tags, access_control_list=user_acl_filters, ) diff --git a/backend/ee/danswer/server/query_and_chat/query_backend.py b/backend/ee/danswer/server/query_and_chat/query_backend.py index 06d3dd51d746..09dd2e17ab20 100644 --- a/backend/ee/danswer/server/query_and_chat/query_backend.py +++ b/backend/ee/danswer/server/query_and_chat/query_backend.py @@ -51,6 +51,7 @@ def handle_search_request( source_type=filters.source_type if filters else None, document_set=filters.document_set if filters else None, time_cutoff=filters.time_cutoff if filters else None, + tags=filters.tags if filters else None, access_control_list=user_acl_filters, ) diff --git a/backend/tests/regression/answer_quality/eval_direct_qa.py b/backend/tests/regression/answer_quality/eval_direct_qa.py index d32f2754725f..1a8ca7c4526e 100644 --- a/backend/tests/regression/answer_quality/eval_direct_qa.py +++ b/backend/tests/regression/answer_quality/eval_direct_qa.py @@ -82,6 +82,7 @@ def get_answer_for_question( source_type=None, document_set=None, time_cutoff=None, + tags=None, access_control_list=None, ) diff --git a/backend/tests/regression/answer_quality/relari.py b/backend/tests/regression/answer_quality/relari.py index 13df8ea2b6a8..e30a1640eda1 100644 --- a/backend/tests/regression/answer_quality/relari.py +++ b/backend/tests/regression/answer_quality/relari.py @@ -19,6 +19,7 @@ def get_answer_for_question(query: str, db_session: Session) -> OneShotQARespons source_type=None, document_set=None, time_cutoff=None, + tags=None, access_control_list=None, )