解析描述响应,生成六元组字符串
(self, triple_str:str, response:str)
| 89 | |
| 90 | @classmethod |
| 91 | def parse_description_response(self, triple_str:str, response:str): |
| 92 | """解析描述响应,生成六元组字符串""" |
| 93 | # 处理制表符分隔的字符串并转换格式 |
| 94 | parts = triple_str.split('\t') |
| 95 | cleaned_parts = [part.strip('<').strip('>').strip() for part in parts] # 去除尖括号和空格 |
| 96 | |
| 97 | try: |
| 98 | data = json.loads(response.strip()) |
| 99 | |
| 100 | # 提取描述信息 |
| 101 | subject_desc = data.get('subject', {}).get('description', '') |
| 102 | relation_desc = data.get('relation', {}).get('description', '') |
| 103 | object_desc = data.get('object', {}).get('description', '') |
| 104 | |
| 105 | head, relation, tail = cleaned_parts[0], cleaned_parts[1], cleaned_parts[2] |
| 106 | |
| 107 | # 组装六元组格式 |
| 108 | return f"<{head}>\t<{subject_desc}>\t<{relation}>\t<{relation_desc}>\t<{tail}>\t<{object_desc}>" |
| 109 | |
| 110 | except (json.JSONDecodeError, KeyError) as e: |
| 111 | logger.error(f"Parse description response failed: {str(e)}, raw response: {response}") |
| 112 | return triple_str |
| 113 | @classmethod |
| 114 | def parse_description_plustype_response(self, triple_str:str, response:str): |
| 115 | """解析描述响应,生成六元组字符串""" |
nothing calls this directly
no outgoing calls
no test coverage detected