|
@@ -9,7 +9,7 @@ from langchain.callbacks.base import BaseCallbackManager
|
|
|
from langchain.callbacks.manager import Callbacks
|
|
|
from langchain.memory.summary import SummarizerMixin
|
|
|
from langchain.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate
|
|
|
-from langchain.schema import AgentAction, AgentFinish, AIMessage, HumanMessage
|
|
|
+from langchain.schema import AgentAction, AgentFinish, AIMessage, HumanMessage, OutputParserException
|
|
|
from langchain.tools import BaseTool
|
|
|
from langchain.agents.structured_chat.prompt import PREFIX, SUFFIX
|
|
|
|
|
@@ -94,7 +94,12 @@ class AutoSummarizingStructuredChatAgent(StructuredChatAgent, CalcTokenMixin):
|
|
|
full_inputs = self.summarize_messages(intermediate_steps, **kwargs)
|
|
|
|
|
|
full_output = self.llm_chain.predict(callbacks=callbacks, **full_inputs)
|
|
|
- return self.output_parser.parse(full_output)
|
|
|
+
|
|
|
+ try:
|
|
|
+ return self.output_parser.parse(full_output)
|
|
|
+ except OutputParserException:
|
|
|
+ return AgentFinish({"output": "I'm sorry, the answer of model is invalid, "
|
|
|
+ "I don't know how to respond to that."}, "")
|
|
|
|
|
|
def summarize_messages(self, intermediate_steps: List[Tuple[AgentAction, str]], **kwargs):
|
|
|
if len(intermediate_steps) >= 2:
|