From 662a1fac472efdf784870aa6169d9175242eb343 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 24 Nov 2025 05:52:18 -0500 Subject: [PATCH] fix: hybrid search --- backend/open_webui/retrieval/utils.py | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/backend/open_webui/retrieval/utils.py b/backend/open_webui/retrieval/utils.py index 0587317bf6..b9053b5ccf 100644 --- a/backend/open_webui/retrieval/utils.py +++ b/backend/open_webui/retrieval/utils.py @@ -90,6 +90,19 @@ class VectorSearchRetriever(BaseRetriever): embedding_function: Any top_k: int + def _get_relevant_documents( + self, query: str, *, run_manager: CallbackManagerForRetrieverRun + ) -> list[Document]: + """Get documents relevant to a query. + + Args: + query: String to find relevant documents for. + run_manager: The callback handler to use. + + Returns: + List of relevant documents. + """ + async def _aget_relevant_documents( self, query: str, @@ -1231,6 +1244,24 @@ class RerankCompressor(BaseDocumentCompressor): extra = "forbid" arbitrary_types_allowed = True + def compress_documents( + self, + documents: Sequence[Document], + query: str, + callbacks: Optional[Callbacks] = None, + ) -> Sequence[Document]: + """Compress retrieved documents given the query context. + + Args: + documents: The retrieved documents. + query: The query context. + callbacks: Optional callbacks to run during compression. + + Returns: + The compressed documents. + + """ + async def acompress_documents( self, documents: Sequence[Document],