refactor: optimize the success ratio of llm usage to extract people info
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user