mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-08-28 05:25:04 +00:00
refactor(memory): update personal memory flows and adjust related components
- Move retrieve_personal_memory and summary_personal_memory flows to new positions in default.yaml - Update info_filter_op to handle trajectories instead of messages - Adjust use_personal_memory_demo to use trajectories in API requests
This commit is contained in:
parent
b2ac7cb6ca
commit
80dae9953e
3 changed files with 29 additions and 21 deletions
|
|
@ -1,5 +1,6 @@
|
|||
import asyncio
|
||||
import json
|
||||
|
||||
import aiohttp
|
||||
|
||||
# API base URL
|
||||
|
|
@ -45,7 +46,9 @@ async def main():
|
|||
async with session.post(
|
||||
f"{base_url}/summary_personal_memory",
|
||||
json={
|
||||
"messages": messages,
|
||||
"trajectories": [
|
||||
{"messages": messages, "score": 1.0}
|
||||
],
|
||||
"workspace_id": workspace_id,
|
||||
},
|
||||
headers={"Content-Type": "application/json"}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,24 @@ flow:
|
|||
description: "A list of conversation trajectory information, including message content and score. This field does not need to be filled in, the system will complete it automatically."
|
||||
required: false
|
||||
|
||||
retrieve_personal_memory:
|
||||
flow_content: set_query_op >> (extract_time_op | (retrieve_memory_op >> semantic_rank_op)) >> fuse_rerank_op
|
||||
description: "Retrieves the most relevant personal memories from historical data based on the query to enhance response quality"
|
||||
input_schema:
|
||||
query:
|
||||
type: "str"
|
||||
description: "user query"
|
||||
required: true
|
||||
|
||||
summary_personal_memory:
|
||||
flow_content: info_filter_op >> (get_observation_op | get_observation_with_time_op | load_today_memory_op) >> contra_repeat_op >> update_vector_store_op
|
||||
description: "Consolidates user observations and memories by filtering information and removing redundancies for efficient storage"
|
||||
input_schema:
|
||||
trajectories:
|
||||
type: "list"
|
||||
description: "A list of conversation trajectory information, including message content and score. This field does not need to be filled in, the system will complete it automatically."
|
||||
required: false
|
||||
|
||||
retrieve_task_memory_simple:
|
||||
flow_content: build_query_op >> recall_vector_store_op >> merge_memory_op
|
||||
description: "Retrieves the most relevant top-k memory experiences from historical data based on the current query with simplified processing"
|
||||
|
|
@ -62,24 +80,6 @@ flow:
|
|||
required: true
|
||||
enum: [ copy, delete, delete_ids, dump, load ]
|
||||
|
||||
retrieve_personal_memory:
|
||||
flow_content: set_query_op >> (extract_time_op | (retrieve_memory_op >> semantic_rank_op)) >> fuse_rerank_op
|
||||
description: "Retrieves the most relevant personal memories from historical data based on the query to enhance response quality"
|
||||
input_schema:
|
||||
query:
|
||||
type: "str"
|
||||
description: "user query"
|
||||
required: true
|
||||
|
||||
summary_personal_memory:
|
||||
flow_content: info_filter_op >> (get_observation_op | get_observation_with_time_op | load_today_memory_op) >> contra_repeat_op >> update_vector_store_op
|
||||
description: "Consolidates user observations and memories by filtering information and removing redundancies for efficient storage"
|
||||
input_schema:
|
||||
messages:
|
||||
type: "list"
|
||||
description: "A list of conversation messages information. This field does not need to be filled in, the system will complete it automatically."
|
||||
required: false
|
||||
|
||||
record_task_memory:
|
||||
flow_content: update_memory_freq_op >> update_memory_utility_op >> update_vector_store_op
|
||||
description: "Update the freq & utility attributes of retrieved task memories"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import re
|
|||
from typing import List
|
||||
|
||||
from flowllm import C, BaseLLMOp
|
||||
from flowllm.schema.message import Message
|
||||
from flowllm.schema.message import Message, Trajectory
|
||||
from loguru import logger
|
||||
|
||||
from reme_ai.schema.memory import PersonalMemory
|
||||
|
|
@ -19,7 +19,12 @@ class InfoFilterOp(BaseLLMOp):
|
|||
def execute(self):
|
||||
"""Filter messages based on information content scores"""
|
||||
# Get messages from context - guaranteed to exist by flow input
|
||||
self.context.messages = [Message(**x) if isinstance(x, dict) else x for x in self.context.messages]
|
||||
trajectories: list = self.context.trajectories
|
||||
trajectories: List[Trajectory] = [Trajectory(**x) if isinstance(x, dict) else x for x in trajectories]
|
||||
|
||||
self.context.messages = []
|
||||
for trajectory in trajectories:
|
||||
self.context.messages.extend(trajectory.messages)
|
||||
messages: List[Message] = self.context.messages
|
||||
if not messages:
|
||||
logger.warning("No messages found in context")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue