refactor: optimize the success ratio of llm usage to extract people info

This commit is contained in:
2025-11-16 01:57:09 +08:00
parent b66a460dc1
commit 18f0083827
2 changed files with 11 additions and 11 deletions

View File

@@ -21,7 +21,7 @@ class ExtractPeopleAgent(BaseAgent):
"身高(cm) height\n"
"婚姻状况 marital_status\n"
"择偶要求 match_requirement\n"
"以上信息需要严格按照 JSON 格式输出 字段名与条目中英文保持一致。\n"
"以上信息需要严格按照 JSON 格式输出 字段名与条目中英文保持一致; 若未识别到以上的某项,则不返回该字段,不要自行填写“未知”,“未填写”等类似字眼\n"
"其中,'年龄 age''身高(cm) height' 必须是一个整数,不能是一个字符串;\n"
"并且,'性别 gender' 根据识别结果,必须从 男,女,未知 三选一填写。\n"
"除了上述基本信息,还有一个字段\n"

View File

@@ -170,15 +170,15 @@ class People:
def validate(self) -> error:
err = error(ErrorCode.SUCCESS, "")
if not self.name:
logging.error("Name is required")
err = error(ErrorCode.MODEL_ERROR, "Name is required")
logging.error("Name is required, use default")
self.name = ""
if not self.gender in ['', '', '未知']:
logging.error("Gender must be '', '', or '未知'")
err = error(ErrorCode.MODEL_ERROR, "Gender must be '', '', or '未知'")
if not isinstance(self.age, int) or self.age <= 0:
logging.error("Age must be an integer and greater than 0")
err = error(ErrorCode.MODEL_ERROR, "Age must be an integer and greater than 0")
if not isinstance(self.height, int) or self.height <= 0:
logging.error("Height must be an integer and greater than 0")
err = error(ErrorCode.MODEL_ERROR, "Height must be an integer and greater than 0")
logging.error("Gender must be '', '', or '未知', use default")
self.gender = "未知"
if not isinstance(self.age, int) or self.age < 0:
logging.error("Age must be an integer and greater than 0, use default")
self.age = 0
if not isinstance(self.height, int) or self.height < 0:
logging.error("Height must be an integer and greater than 0, use default")
self.height = 0
return err