[dev] rename op name

This commit is contained in:
jinli.yl 2024-07-24 19:20:09 +08:00
commit ba09e5deb0
8 changed files with 28 additions and 364 deletions

View file

@ -2,25 +2,29 @@ global_config:
language: cn
max_workers: 5
logger_config:
logger_name: memoryscope
logger_suffix: time
memory_chat:
cli_memory_chat:
class: chat.cli_memory_chat
memory_service: chat_memory_service
memory_service: memory_scope_service
generation_model: dashscope_generation
memory_service:
chat_memory_service:
class: memory.service.chat_memory_service
memory_scope_service:
class: memory.service.memory_scope_service
memory_operations:
read_message:
class: memory.operation.frontend_operation
workflow: read_message
description: "read short memory"
read_memory:
retrieve_memory:
class: memory.operation.frontend_operation
workflow: set_query,[extract_time|retrieve_obs_ins,semantic_rank],fuse_rerank
description: "read long-term memory"
description: "retrieve long-term memory"
list_memory:
class: memory.operation.frontend_operation
@ -42,16 +46,16 @@ memory_service:
workflow: add_memory
description: "add a single observation"
write_memory:
class: memory.operation.write_memory_op
summary_observation_memory:
class: memory.operation.summary_observation_op
workflow: info_filter,[get_observation|get_observation_with_time|load_today_memory],contra_repeat,store_memory
description: "write observation memory of the user"
description: "summary user's observation memory"
interval_time: 1
summary_memory:
summary_insight_memory:
class: memory.operation.backend_operation
workflow: load_obs_and_insight,get_reflection_subject,update_insight,long_contra_repeat,store_memory
description: "summary observation memory of the user"
description: "summary user's insight memory"
interval_time: 15
worker:

View file

@ -1,188 +0,0 @@
global_config:
language: en
max_workers: 5
memory_chat:
cli_memory_chat:
class: chat.cli_memory_chat
memory_service: memory_chat_service
generation_model: dashscope_generation
memory_service:
memory_chat_service:
class: memory.service.chat_memory_service
contextual_msg_count: 6
memory_operations:
read_message:
class: memory.operation.frontend_operation
workflow: read_message
description: "read short memory"
read_memory:
class: memory.operation.frontend_operation
workflow: set_query,[extract_time|retrieve_obs_ins,semantic_rank],fuse_rerank
description: "read long-term memory"
list_memory:
class: memory.operation.frontend_operation
workflow: set_query,retrieve_top_memory,print_memory
description: "read all long-term memory of the user"
delete_memory:
class: memory.operation.frontend_operation
workflow: set_query,retrieve_all_memory,delete_memory
description: "delete a single long-term memory"
delete_all:
class: memory.operation.frontend_operation
workflow: set_query,retrieve_all_memory,delete_all
description: "delete all long-term memory"
add_memory:
class: memory.operation.frontend_operation
workflow: add_memory
description: "add a single observation"
write_memory:
class: memory.operation.write_memory_op
workflow: info_filter,[get_observation|get_observation_with_time|load_today_memory],contra_repeat,store_memory
description: "write observation memory of the user"
interval_time: 5
summary_memory:
class: memory.operation.backend_operation
workflow: load_obs_and_insight,get_reflection_subject,update_insight,long_contra_repeat,store_memory
description: "summary observation memory of the user"
interval_time: 30
worker:
dummy:
class: memory.worker.dummy_worker
generation_model: dashscope_generation
embedding_model: dashscope_embedding
rank_model: dashscope_rank
read_message:
class: memory.worker.frontend.read_message_worker
set_query:
class: memory.worker.frontend.set_query_worker
retrieve_obs_ins:
class: memory.worker.frontend.retrieve_memory_worker
retrieve_obs_top_k: 100
retrieve_ins_top_k: 100
extract_time:
class: memory.worker.frontend.extract_time_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
semantic_rank:
class: memory.worker.frontend.semantic_rank_worker
rank_model: dashscope_rank
fuse_rerank:
class: memory.worker.frontend.fuse_rerank_worker
fuse_score_threshold: 0.05
fuse_ratio_dict:
conversation: 0.5
observation: 1
obs_customized: 1.2
insight: 2.0
fuse_time_ratio: 2.0
fuse_rerank_top_k: 10
retrieve_top_memory:
class: memory.worker.frontend.retrieve_memory_worker
retrieve_obs_top_k: 100
retrieve_ins_top_k: 100
retrieve_expired_top_k: 100
print_memory:
class: memory.worker.frontend.print_memory_worker
retrieve_all_memory:
class: memory.worker.frontend.retrieve_memory_worker
retrieve_obs_top_k: 100
retrieve_ins_top_k: 100
retrieve_expired_top_k: 100
delete_memory:
class: memory.worker.write.update_memory_worker
method: delete_memory
delete_all:
class: memory.worker.write.update_memory_worker
method: delete_all
add_memory:
class: memory.worker.write.update_memory_worker
method: from_query
info_filter:
class: memory.worker.write.info_filter_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
load_today_memory:
class: memory.worker.write.load_memory_worker
retrieve_today_top_k: 100
get_observation:
class: memory.worker.write.get_observation_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
get_observation_with_time:
class: memory.worker.write.get_observation_with_time_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
contra_repeat:
class: memory.worker.write.contra_repeat_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
store_memory:
class: memory.worker.write.update_memory_worker
method: from_memory_key
memory_key: all
load_obs_and_insight:
class: memory.worker.write.load_memory_worker
retrieve_not_reflected_top_k: 100
retrieve_not_updated_top_k: 100
retrieve_insight_top_k: 100
get_reflection_subject:
class: memory.worker.summary.get_reflection_subject_worker
generation_model: dashscope_generation
reflect_obs_cnt_threshold: 10
generation_model_kwargs:
top_k: 1
update_insight:
class: memory.worker.summary.update_insight_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
rank_model: dashscope_rank
long_contra_repeat:
class: memory.worker.summary.long_contra_repeat_worker
generation_model: dashscope_generation
generation_model_kwargs:
top_k: 1
models:
dashscope_generation:
class: models.llama_index_generation_model
module_name: dashscope_generation
model_name: qwen-max
max_tokens: 2000
dashscope_embedding:
class: models.llama_index_embedding_model
module_name: dashscope_embedding
model_name: text-embedding-v2
dashscope_rank:
class: models.llama_index_rank_model
module_name: dashscope_rank
model_name: gte-rerank
dummy_generation:
class: models.dummy_generation_model
module_name: dummy_generation
model_name: dummy_generation_model
memory_store:
class: storage.llama_index_es_memory_store
embedding_model: dashscope_embedding
index_name: memory_index
es_url: http://localhost:9200
use_hybrid: true
monitor:
class: storage.dummy_monitor

