From 1c0857b53e486f3b2ad5154095754fcc33209cff Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Thu, 12 Oct 2023 14:13:59 +0100 Subject: [PATCH] Fix default impl of aparse_result (#11702) Should delegate to parse_result, not to aparse, as parse_result is a method that some output parsers override --- libs/langchain/langchain/schema/output_parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/langchain/langchain/schema/output_parser.py b/libs/langchain/langchain/schema/output_parser.py index 1bf65c9122..eed1491b8f 100644 --- a/libs/langchain/langchain/schema/output_parser.py +++ b/libs/langchain/langchain/schema/output_parser.py @@ -1,6 +1,7 @@ from __future__ import annotations import asyncio +import functools from abc import ABC, abstractmethod from typing import ( Any, @@ -250,7 +251,9 @@ class BaseOutputParser( Returns: Structured output. """ - return await self.aparse(result[0].text) + return await asyncio.get_running_loop().run_in_executor( + None, functools.partial(self.parse_result, partial=partial), result + ) async def aparse(self, text: str) -> T: """Parse a single string model output into some structure.