From 0eefd763a1c47601a9c8a9637c29cdd7ced9937f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=91=E5=B8=83=E6=9E=97?= <11641432+heiheiyouyou@user.noreply.gitee.com> Date: Mon, 16 Mar 2026 16:10:53 +0800 Subject: [PATCH 1/3] update feedback id --- .env_liji | 71 ++++++++++++++++++++++++++++++ src/memos/mem_feedback/feedback.py | 2 + 2 files changed, 73 insertions(+) create mode 100644 .env_liji diff --git a/.env_liji b/.env_liji new file mode 100644 index 000000000..ba8011c22 --- /dev/null +++ b/.env_liji @@ -0,0 +1,71 @@ +# OpenAI API 密钥 (用百炼的API_KEY) +OPENAI_API_KEY=sk-7029b32d4b434872821b86d974248d01 +# OpenAI API 基础 URL +OPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 + +# Memory Reader LLM 模型 +MEMRADER_MODEL=qwen3-max +MOS_CHAT_MODEL=qwen3-max +# Memory Reader API 密钥 +MEMRADER_API_KEY=sk-7029b32d4b434872821b86d974248d01 +# Memory Reader API 基础 URL +MEMRADER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 + +#Embedder模型名称可以参考下面链接 +# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api/?type=model&url=2846066 + +MOS_EMBEDDER_BACKEND=universal_api +# Embedder 模型名称 +MOS_EMBEDDER_MODEL=text-embedding-v4 +# Embedder API 基础 URL +MOS_EMBEDDER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 +# Embedder API 密钥 +MOS_EMBEDDER_API_KEY=sk-7029b32d4b434872821b86d974248d01 +# Embedding 向量维度 +EMBEDDING_DIMENSION=1024 +# Reranker 后端 (http_bge | etc.) +MOS_RERANKER_BACKEND=cosine_local + +# Neo4j 连接 URI +# 可选值: neo4j-community | neo4j | nebular | polardb +#NEO4J_BACKEND=neo4j-community +## 当 backend=neo4j* 时必须 +#NEO4J_URI=bolt://localhost:7687 +#NEO4J_USER=neo4j +#NEO4J_PASSWORD=12345678 +#NEO4J_DB_NAME=neo4j +#MOS_NEO4J_SHARED_DB=false + +NEO4J_BACKEND=polardb +NEO4J_URI=bolt://47.117.41.207:7687 +NEO4J_USER=neo4j +NEO4J_PASSWORD=12345678 +MOS_NEO4J_SHARED_DB=true +NEO4J_DB_NAME=shared-tree-textual-memory-1024 + +POLAR_DB_HOST=memos-polardb.rwlb.rds.aliyuncs.com +POLAR_DB_PORT=5432 +POLAR_DB_USER=adimin +POLAR_DB_PASSWORD=Openmem0925 +POLARDB_POOL_MAX_CONN=100 +POLAR_DB_USE_MULTI_DB=false +POLAR_DB_DB_NAME=memos_test + +SKILLS_REPO_BACKEND=LOCAL +SKILLS_LOCAL_DIR=/tmp/upload_skill_memory/ +SKILLS_OSS_DIR=skill_memory/ +SKILLS_LOCAL_TMP_DIR=/tmp/skill_memory/ +SKILLS_LLM=qwen3-max + +# 启用默认 cube 配置 +MOS_ENABLE_DEFAULT_CUBE_CONFIG=true +# 是否使用 redis 的调度器 +DEFAULT_USE_REDIS_QUEUE=false + +MOS_ENABLE_REORGANIZE=false + +# 启用聊天 API +ENABLE_CHAT_API=true + + +CHAT_MODEL_LIST=[{"backend": "qwen", "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "api_key": "sk-7029b32d4b434872821b86d974248d01", "model_name_or_path": "qwen3-max-preview", "extra_body": {"enable_thinking": true} ,"support_models": ["qwen3-max-preview"]}] diff --git a/src/memos/mem_feedback/feedback.py b/src/memos/mem_feedback/feedback.py index b8019004d..0e3dd94e5 100644 --- a/src/memos/mem_feedback/feedback.py +++ b/src/memos/mem_feedback/feedback.py @@ -2,6 +2,7 @@ import difflib import json import re +import uuid from datetime import datetime from typing import TYPE_CHECKING, Any, Literal @@ -236,6 +237,7 @@ def _single_add_operation( else: to_add_memory = new_memory_item.model_copy(deep=True) + to_add_memory.id = str(uuid.uuid4()) if to_add_memory.metadata.memory_type == "PreferenceMemory": to_add_memory.metadata.preference = new_memory_item.memory From ae0ea0d07711b14065bd5959fd3598dcbd294d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=91=E5=B8=83=E6=9E=97?= <11641432+heiheiyouyou@user.noreply.gitee.com> Date: Mon, 16 Mar 2026 16:11:20 +0800 Subject: [PATCH 2/3] update feedback id --- .env_liji | 71 ------------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 .env_liji diff --git a/.env_liji b/.env_liji deleted file mode 100644 index ba8011c22..000000000 --- a/.env_liji +++ /dev/null @@ -1,71 +0,0 @@ -# OpenAI API 密钥 (用百炼的API_KEY) -OPENAI_API_KEY=sk-7029b32d4b434872821b86d974248d01 -# OpenAI API 基础 URL -OPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 - -# Memory Reader LLM 模型 -MEMRADER_MODEL=qwen3-max -MOS_CHAT_MODEL=qwen3-max -# Memory Reader API 密钥 -MEMRADER_API_KEY=sk-7029b32d4b434872821b86d974248d01 -# Memory Reader API 基础 URL -MEMRADER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 - -#Embedder模型名称可以参考下面链接 -# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api/?type=model&url=2846066 - -MOS_EMBEDDER_BACKEND=universal_api -# Embedder 模型名称 -MOS_EMBEDDER_MODEL=text-embedding-v4 -# Embedder API 基础 URL -MOS_EMBEDDER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1 -# Embedder API 密钥 -MOS_EMBEDDER_API_KEY=sk-7029b32d4b434872821b86d974248d01 -# Embedding 向量维度 -EMBEDDING_DIMENSION=1024 -# Reranker 后端 (http_bge | etc.) -MOS_RERANKER_BACKEND=cosine_local - -# Neo4j 连接 URI -# 可选值: neo4j-community | neo4j | nebular | polardb -#NEO4J_BACKEND=neo4j-community -## 当 backend=neo4j* 时必须 -#NEO4J_URI=bolt://localhost:7687 -#NEO4J_USER=neo4j -#NEO4J_PASSWORD=12345678 -#NEO4J_DB_NAME=neo4j -#MOS_NEO4J_SHARED_DB=false - -NEO4J_BACKEND=polardb -NEO4J_URI=bolt://47.117.41.207:7687 -NEO4J_USER=neo4j -NEO4J_PASSWORD=12345678 -MOS_NEO4J_SHARED_DB=true -NEO4J_DB_NAME=shared-tree-textual-memory-1024 - -POLAR_DB_HOST=memos-polardb.rwlb.rds.aliyuncs.com -POLAR_DB_PORT=5432 -POLAR_DB_USER=adimin -POLAR_DB_PASSWORD=Openmem0925 -POLARDB_POOL_MAX_CONN=100 -POLAR_DB_USE_MULTI_DB=false -POLAR_DB_DB_NAME=memos_test - -SKILLS_REPO_BACKEND=LOCAL -SKILLS_LOCAL_DIR=/tmp/upload_skill_memory/ -SKILLS_OSS_DIR=skill_memory/ -SKILLS_LOCAL_TMP_DIR=/tmp/skill_memory/ -SKILLS_LLM=qwen3-max - -# 启用默认 cube 配置 -MOS_ENABLE_DEFAULT_CUBE_CONFIG=true -# 是否使用 redis 的调度器 -DEFAULT_USE_REDIS_QUEUE=false - -MOS_ENABLE_REORGANIZE=false - -# 启用聊天 API -ENABLE_CHAT_API=true - - -CHAT_MODEL_LIST=[{"backend": "qwen", "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1", "api_key": "sk-7029b32d4b434872821b86d974248d01", "model_name_or_path": "qwen3-max-preview", "extra_body": {"enable_thinking": true} ,"support_models": ["qwen3-max-preview"]}] From 17f2f944a328409e93246f9b3cefd4b53f71cbba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=91=E5=B8=83=E6=9E=97?= <11641432+heiheiyouyou@user.noreply.gitee.com> Date: Mon, 16 Mar 2026 16:51:24 +0800 Subject: [PATCH 3/3] feedback fix --- src/memos/mem_feedback/feedback.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/memos/mem_feedback/feedback.py b/src/memos/mem_feedback/feedback.py index 0e3dd94e5..55f63789d 100644 --- a/src/memos/mem_feedback/feedback.py +++ b/src/memos/mem_feedback/feedback.py @@ -362,9 +362,14 @@ def semantics_feedback( lang = detect_lang("".join(memory_item.memory)) template = FEEDBACK_PROMPT_DICT["compare"][lang] if current_memories == []: - # retrieve - last_user_index = max(i for i, d in enumerate(chat_history_list) if d["role"] == "user") - last_qa = " ".join([item["content"] for item in chat_history_list[last_user_index:]]) + user_indices = [i for i, d in enumerate(chat_history_list) if d["role"] == "user"] + if user_indices: + last_user_index = max(user_indices) + last_qa = " ".join( + [item["content"] for item in chat_history_list[last_user_index:]] + ) + else: + last_qa = " ".join([item["content"] for item in chat_history_list]) supplementary_retrieved = self._retrieve(last_qa, info=info, user_name=user_name) feedback_retrieved = self._retrieve(memory_item.memory, info=info, user_name=user_name)