View file

@ -1,152 +0,0 @@
global_config:
language: cn
max_workers: 5
memory_chat:
cli_memory_chat:
class: chat.cli_memory_chat
memory_service: memory_chat_service
generation_model: dashscope_generation
memory_service:
memory_chat_service:
class: memory.service.chat_memory_service
contextual_msg_count: 6
memory_operations:
read_message:
class: memory.operation.read_message
description: "read session messages of the user"
read_memory:
class: memory.operation.read_memory
workflow: set_query,[extract_time|retrieve_memory1,semantic_rank],fuse_rerank
description: "read related memories of the user"
list_memory:
class: memory.operation.read_memory
workflow: set_query,retrieve_memory2,print_memory
description: "read all memories of the user"
write_memory:
class: memory.operation.write_memory
workflow: info_filter,load_memory1,[get_observation|get_observation_with_time],contra_repeat,store_memory
description: "write observation memories of the user"
interval_time: 5
summary_memory:
class: memory.operation.summary_memory
workflow: load_memory2,get_reflection_subject,update_insight,long_contra_repeat,store_memory
description: "summary observation memories of the user"
interval_time: 30
worker:
dummy:
class: memory.worker.dummy_worker
generation_model: dashscope_generation
embedding_model: dashscope_embedding
rank_model: dashscope_rank
set_query:
class: memory.worker.read.set_query_worker
retrieve_memory1:
class: memory.worker.read.retrieve_memory_worker
retrieve_obs_top_k: 100
retrieve_ins_pf_top_k: 100
retrieve_expired_top_k: 0
extract_time:
class: memory.worker.read.extract_time_worker
generation_model: dashscope_generation
generation_model_top_k: 1
semantic_rank:
class: memory.worker.read.semantic_rank_worker
rank_model: dashscope_rank
fuse_rerank:
class: memory.worker.read.fuse_rerank_worker
fuse_score_threshold: 0.1
fuse_ratio_dict:
conversation: 0.5
observation: 1
obs_customized: 1.2
insight: 2.0
fuse_time_ratio: 2.0
fuse_rerank_top_k: 10
retrieve_memory2:
class: memory.worker.read.retrieve_memory_worker
retrieve_obs_top_k: 100
retrieve_ins_pf_top_k: 100
retrieve_expired_top_k: 100
print_memory:
class: memory.worker.read.print_memory_worker
info_filter:
class: memory.worker.write.info_filter_worker
generation_model: dashscope_generation
preserved_scores: 2,3
info_filter_msg_max_size: 200
generation_model_top_k: 1
load_memory1:
class: memory.worker.write.load_memory_worker
retrieve_not_reflected_top_k: 0
retrieve_not_updated_top_k: 0
retrieve_insight_top_k: 0
today_obs_top_k: 100
get_observation:
class: memory.worker.write.get_observation_worker
generation_model: dashscope_generation
generation_model_top_k: 1
get_observation_with_time:
class: memory.worker.write.get_observation_with_time_worker
generation_model: dashscope_generation
generation_model_top_k: 1
contra_repeat:
class: memory.worker.write.contra_repeat_worker
generation_model: dashscope_generation
generation_model_top_k: 1
retrieve_top_k: 30
contra_repeat_max_count: 50
store_memory:
class: memory.worker.write.store_memory_worker
store_key: all
load_memory2:
class: memory.worker.write.load_memory_worker
retrieve_not_reflected_top_k: 100
retrieve_not_updated_top_k: 100
retrieve_insight_top_k: 100
today_obs_top_k: 0
get_reflection_subject:
class: memory.worker.summary.get_reflection_subject_worker
retrieve_top_k: 100
reflect_obs_cnt_threshold: 10
generation_model_top_k: 1
update_insight:
class: memory.worker.summary.update_insight_worker
update_insight_threshold: 0.1
generation_model_top_k: 1
update_insight_max_thread: 10
long_contra_repeat:
class: memory.worker.summary.long_contra_repeat_worker
long_contra_repeat_top_k: 2
long_contra_repeat_threshold: 0.1
generation_model_top_k: 1
models:
dashscope_generation:
class: models.llama_index_generation_model
module_name: dashscope_generation
model_name: qwen-max
dashscope_embedding:
class: models.llama_index_embedding_model
module_name: dashscope_embedding
model_name: text-embedding-v2
dashscope_rank:
class: models.llama_index_rank_model
module_name: dashscope_rank
model_name: gte-rerank
dummy_generation:
class: models.dummy_generation_model
module_name: dummy_generation
model_name: dummy_generation_model
memory_store:
class: storage.llama_index_es_memory_store_sync
embedding_model: dashscope_embedding
index_name: memory_index
es_url: http://localhost:9200
use_hybrid: false
monitor:
class: storage.dummy_monitor

