Skip to content

模块 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

文档完善中,欢迎提出建议或帮助我们完善。