fix husky error

pull/18977/head
lizb 1 year ago
parent 155b682817
commit aabff03dd0

@ -1,9 +1,10 @@
import json import json
import json_repair
import logging import logging
import re import re
from typing import Optional, cast from typing import Optional, cast
import json_repair
from core.llm_generator.output_parser.rule_config_generator import RuleConfigGeneratorOutputParser from core.llm_generator.output_parser.rule_config_generator import RuleConfigGeneratorOutputParser
from core.llm_generator.output_parser.suggested_questions_after_answer import SuggestedQuestionsAfterAnswerOutputParser from core.llm_generator.output_parser.suggested_questions_after_answer import SuggestedQuestionsAfterAnswerOutputParser
from core.llm_generator.prompts import ( from core.llm_generator.prompts import (
@ -19,11 +20,11 @@ from core.model_runtime.entities.llm_entities import LLMResult
from core.model_runtime.entities.message_entities import SystemPromptMessage, UserPromptMessage from core.model_runtime.entities.message_entities import SystemPromptMessage, UserPromptMessage
from core.model_runtime.entities.model_entities import ModelType from core.model_runtime.entities.model_entities import ModelType
from core.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError from core.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError
from core.workflow.nodes.llm.exc import LLMNodeError
from core.ops.entities.trace_entity import TraceTaskName from core.ops.entities.trace_entity import TraceTaskName
from core.ops.ops_trace_manager import TraceQueueManager, TraceTask from core.ops.ops_trace_manager import TraceQueueManager, TraceTask
from core.ops.utils import measure_time from core.ops.utils import measure_time
from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.prompt.utils.prompt_template_parser import PromptTemplateParser
from core.workflow.nodes.llm.exc import LLMNodeError
class LLMGenerator: class LLMGenerator:
@ -368,15 +369,20 @@ class LLMGenerator:
), ),
) )
generated_json_schema = cast(str, response.message.content) raw_content = response.message.content
if not isinstance(raw_content, str):
raise LLMNodeError(f"LLM response content must be a string, got: {type(raw_content)}")
try: try:
generated_json_schema = json.loads(generated_json_schema) parsed_content = json.loads(raw_content)
except json.JSONDecodeError: except json.JSONDecodeError:
generated_json_schema = json_repair.loads(generated_json_schema) parsed_content = json_repair.loads(raw_content)
if not isinstance(generated_json_schema, (dict | list)):
raise LLMNodeError(f"Failed to parse structured output from llm: {response.message.content}") if not isinstance(parsed_content, (dict, list)):
generated_json_schema = json.dumps(generated_json_schema, indent=2, ensure_ascii=False) raise LLMNodeError(f"Failed to parse structured output from llm: {raw_content}")
generated_json_schema = json.dumps(parsed_content, indent=2, ensure_ascii=False)
return {"output": generated_json_schema, "error": ""} return {"output": generated_json_schema, "error": ""}
except InvokeError as e: except InvokeError as e:

Loading…
Cancel
Save