|
|
|
|
@ -4,7 +4,6 @@ from typing import Any
|
|
|
|
|
|
|
|
|
|
from langchain.schema import BaseOutputParser
|
|
|
|
|
|
|
|
|
|
from core.model_runtime.errors.invoke import InvokeError
|
|
|
|
|
from core.prompt.prompts import SUGGESTED_QUESTIONS_AFTER_ANSWER_INSTRUCTION_PROMPT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -14,11 +13,11 @@ class SuggestedQuestionsAfterAnswerOutputParser(BaseOutputParser):
|
|
|
|
|
return SUGGESTED_QUESTIONS_AFTER_ANSWER_INSTRUCTION_PROMPT
|
|
|
|
|
|
|
|
|
|
def parse(self, text: str) -> Any:
|
|
|
|
|
json_string = text.strip()
|
|
|
|
|
action_match = re.search(r".*(\[\".+\"\]).*", json_string, re.DOTALL)
|
|
|
|
|
action_match = re.search(r"\[.*?\]", text.strip(), re.DOTALL)
|
|
|
|
|
if action_match is not None:
|
|
|
|
|
json_obj = json.loads(action_match.group(1).strip(), strict=False)
|
|
|
|
|
json_obj = json.loads(action_match.group(0).strip())
|
|
|
|
|
else:
|
|
|
|
|
raise InvokeError("Could not parse LLM output: {text}")
|
|
|
|
|
json_obj= []
|
|
|
|
|
print(f"Could not parse LLM output: {text}")
|
|
|
|
|
|
|
|
|
|
return json_obj
|
|
|
|
|
|