From 997d95c8f8d08f9739da89d16b1edb0f371d6b99 Mon Sep 17 00:00:00 2001 From: Subhrajyoty Roy Date: Tue, 24 Sep 2024 17:44:59 +0530 Subject: [PATCH] community[patch]: callback before yield for bedrock llm (#26804) **Description:** Moves yield to after callback for `_prepare_input_and_invoke_stream` and `_aprepare_input_and_invoke_stream` for bedrock llm in community package. **Issue:** #16913 --- libs/community/langchain_community/llms/bedrock.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/community/langchain_community/llms/bedrock.py b/libs/community/langchain_community/llms/bedrock.py index 444d50eb24b48..2436ca765b173 100644 --- a/libs/community/langchain_community/llms/bedrock.py +++ b/libs/community/langchain_community/llms/bedrock.py @@ -657,12 +657,12 @@ def _prepare_input_and_invoke_stream( for chunk in LLMInputOutputAdapter.prepare_output_stream( provider, response, stop, True if messages else False ): - yield chunk # verify and raise callback error if any middleware intervened self._get_bedrock_services_signal(chunk.generation_info) # type: ignore[arg-type] if run_manager is not None: run_manager.on_llm_new_token(chunk.text, chunk=chunk) + yield chunk async def _aprepare_input_and_invoke_stream( self, @@ -703,13 +703,13 @@ async def _aprepare_input_and_invoke_stream( async for chunk in LLMInputOutputAdapter.aprepare_output_stream( provider, response, stop ): - yield chunk if run_manager is not None and asyncio.iscoroutinefunction( run_manager.on_llm_new_token ): await run_manager.on_llm_new_token(chunk.text, chunk=chunk) elif run_manager is not None: run_manager.on_llm_new_token(chunk.text, chunk=chunk) # type: ignore[unused-coroutine] + yield chunk @deprecated(