dify/api/core/workflow/nodes
QuantumGhost 349c3cf7b8
feat(api): Add image multimodal support for LLMNode (#17372)
Enhance `LLMNode` with multimodal capability, introducing support for
image outputs.

This implementation extracts base64-encoded images from LLM responses,
saves them to the storage service, and records the file metadata in the
`ToolFile` table. In conversations, these images are rendered as
markdown-based inline images.
Additionally, the images are included in the LLMNode's output as
file variables, enabling subsequent nodes in the workflow to utilize them.

To integrate file outputs into workflows, adjustments to the frontend code
are necessary.

For multimodal output functionality, updates to related model configurations
are required. Currently, this capability has been applied exclusively to
Google's Gemini models.

Close #15814.

Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2025-04-30 17:28:02 +08:00
..
agent refactor: rename plugin manager to plugin client and rename path from manager to impl (#18876) 2025-04-27 14:22:25 +08:00
answer fix(fail-branch): prevent streaming output in exception branches (#17153) 2025-04-16 22:34:07 +08:00
base chore(api): improve type hints for BaseNode and its subclasses (#15826) 2025-03-14 18:09:11 +08:00
code feat: remove file and file[] restriction in code node (#17382) 2025-04-03 16:23:19 +08:00
document_extractor remove unstructured api key check (#18989) 2025-04-28 17:26:30 +08:00
end Feature/newnew workflow loop node (#14863) 2025-03-05 17:41:15 +08:00
event feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
http_request feat(api): Add image multimodal support for LLMNode (#17372) 2025-04-30 17:28:02 +08:00
if_else Chore: fix some wrong annotations (#17413) 2025-04-03 17:27:07 +08:00
iteration chore(api): improve type hints for BaseNode and its subclasses (#15826) 2025-03-14 18:09:11 +08:00
knowledge_retrieval fix: inconsistent case expression in _process_metadata_filter_func (#19146) 2025-04-30 15:14:01 +08:00
list_operator fix:the extraction function of the list operation node received 0 that should not be received (#18170) 2025-04-16 16:26:24 +08:00
llm feat(api): Add image multimodal support for LLMNode (#17372) 2025-04-30 17:28:02 +08:00
loop Feat/loop node (#17273) 2025-04-02 13:53:26 +08:00
parameter_extractor Enhance Code Consistency Across Repository with `.editorconfig` (#19023) 2025-04-29 18:04:33 +08:00
question_classifier Enhance Code Consistency Across Repository with `.editorconfig` (#19023) 2025-04-29 18:04:33 +08:00
start chore: cleanup unchanged overridden method in subclasses of BaseNode (#14281) 2025-02-26 09:41:38 +08:00
template_transform Chore: fix some wrong annotations (#17413) 2025-04-03 17:27:07 +08:00
tool refactor: rename plugin manager to plugin client and rename path from manager to impl (#18876) 2025-04-27 14:22:25 +08:00
variable_aggregator Chore: fix some wrong annotations (#17413) 2025-04-03 17:27:07 +08:00
variable_assigner feat: support remove first and remove last in variable assigner (#19144) 2025-04-30 15:50:00 +08:00
__init__.py feat/enhance the multi-modal support (#8818) 2024-10-21 10:43:49 +08:00
enums.py Feat/loop node (#17273) 2025-04-02 13:53:26 +08:00
node_mapping.py Feat/loop node (#17273) 2025-04-02 13:53:26 +08:00