diff --git a/src/agents/extract_people_agent.py b/src/agents/extract_people_agent.py index 1e62721..9ef9029 100644 --- a/src/agents/extract_people_agent.py +++ b/src/agents/extract_people_agent.py @@ -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" diff --git a/src/models/people.py b/src/models/people.py index 1b60f26..68bbadc 100644 --- a/src/models/people.py +++ b/src/models/people.py @@ -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