[PR #29115] Feat/support multimodal embedding #32298

Closed
opened 2026-02-21 20:51:08 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/29115

State: closed
Merged: Yes


Summary

Why Build a Multimodal Knowledge Base

As enterprises increasingly rely on internal knowledge systems, the need to retrieve information from large volumes of heterogeneous files continues to grow. These materials often span multiple formats, including text, images, documents, videos, and audio—for example: product photos, illustrated manuals, or reports containing mixed text and graphics.

Traditional embedding models can vectorize certain types of data, but they are usually limited to a single modality. This limitation forces organizations into one of two sub-optimal solutions:
• Building complex cross-modality pipelines, embedding each modality separately and then manually fusing results;
• Restricting applications to a single modality, leaving most of the data’s value untapped.

Furthermore, for content that naturally includes multiple modalities—such as documents containing both text and images—traditional models struggle to capture the deep relationships between modalities, resulting in incomplete understanding.

For these reasons, multimodal embeddings have become essential for enterprises seeking to enhance data comprehension, unify data processing workflows, and overcome the constraints of single-modality systems.

Supported Multimodal Embedding & Rerank Models (First Release)

AWS Bedrock
1. nova-2-multimodal-embeddings-v1:0

Google Vertex AI
1. multimodalembedding@001

Jina
1. jina-embedding-v4
2. jina-clip-v1
3. jina-clip-v2
4. jina-reranker-m0 (rerank model)

Tongyi (Alibaba Cloud)
1. multimodal-embedding-v1

Screenshots

image image image image image

PR for plugin: langgenius/dify-plugin-daemon#503
PR for SDK: langgenius/dify-plugin-sdks#237

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/29115 **State:** closed **Merged:** Yes --- ## Summary Why Build a Multimodal Knowledge Base As enterprises increasingly rely on internal knowledge systems, the need to retrieve information from large volumes of heterogeneous files continues to grow. These materials often span multiple formats, including text, images, documents, videos, and audio—for example: product photos, illustrated manuals, or reports containing mixed text and graphics. Traditional embedding models can vectorize certain types of data, but they are usually limited to a single modality. This limitation forces organizations into one of two sub-optimal solutions: • Building complex cross-modality pipelines, embedding each modality separately and then manually fusing results; • Restricting applications to a single modality, leaving most of the data’s value untapped. Furthermore, for content that naturally includes multiple modalities—such as documents containing both text and images—traditional models struggle to capture the deep relationships between modalities, resulting in incomplete understanding. For these reasons, multimodal embeddings have become essential for enterprises seeking to enhance data comprehension, unify data processing workflows, and overcome the constraints of single-modality systems. ⸻ Supported Multimodal Embedding & Rerank Models (First Release) AWS Bedrock 1. nova-2-multimodal-embeddings-v1:0 Google Vertex AI 1. multimodalembedding@001 Jina 1. jina-embedding-v4 2. jina-clip-v1 3. jina-clip-v2 4. jina-reranker-m0 (rerank model) Tongyi (Alibaba Cloud) 1. multimodal-embedding-v1 ## Screenshots <img width="1590" height="1268" alt="image" src="https://github.com/user-attachments/assets/779114e1-ccc5-46d5-b196-e65370efe35a" /> <img width="1074" height="1354" alt="image" src="https://github.com/user-attachments/assets/af99182d-11e0-46c2-9f1e-aff46ecd2715" /> <img width="2852" height="1764" alt="image" src="https://github.com/user-attachments/assets/1e1e3aa3-f833-4845-82a0-b0bcb36ca8f6" /> <img width="3692" height="1252" alt="image" src="https://github.com/user-attachments/assets/b078768c-3762-4d0f-8fe6-6f1f5abd9941" /> <img width="3708" height="1756" alt="image" src="https://github.com/user-attachments/assets/5e3eaab9-6181-43eb-b04e-1599f35c6ecc" /> ## PR for plugin: langgenius/dify-plugin-daemon#503 PR for SDK: langgenius/dify-plugin-sdks#237 ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:51:08 -05:00
yindo closed this issue 2026-02-21 20:51:08 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#32298