From a52a2fae0fa941c1fe0f2614bec492f7834b05d7 Mon Sep 17 00:00:00 2001 From: "jinli.yl" Date: Mon, 8 Jul 2024 17:07:27 +0800 Subject: [PATCH] [dev] rename config worker name --- config/demo_config.yaml | 76 +++++++++++++------ .../memory/worker/read/set_query_worker.py | 2 + .../storage/llama_index_es_memory_store.py | 9 ++- 3 files changed, 59 insertions(+), 28 deletions(-) diff --git a/config/demo_config.yaml b/config/demo_config.yaml index 38c49782..ab1e8c46 100644 --- a/config/demo_config.yaml +++ b/config/demo_config.yaml @@ -1,11 +1,13 @@ 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 @@ -18,40 +20,42 @@ memory_service: description: "read session messages of the user" read_memory: class: memory.operation.read_memory - workflow: set_query_worker,retrieve_store_worker,[extract_time_worker|semantic_rank_worker],fuse_rerank_worker + workflow: set_query,retrieve_memory1,[extract_time|semantic_rank],fuse_rerank description: "read related memories of the user" list_memory: class: memory.operation.read_memory - workflow: set_query_worker,retrieve_store_worker,print_memory_worker + workflow: set_query,retrieve_memory2,print_memory description: "read all memories of the user" write_memory: class: memory.operation.write_memory - workflow: info_filter_worker,[get_observation_worker|get_observation_with_time_worker],contra_repeat_worker,store_memory_worker + workflow: info_filter,load_memory1,[get_observation|get_observation_with_time],contra_repeat,store_memory description: "write observation memories of the user" interval_time: 60 summary_memory: class: memory.operation.summary_memory - workflow: load_memory_worker,get_reflection_subject_worker,update_insight_worker,long_contra_repeat_worker,summary_collect_worker + workflow: load_memory2,get_reflection_subject,update_insight,long_contra_repeat,store_memory description: "summary observation memories of the user" interval_time: 300 + worker: - dummy_worker: + dummy: class: memory.worker.dummy_worker generation_model: dashscope_generation embedding_model: dashscope_embedding rank_model: dashscope_rank - set_query_worker: + set_query: class: memory.worker.read.set_query_worker - retrieve_store_worker: - class: memory.worker.read.retrieve_store_worker + retrieve_memory1: + class: memory.worker.read.retrieve_memory_worker retrieve_obs_top_k: 100 retrieve_ins_pf_top_k: 100 - extract_time_worker: + retrieve_expired_top_k: 0 + extract_time: class: memory.worker.read.extract_time_worker generation_model_top_k: 1 - semantic_rank_worker: + semantic_rank: class: memory.worker.read.semantic_rank_worker - fuse_rerank_worker: + fuse_rerank: class: memory.worker.read.fuse_rerank_worker fuse_score_threshold: 0.1 fuse_ratio_dict: @@ -61,41 +65,63 @@ worker: insight: 2.0 fuse_time_ratio: 2.0 fuse_rerank_top_k: 10 - print_memory_worker: + 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_worker: + info_filter: class: memory.worker.write.info_filter_worker generation_model: dashscope_generation info_filter_msg_max_size: 200 generation_model_top_k: 1 - get_observation_worker: + 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_worker: + get_observation_with_time: class: memory.worker.write.get_observation_with_time_worker generation_model: dashscope_generation generation_model_top_k: 1 - contra_repeat_worker: + 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_worker: + store_memory: class: memory.worker.write.store_memory_worker - load_memory_worker: - class: memory.worker.summary.load_memory_worker - get_reflection_subject_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: 32 - update_insight_worker: + generation_model_top_k: 1 + update_insight: class: memory.worker.summary.update_insight_worker - long_contra_repeat_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 - summary_collect_worker: - class: memory.worker.summary.summary_collect_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 @@ -109,11 +135,13 @@ models: class: models.llama_index_rank_model module_name: dashscope_rank model_name: gte-rerank + memory_store: class: storage.llama_index_es_memory_store embedding_model: dashscope_embedding index_name: memory_index es_url: http://localhost:9200 use_hybrid: false + monitor: class: storage.dummy_monitor \ No newline at end of file diff --git a/memory_scope/memory/worker/read/set_query_worker.py b/memory_scope/memory/worker/read/set_query_worker.py index 48addbc4..28f2da4b 100644 --- a/memory_scope/memory/worker/read/set_query_worker.py +++ b/memory_scope/memory/worker/read/set_query_worker.py @@ -8,6 +8,8 @@ class SetQueryWorker(MemoryBaseWorker): def _run(self): if "query" in self.chat_kwargs: + """ cli test query + """ query = self.chat_kwargs["query"] query_timestamp = int(datetime.datetime.now().timestamp()) else: diff --git a/memory_scope/storage/llama_index_es_memory_store.py b/memory_scope/storage/llama_index_es_memory_store.py index 51d912c5..a174da2a 100644 --- a/memory_scope/storage/llama_index_es_memory_store.py +++ b/memory_scope/storage/llama_index_es_memory_store.py @@ -12,9 +12,7 @@ from memory_scope.utils.logger import Logger class _AsyncDenseVectorStrategy(AsyncDenseVectorStrategy): - def _hybrid( - self, query: str, knn: Dict[str, Any], filter: List[Dict[str, Any]], top_k: int, - ) -> Dict[str, Any]: + def _hybrid(self, query: str, knn: Dict[str, Any], filter: List[Dict[str, Any]], top_k: int) -> Dict[str, Any]: # Add a query to the knn query. # RRF is used to even the score from the knn query and text query # RRF has two optional parameters: {'rank_constant':int, 'window_size':int} @@ -52,8 +50,11 @@ class _AsyncDenseVectorStrategy(AsyncDenseVectorStrategy): vector_field: str, k: int, num_candidates: int, - filter: List[Dict[str, Any]] = [], + filter: List[Dict[str, Any]] = None, ) -> Dict[str, Any]: + if filter is None: + filter = [] + knn = { "filter": filter, "field": vector_field,