Merge #88 into develop from fix/develop_kj_knowledge

提示词优化

* fix/develop_kj_knowledge: (5 commits squashed)

  - Agent应用中添加知识库的配置字段(提示词修改、反思给默认值)

  - 提示词优化

  - 提示词优化

  - 提示词优化

  - 提示词优化

Signed-off-by: aliyun8644380055 <accounts_68c0f5d519f260d93ee2997e@mail.teambition.com>
Reviewed-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>
Merged-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>

CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/88
This commit is contained in:
李新月
2025-12-31 02:20:45 +00:00
committed by 孙科
parent 7ce21afbb3
commit 6b0ee1b74a
3 changed files with 32 additions and 42 deletions

View File

@@ -2,52 +2,39 @@
"memory_verify": {
"source_data": [
{
"statement_name": "用户是2023年春天去北京工作的。",
"statement_id": "62beac695b1346f4871740a45db88782"
"statement_name": "我是 2023 年春天去北京工作的后来基本一直都在北京上班也没怎么换过城市。不过后来公司调整2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X银行卡是 6222023847595898这些一直没变。对了其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合。"
},
{
"statement_name": "用户后来基本一直都在北京上班。",
"statement_id": "4cba5ac08b674d7fb1e2ae634d2b8f0b"
"statement_name": "用户后来基本一直都在北京上班。"
},
{
"statement_name": "用户从2023年开始就一直在北京生活。",
"statement_id": "e612a44da4db483993c350df7c97a1a1"
"statement_name": "用户从2023年开始就一直在北京生活。"
},
{
"statement_name": "用户从来没有长期离开过北京。",
"statement_id": "b3c787a2e33c49f7981accabbbb4538a"
"statement_name": "用户从来没有长期离开过北京。"
},
{
"statement_name": "由于公司调整用户在2024年上半年被调到上海待了差不多半年。",
"statement_id": "64cde4230cb24a4da726e7db9e7aa616"
"statement_name": "由于公司调整用户在2024年上半年被调到上海待了差不多半年。"
},
{
"statement_name": "用户在被调到上海期间每天都是在上海办公室打卡。",
"statement_id": "8b1b12e23b844b8088dfeb67da6ad669"
"statement_name": "用户在被调到上海期间每天都是在上海办公室打卡。"
},
{
"statement_name": "用户在入职时使用的身份信息是之前的身份证号为11010119950308123X。",
"statement_id": "030afd362e9b4110b139e68e5d3e7143"
"statement_name": "用户在入职时使用的身份信息是之前的身份证号为11010119950308123X。"
},
{
"statement_name": "用户的银行卡号是6222023847595898。",
"statement_id": "6c7567cd1f3c478bb42d1b65383e6f2f"
"statement_name": "用户的银行卡号是6222023847595898。"
},
{
"statement_name": "用户的身份信息和银行卡信息一直没变。",
"statement_id": "b3ca618e1e204b83bebd70e75cf2073f"
"statement_name": "用户的身份信息和银行卡信息一直没变。"
},
{
"statement_name": "用户认为在上海的那段时间更多算是远程配合。",
"statement_id": "150af89d2c154e6eb41ff1a91e37f962"
"statement_name": "用户认为在上海的那段时间更多算是远程配合。"
}
],
"databasets": [
{
"entity1_name": "Person",
"description": "表示人类个体的通用类型",
"statement_id": "62beac695b1346f4871740a45db88782",
"entity2_name": "用户",
"entity2": {
"description": "叙述者,讲述个人工作与生活经历的个体",
"name": "用户"
@@ -55,9 +42,6 @@
},
{
"entity1_name": "用户",
"description": "叙述者,讲述个人工作与生活经历的个体",
"statement_id": "62beac695b1346f4871740a45db88782",
"entity2_name": "身份信息",
"entity2": {
"description": "用于个人身份识别的数据",
"name": "身份信息"
@@ -65,9 +49,6 @@
},
{
"entity1_name": "用户",
"description": "叙述者,讲述个人工作与生活经历的个体",
"statement_id": "62beac695b1346f4871740a45db88782",
"entity2_name": "6222023847595898",
"entity2": {
"description": "用户的银行卡号码",
"name": "6222023847595898"
@@ -76,33 +57,24 @@
{
"entity1_name": "用户",
"description": "叙述者,讲述个人工作与生活经历的个体",
"statement_id": "62beac695b1346f4871740a45db88782",
"entity2_name": "上海办公室",
"entity2": {
"entity_idx": 1,
"aliases": ["上海办"],
"description": "位于上海的工作办公场所",
"name": "上海办公室"
}
},
{
"entity1_name": "用户",
"description": "叙述者,讲述个人工作与生活经历的个体",
"statement_id": "62beac695b1346f4871740a45db88782",
"entity2_name": "北京",
"entity2": {
"aliases": ["京", "京城", "北平"],
"description": "中国的首都城市,用户主要工作和生活所在地",
"name": "北京"
}
},
{
"entity1_name": "11010119950308123X",
"description": "具体的身份证号码值",
"statement_id": "030afd362e9b4110b139e68e5d3e7143",
"entity2_name": "身份证号",
"entity2": {
"description": "中华人民共和国公民的身份号码",
"name": "身份证号"
}
}

View File

@@ -387,7 +387,7 @@ class ReflectionEngine:
result_data['memory_verifies'] = memory_verifies
result_data['quality_assessments'] = quality_assessments
conflicts_found=''
REMOVE_KEYS = {"created_at", "expired_at","relationship","predicate","statement_id","id","statement_id","relationship_statement_id"}
# Clearn conflict_dataAnd memory_verify和quality_assessment
cleaned_conflict_data = []
for item in conflict_data:
@@ -396,7 +396,23 @@ class ReflectionEngine:
'conflict': item['conflict']
}
cleaned_conflict_data.append(cleaned_item)
cleaned_conflict_data_=[]
for item in conflict_data:
cleaned_data = []
for row in item.get("data", []):
# 删除 created_at / expired_at
cleaned_row = {
k: v
for k, v in row.items()
if k not in REMOVE_KEYS
}
cleaned_data.append(cleaned_row)
cleaned_item = {
"data": cleaned_data,
"conflict": item.get("conflict"),
}
cleaned_conflict_data_.append(cleaned_item)
print(cleaned_conflict_data_)
# 3. 解决冲突
solved_data = await self._resolve_conflicts(cleaned_conflict_data, source_data)
if not solved_data:

View File

@@ -111,7 +111,8 @@
- 隐私保护优先: 所有输出记录必须完成隐私脱敏
- 脱敏变更记录: 隐私脱敏变更也必须在change字段中记录{% endif %}
- 不可修改数据: 数据被判定为正确时不可修改,无数据可输出时为空
- 输出的结果reflexion字段中的reason字段和solution不允许含有expired_at设为2024-01-01T00:00:00Z、memory_verify=true)等原数据字段以及涉及需要修改的字段以及内容
- 输出的结果reflexion字段中的reason字段和solution不允许含有expired_at设为2024-01-01T00:00:00Z、memory_verify=true、memory_verify=false)等原数据字段以及涉及需要修改的字段以及内容
如果是FACT只记录事实冲突相关的数据如果是TIME只记录时间冲突相关的数据如果是HYBRID则记录所有冲突相关的数据
**变更记录格式**:
```json
@@ -158,7 +159,8 @@
"conflict": true
},
"reflexion": {
"reason": "该冲突类型的原因分析",
"reason": "该冲突类型的原因分析如果是FACT就是存在事实冲突分析该冲突原因如果是TIME就是存在时间冲突分析该冲突原因如果是HYBRID可以输出存在时间与事实的混合冲突再添加上原因分析
不可以随意分配冲突类型以及原因",
"solution": "该冲突类型的解决方案"
},
"resolved": {