Skip to content

Commit 5c496ee

Browse files
authored
Merge branch 'dev' into feat/evaluation_doc_qa
2 parents 5504d8d + cecdc66 commit 5c496ee

File tree

3 files changed

+30
-19
lines changed

3 files changed

+30
-19
lines changed

src/memos/api/handlers/chat_handler.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ def generate_chat_response() -> Generator[str, None, None]:
415415
top_k=5,
416416
chat_history=chat_req.history,
417417
session_id=chat_req.session_id,
418-
include_preference=False,
418+
include_preference=True,
419419
pref_top_k=chat_req.pref_top_k,
420420
filter=chat_req.filter,
421421
search_tool_memory=False,
@@ -440,9 +440,18 @@ def generate_chat_response() -> Generator[str, None, None]:
440440

441441
# Prepare reference data (first search)
442442
reference = prepare_reference_data(filtered_memories)
443+
# get preference string
444+
pref_string = search_response.data.get("pref_string", "")
443445

444446
yield f"data: {json.dumps({'type': 'reference', 'data': reference})}\n\n"
445447

448+
# Prepare preference markdown string
449+
if chat_req.include_preference:
450+
pref_list = search_response.data.get("pref_mem") or []
451+
pref_memories = pref_list[0].get("memories", []) if pref_list else []
452+
pref_md_string = self._build_pref_md_string_for_playground(pref_memories)
453+
yield f"data: {json.dumps({'type': 'pref_md_string', 'data': pref_md_string})}\n\n"
454+
446455
# Use first readable cube ID for scheduler (backward compatibility)
447456
scheduler_cube_id = (
448457
readable_cube_ids[0] if readable_cube_ids else chat_req.user_id
@@ -487,7 +496,7 @@ def generate_chat_response() -> Generator[str, None, None]:
487496
top_k=chat_req.top_k,
488497
chat_history=chat_req.history,
489498
session_id=chat_req.session_id,
490-
include_preference=chat_req.include_preference,
499+
include_preference=False,
491500
pref_top_k=chat_req.pref_top_k,
492501
filter=chat_req.filter,
493502
search_memory_type="All",
@@ -516,19 +525,11 @@ def generate_chat_response() -> Generator[str, None, None]:
516525

517526
# Prepare remain reference data (second search)
518527
reference = prepare_reference_data(filtered_memories)
519-
# get preference string
520-
pref_string = search_response.data.get("pref_string", "")
521528
# get internet reference
522529
internet_reference = self._get_internet_reference(
523530
search_response.data.get("text_mem")[0]["memories"]
524531
)
525532
yield f"data: {json.dumps({'type': 'reference', 'data': reference})}\n\n"
526-
# Prepare preference markdown string
527-
if chat_req.include_preference:
528-
pref_list = search_response.data.get("pref_mem") or []
529-
pref_memories = pref_list[0].get("memories", []) if pref_list else []
530-
pref_md_string = self._build_pref_md_string_for_playground(pref_memories)
531-
yield f"data: {json.dumps({'type': 'pref_md_string', 'data': pref_md_string})}\n\n"
532533

533534
# Step 2: Build system prompt with memories
534535
system_prompt = self._build_enhance_system_prompt(

src/memos/graph_dbs/polardb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4744,7 +4744,7 @@ def delete_node_by_prams(
47444744

47454745
# Then, combine with user_name condition using AND (must match user_name AND one of the data conditions)
47464746
user_name_where = " OR ".join(user_name_conditions)
4747-
ids_where = f"({user_name_where}) AND ({data_conditions})"
4747+
ids_where = f"{user_name_where} AND ({data_conditions})"
47484748

47494749
# Use Cypher DELETE query
47504750
# First count matching nodes to get accurate count

src/memos/mem_scheduler/webservice_modules/rabbitmq_service.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -283,18 +283,28 @@ def rabbitmq_publish_message(self, message: dict):
283283

284284
exchange_name = self.rabbitmq_exchange_name
285285
routing_key = self.rabbit_queue_name
286+
label = message.get("label")
286287

287-
if message.get("label") == "knowledgeBaseUpdate":
288-
kb_specific_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
288+
# Special handling for knowledgeBaseUpdate in local environment: always empty routing key
289+
if label == "knowledgeBaseUpdate":
290+
routing_key = ""
289291

290-
if kb_specific_exchange_name:
291-
exchange_name = kb_specific_exchange_name
292-
293-
routing_key = "" # User specified empty routing key for KB updates
292+
# Cloud environment override: applies to specific message types if MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME is set
293+
env_exchange_name = os.getenv("MEMSCHEDULER_RABBITMQ_EXCHANGE_NAME")
294+
if env_exchange_name and label in ["taskStatus", "knowledgeBaseUpdate"]:
295+
exchange_name = env_exchange_name
296+
routing_key = "" # Routing key is always empty in cloud environment for these types
294297

298+
# Specific diagnostic logging for messages affected by cloud environment settings
299+
logger.info(
300+
f"[DIAGNOSTIC] Publishing {label} message in Cloud Env. "
301+
f"Exchange: {exchange_name}, Routing Key: '{routing_key}'."
302+
)
303+
logger.info(f" - Message Content: {json.dumps(message, indent=2)}")
304+
elif label == "knowledgeBaseUpdate":
305+
# Original diagnostic logging for knowledgeBaseUpdate if NOT in cloud env
295306
logger.info(
296-
f"[DIAGNOSTIC] Publishing KB Update message. "
297-
f"ENV_EXCHANGE_NAME_USED: {kb_specific_exchange_name is not None}. "
307+
f"[DIAGNOSTIC] Publishing knowledgeBaseUpdate message (Local Env). "
298308
f"Current configured Exchange: {exchange_name}, Routing Key: '{routing_key}'."
299309
)
300310
logger.info(f" - Message Content: {json.dumps(message, indent=2)}")

0 commit comments

Comments
 (0)