From aafaf3e193c31f3bb28afa477e629449d3cbda9f Mon Sep 17 00:00:00 2001 From: Silas Xu Date: Wed, 8 May 2024 21:32:17 +0800 Subject: [PATCH] The predict_and_parse is deprecated, instead pass an output parser directly to LLMChain. (#20130) The `predict_and_parse` method is deprecated, instead pass an output parser directly to LLMChain. - [x] **PR title**: "langchain: update chain_extract.py" ![image](https://github.com/langchain-ai/langchain/assets/40889019/e950d79f-5a0f-4086-86e9-89f627990fe5) --------- Co-authored-by: Chester Curme --- .../retrievers/document_compressors/chain_extract.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/langchain/langchain/retrievers/document_compressors/chain_extract.py b/libs/langchain/langchain/retrievers/document_compressors/chain_extract.py index b6d54647de..72e7e18335 100644 --- a/libs/langchain/langchain/retrievers/document_compressors/chain_extract.py +++ b/libs/langchain/langchain/retrievers/document_compressors/chain_extract.py @@ -64,7 +64,10 @@ class LLMChainExtractor(BaseDocumentCompressor): compressed_docs = [] for doc in documents: _input = self.get_input(query, doc) - output = 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: + output = self.llm_chain.prompt.output_parser.parse(output) if len(output) == 0: continue compressed_docs.append(