From 3c31bd0ed006c55155c4314d127bd970f6f278b2 Mon Sep 17 00:00:00 2001 From: ccurme Date: Wed, 8 May 2024 09:31:33 -0400 Subject: [PATCH] langchain: update use of predict_and_parse in LLMChainFilter (#21389) Following https://github.com/langchain-ai/langchain/pull/20130 Removes deprecation warnings in docs here: https://python.langchain.com/docs/modules/data_connection/retrievers/contextual_compression/ Tested using the same docs notebook + existing integration test. --- .../retrievers/document_compressors/chain_filter.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/langchain/langchain/retrievers/document_compressors/chain_filter.py b/libs/langchain/langchain/retrievers/document_compressors/chain_filter.py index 4b112b2482..8792a7036e 100644 --- a/libs/langchain/langchain/retrievers/document_compressors/chain_filter.py +++ b/libs/langchain/langchain/retrievers/document_compressors/chain_filter.py @@ -47,9 +47,10 @@ class LLMChainFilter(BaseDocumentCompressor): filtered_docs = [] for doc in documents: _input = self.get_input(query, doc) - include_doc = self.llm_chain.predict_and_parse( - **_input, callbacks=callbacks - ) + output_dict = self.llm_chain.invoke(_input, config={"callbacks": callbacks}) + output = output_dict[self.llm_chain.output_key] + if self.llm_chain.prompt.output_parser is not None: + include_doc = self.llm_chain.prompt.output_parser.parse(output) if include_doc: filtered_docs.append(doc) return filtered_docs