View file

@ -160,7 +160,7 @@ class CliMemoryChat(BaseMemoryChat):
# Incorporate memory into the system prompt if available
system_prompt = self.prompt_handler.system_prompt
memories: str = self.memory_service.read_memory()
memories: str = self.memory_service.retrieve_memory()
if memories:
memory_prompt = self.prompt_handler.memory_prompt
system_prompt = "\n".join([x.strip() for x in [system_prompt, memory_prompt, memories]])

View file

@ -3,10 +3,10 @@ from memory_scope.enumeration.message_role_enum import MessageRoleEnum
from memory_scope.memory.operation.backend_operation import BackendOperation
class WriteMemoryOp(BackendOperation):
class SummaryObservationOp(BackendOperation):
def __init__(self, **kwargs):
super(WriteMemoryOp, self).__init__(**kwargs)
super(SummaryObservationOp, self).__init__(**kwargs)
self.message_lock = kwargs.get("message_lock", None)
self.contextual_msg_min_count: int = kwargs.get("contextual_msg_min_count", 0)

View file

@ -16,7 +16,7 @@ class BaseMemoryService(metaclass=ABCMeta):
def __init__(self,
memory_operations: Dict[str, dict],
read_memory_key: str = "read_memory",
retrieve_memory_key: str = "retrieve_memory",
read_message_key: str = "read_message",
**kwargs):
"""
@ -25,12 +25,12 @@ class BaseMemoryService(metaclass=ABCMeta):
Args:
memory_operations (Dict[str, dict]): A dictionary defining available memory operations.
read_memory_key (str): The key indicating a read memory operation. Defaults to "read_memory".
retrieve_memory_key (str): The key indicating a retrieve memory operation. Defaults to "retrieve_memory".
read_message_key (str): The key for reading messages. Defaults to "read_message".
**kwargs: Additional parameters to customize service behavior.
"""
self.memory_operations: Dict[str, dict] = memory_operations
self.read_memory_key: str = read_memory_key
self.retrieve_memory_key: str = retrieve_memory_key
self.read_message_key: str = read_message_key
self._operation_dict: Dict[str, BaseOperation] = {}
@ -73,16 +73,16 @@ class BaseMemoryService(metaclass=ABCMeta):
self._op_description_dict = {k: v.description for k, v in self._operation_dict.items()}
return self._op_description_dict
def read_memory(self):
def retrieve_memory(self):
"""
Executes the operation associated with reading memory.
Asserts that the operation for reading memory has been initialized.
Executes the operation associated with retrieved memory.
Asserts that the operation for retrieved memory has been initialized.
Returns:
Any: The result of the read memory operation.
Any: The result of the retrieved memory operation.
"""
assert self.read_memory_key in self._operation_dict, f"op={self.read_memory_key} is not inited!"
return self.do_operation(self.read_memory_key)
assert self.retrieve_memory_key in self._operation_dict, f"op={self.retrieve_memory_key} is not inited!"
return self.do_operation(self.retrieve_memory_key)
def read_message(self):
"""

View file

@ -6,7 +6,7 @@ from memory_scope.scheme.message import Message
from memory_scope.utils.tool_functions import init_instance_by_config
class ChatMemoryService(BaseMemoryService):
class MemoryScopeService(BaseMemoryService):
def __init__(self,
history_msg_count: int = 100,
contextual_msg_max_count: int = 20,

View file

@ -14,7 +14,7 @@ class Logger(logging.Logger):
level: int = logging.INFO,
format_style: str = LOG_FORMAT,
date_format_style: str = DATE_FORMAT,
to_stream: bool = True,
to_stream: bool = False,
to_file: bool = True,
file_mode: str = "w",
file_type: str = "log",