mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-16 12:55:52 +08:00
fix: issue 11247 that Completion mode content maybe list or str (#11504)
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
This commit is contained in:
parent
28231d39a4
commit
716576043d
@ -615,16 +615,35 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
)
|
)
|
||||||
# Insert histories into the prompt
|
# Insert histories into the prompt
|
||||||
prompt_content = prompt_messages[0].content
|
prompt_content = prompt_messages[0].content
|
||||||
if "#histories#" in prompt_content:
|
# For issue #11247 - Check if prompt content is a string or a list
|
||||||
prompt_content = prompt_content.replace("#histories#", memory_text)
|
prompt_content_type = type(prompt_content)
|
||||||
|
if prompt_content_type == str:
|
||||||
|
if "#histories#" in prompt_content:
|
||||||
|
prompt_content = prompt_content.replace("#histories#", memory_text)
|
||||||
|
else:
|
||||||
|
prompt_content = memory_text + "\n" + prompt_content
|
||||||
|
prompt_messages[0].content = prompt_content
|
||||||
|
elif prompt_content_type == list:
|
||||||
|
for content_item in prompt_content:
|
||||||
|
if content_item.type == PromptMessageContentType.TEXT:
|
||||||
|
if "#histories#" in content_item.data:
|
||||||
|
content_item.data = content_item.data.replace("#histories#", memory_text)
|
||||||
|
else:
|
||||||
|
content_item.data = memory_text + "\n" + content_item.data
|
||||||
else:
|
else:
|
||||||
prompt_content = memory_text + "\n" + prompt_content
|
raise ValueError("Invalid prompt content type")
|
||||||
prompt_messages[0].content = prompt_content
|
|
||||||
|
|
||||||
# Add current query to the prompt message
|
# Add current query to the prompt message
|
||||||
if user_query:
|
if user_query:
|
||||||
prompt_content = prompt_messages[0].content.replace("#sys.query#", user_query)
|
if prompt_content_type == str:
|
||||||
prompt_messages[0].content = prompt_content
|
prompt_content = prompt_messages[0].content.replace("#sys.query#", user_query)
|
||||||
|
prompt_messages[0].content = prompt_content
|
||||||
|
elif prompt_content_type == list:
|
||||||
|
for content_item in prompt_content:
|
||||||
|
if content_item.type == PromptMessageContentType.TEXT:
|
||||||
|
content_item.data = user_query + "\n" + content_item.data
|
||||||
|
else:
|
||||||
|
raise ValueError("Invalid prompt content type")
|
||||||
else:
|
else:
|
||||||
raise TemplateTypeNotSupportError(type_name=str(type(prompt_template)))
|
raise TemplateTypeNotSupportError(type_name=str(type(prompt_template)))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user