瀏覽代碼

Fix 11979 (#11984)

tags/0.14.2
JasonVV 10 月之前
父節點
當前提交
4b1e13e982
沒有連結到貢獻者的電子郵件帳戶。
共有 1 個檔案被更改,包括 20 行新增10 行删除
  1. 20
    10
      api/core/workflow/nodes/llm/node.py

+ 20
- 10
api/core/workflow/nodes/llm/node.py 查看文件

@@ -860,14 +860,16 @@ class LLMNode(BaseNode[LLMNodeData]):
) -> Sequence[PromptMessage]:
prompt_messages: list[PromptMessage] = []
for message in messages:
contents: list[PromptMessageContent] = []
if message.edition_type == "jinja2":
result_text = _render_jinja2_message(
template=message.jinja2_text or "",
jinjia2_variables=jinja2_variables,
variable_pool=variable_pool,
)
contents.append(TextPromptMessageContent(data=result_text))
prompt_message = _combine_message_content_with_role(
contents=[TextPromptMessageContent(data=result_text)], role=message.role
)
prompt_messages.append(prompt_message)
else:
# Get segment group from basic message
if context:
@@ -877,6 +879,7 @@ class LLMNode(BaseNode[LLMNodeData]):
segment_group = variable_pool.convert_template(template)

# Process segments for images
file_contents = []
for segment in segment_group.value:
if isinstance(segment, ArrayFileSegment):
for file in segment.value:
@@ -884,20 +887,27 @@ class LLMNode(BaseNode[LLMNodeData]):
file_content = file_manager.to_prompt_message_content(
file, image_detail_config=vision_detail_config
)
contents.append(file_content)
file_contents.append(file_content)
elif isinstance(segment, FileSegment):
file = segment.value
if file.type in {FileType.IMAGE, FileType.VIDEO, FileType.AUDIO, FileType.DOCUMENT}:
file_content = file_manager.to_prompt_message_content(
file, image_detail_config=vision_detail_config
)
contents.append(file_content)
else:
plain_text = segment.markdown.strip()
if plain_text:
contents.append(TextPromptMessageContent(data=plain_text))
prompt_message = _combine_message_content_with_role(contents=contents, role=message.role)
prompt_messages.append(prompt_message)
file_contents.append(file_content)

# Create message with text from all segments
plain_text = segment_group.text
if plain_text:
prompt_message = _combine_message_content_with_role(
contents=[TextPromptMessageContent(data=plain_text)], role=message.role
)
prompt_messages.append(prompt_message)

if file_contents:
# Create message with image contents
prompt_message = _combine_message_content_with_role(contents=file_contents, role=message.role)
prompt_messages.append(prompt_message)

return prompt_messages


Loading…
取消
儲存