模块 nonebot_plugin_marshoai.plugins.marshoai_memory
@on_function_call(description='当你发现与你对话的用户的一些信息值得你记忆,或者用户让你记忆等时,调用此函数存储记忆内容').params(memory=String(description='你想记住的内容,概括并保留关键内容'), user_id=String(description='你想记住的人的id'))
async func write_memory(memory: str, user_id: str)
源代码 或 在GitHub上查看
python
@on_function_call(description='当你发现与你对话的用户的一些信息值得你记忆,或者用户让你记忆等时,调用此函数存储记忆内容').params(memory=String(description='你想记住的内容,概括并保留关键内容'), user_id=String(description='你想记住的人的id'))
async def write_memory(memory: str, user_id: str):
with open(memory_path, 'r', encoding='utf-8') as f:
memory_data = json.load(f)
memorys = memory_data.get(user_id, [])
memorys.append(memory)
memory_data[user_id] = memorys
with open(memory_path, 'w', encoding='utf-8') as f:
json.dump(memory_data, f, ensure_ascii=False, indent=4)
return '记忆已经保存啦~'
@on_function_call(description='你需要回忆有关用户的一些知识时,调用此函数读取记忆内容,当用户问问题的时候也尽量调用此函数参考').params(user_id=String(description='你想读取记忆的人的id'))
async func read_memory(user_id: str)
源代码 或 在GitHub上查看
python
@on_function_call(description='你需要回忆有关用户的一些知识时,调用此函数读取记忆内容,当用户问问题的时候也尽量调用此函数参考').params(user_id=String(description='你想读取记忆的人的id'))
async def read_memory(user_id: str):
with open(memory_path, 'r', encoding='utf-8') as f:
memory_data = json.load(f)
memorys = memory_data.get(user_id, [])
if not memorys:
return '好像对ta还没有任何记忆呢~'
return '这些是有关ta的记忆:' + '\n'.join(memorys)
async func organize_memories()
源代码 或 在GitHub上查看
python
async def organize_memories():
with open(memory_path, 'r', encoding='utf-8') as f:
memory_data = json.load(f)
for i in memory_data:
memory_data_ = '\n'.join(memory_data[i])
msg = f'这是一些大模型记忆信息,请你保留重要内容,尽量减少无用的记忆后重新输出记忆内容,浓缩为一行:\n{memory_data_}'
res = await client.complete(UserMessage(content=msg))
try:
memory = res.choices[0].message.content
memory_data[i] = memory
except AttributeError:
logger.error(f'整理关于{i}的记忆时出错:{res}')
with open(memory_path, 'w', encoding='utf-8') as f:
json.dump(memory_data, f, ensure_ascii=False, indent=4)
var memory
说明: type: ignore
默认值:
res.choices[0].message.content