Skip to content

Conversation

@JohnJyong
Copy link
Contributor

@JohnJyong JohnJyong commented Dec 4, 2025

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

@JohnJyong JohnJyong requested a review from crazywoola as a code owner December 5, 2025 04:16
Copy link
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments

JohnJyong and others added 7 commits December 8, 2025 16:08
# Conflicts:
#	api/controllers/console/datasets/datasets.py
#	api/controllers/console/datasets/datasets_segments.py
#	api/controllers/console/datasets/hit_testing_base.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

👻 feat:rag Embedding related issue, like qdrant, weaviate, milvus, vector database. size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants