Skip to content

Commit 39451ae

Browse files
authored
fix: handle string-type message in suggestion handler (#1214)
fix: suggestion
1 parent b8291f5 commit 39451ae

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/memos/api/handlers/suggestion_handler.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,37 @@
1717
SUGGESTION_QUERY_PROMPT_EN,
1818
SUGGESTION_QUERY_PROMPT_ZH,
1919
)
20-
from memos.types import MessageList
20+
from memos.types import MessageList, MessagesType
2121

2222

2323
logger = get_logger(__name__)
2424

2525

2626
def _get_further_suggestion(
2727
llm: Any,
28-
message: MessageList,
28+
message: MessageList | str,
2929
) -> list[str]:
3030
"""
3131
Get further suggestion based on recent dialogue.
3232
3333
Args:
3434
llm: LLM instance for generating suggestions
35-
message: Recent chat messages
35+
message: Recent chat messages (can be a list of message dicts or a plain string)
3636
3737
Returns:
3838
List of suggestion queries
3939
"""
4040
try:
41-
dialogue_info = "\n".join([f"{msg['role']}: {msg['content']}" for msg in message[-2:]])
41+
if isinstance(message, str):
42+
dialogue_info = message
43+
else:
44+
dialogue_info = "\n".join(
45+
[
46+
f"{msg['role']}: {msg['content']}"
47+
for msg in message[-2:]
48+
if isinstance(msg, dict)
49+
]
50+
)
4251
further_suggestion_prompt = FURTHER_SUGGESTION_PROMPT.format(dialogue=dialogue_info)
4352
message_list = [{"role": "system", "content": further_suggestion_prompt}]
4453
response = llm.generate(message_list)
@@ -53,7 +62,7 @@ def _get_further_suggestion(
5362
def handle_get_suggestion_queries(
5463
user_id: str,
5564
language: str,
56-
message: MessageList | None,
65+
message: MessagesType | None,
5766
llm: Any,
5867
naive_mem_cube: Any,
5968
) -> SuggestionResponse:

0 commit comments

Comments
 (0)