mirror of
https://github.com/langgenius/dify.git
synced 2026-07-21 03:55:25 -04:00
Multimodal KB: Image query does not rank identical image highest, but image URL query returns score 1.0 #21848
Open
opened 2026-02-21 20:14:34 -05:00 by yindo
·
11 comments
No Branch/Tag Specified
main
feat/ce-telemetry-dev
gh-readonly-queue/main/pr-38920-7b188287daa401c036e7a9c44df8becf374a6237
gh-readonly-queue/main/pr-38752-f6db23444db6a4680745ae0c2726c0e634432665
gh-readonly-queue/main/pr-38918-a5c989d82b21786bbae9cb763f479ff3bfe5dcf9
deploy/enterprise
gareth/esq1-170-rbac-for-agent
fix/dify-2822-agent-monitoring-workflow-main
0720-documents-tasks
deploy/agent
release/e-1.11.4
fix/cus-1422-enterprise-api-timeout
hotfix/cus-1422-enterprise-api-timeout
perf/optimize-markdown-renderer
feat/fix-undefined-answer-preview
hotfix/1.15.0-fix.15
dependabot/uv/dify-agent/pillow-12.3.0
0720-crawl-selection
0720-crawl-preview
0720-source-connections
0720-create-knowledge
0720-new-rag-contracts
laipz8200/human-input-loop-iteration
0720-new-rag-list
deploy/saas
codex/migrate-knowledge-fs
feat/hitl-im-dev
hotfix/1.15.0-fix.14
lts/1.13.x
deploy/workflow-archive-catalog-discovery
dependabot/uv/api/pydantic-09001a97e5
laipz8200/completion-workflow-entry
dependabot/uv/api/lts/1.13.x/python-packages-6c2bf7110c
dependabot/uv/api/storage-4219cfbece
dependabot/uv/api/lts/1.13.x/dev-6fc4f8b90c
dependabot/uv/api/llm-46e0cee538
dependabot/uv/api/lts/1.13.x/vdb-72526f7860
dependabot/uv/api/opentelemetry-b8005594e1
dependabot/uv/api/lts/1.13.x/storage-4310e8b8d8
dependabot/uv/api/lts/1.13.x/database-c0fba9b420
dependabot/uv/api/lts/1.13.x/llm-5ce1d68736
dependabot/uv/api/lts/1.13.x/pydantic-09001a97e5
dependabot/uv/api/lts/1.13.x/opentelemetry-b8005594e1
dependabot/uv/api/google-68de7a6be5
dependabot/github_actions/lts/1.13.x/github-actions-dependencies-1a36b91cf1
dependabot/uv/api/lts/1.13.x/google-c93828e58f
dependabot/uv/api/lts/1.13.x/flask-1086fc46af
0717-knowledge-fs-contract
feat/secret-scrub-persistence
feat/llm-ft-timeout
worktree-esq1-132-webapp-public-access
feat/appdeploy-selected-workflow-dsl
0715-new-rag
laipz8200/llm-environment-variables
release/ee-1.15.0-hotfix
laipz8200/chore-remove-feature-preview-root-env
dependabot/go_modules/dify-agent-runtime/golang.org/x/net-0.55.0
hotfix/1.15.0-fix.12
hotfix/1.15.0-fix.12-cherrypick
hotfix/1.15.0-fix.13
build/invite-seats-precheck
hotfix/1.15.0-fix.11
laipz8200/workflow-persistence-mixed-mode
hotfix/1.15.0-fix.10
zhangxin/eng-558-licensed-seats-1.15
fix/wta-1307-effect-suspense-read
feat/cli-skills-agents
0713-vp-lint
deploy/dev
fix/agent-roster-answer-completion-main
feat/pay-by-invoice
codex/run-external-e2e-main-ci
agent/remove-sandbox-bind-mounts
feat/agent-v2-e2e-test
hotfix/1.15.0-fix.9
hotfix/1.15.0-fix.8
build/test-archive-export
linw/restore-agent-message-delta-feat
hotfix/1.15.0-fix.7
hotfix/1.15.0-fix.6
codex/pr-38227-session-types
codex/pr-38227-session-scope-split
fix/ui-fix
hotfix/1.15.0-fix.4
codex/review-pr-38480
hotfix/1.15.0-fix.2
copilot/fix-web-full-stack-e2e-job
fix/dify-2738-agent-node-dsl-export
hotfix/1.15.0-fix.3
fix/scope-segment-batch-delete
laipz8200/scope-segment-route-lookup
chore/i18n-sync-7b7956f3e7ca-e901a65a
codex/upgrade-orpc-v2-beta
hotfix/1.15.0-fix.1
codex/upgrade-openapi-ts-autofix
codex/upgrade-next-16-3-preview
hotfix/1.15.0-fix.0
hotfix/web-detail-adjustment-before-release
release/e-1.15.0
codex/replace-lamejs-with-mediabunny
copilot/add-more-tests
deploy/archive-db-resilience
fix/studio-nav-home-button
hotfix/1.14.2-fix.13
worktree-token-expired-error-code
hotfix-1.14.2-fix.12
codex/agent-v2-state-graph
codex/refactor-deployment-detail-components
hotfix/1.14.2-fix.12
build/fix/workflow-error-hanging
work/dify-2585-agent-drafts-pr
fix/dify-2574-soul-files-kv
fix/dify-2554-debug-conversation-per-user
hotfix/1.14.2-fix.11
feat/openapi-rbac
test/cli-e2e-error-body-contract
build/optimize-clean-messages-eligible-apps
zhaohao1004/optimize-clean-messages-cursor
gh-readonly-queue/main/pr-37592-c71f03f5902031b7c02e61af3aff5c2dee6f7d85
build/optimize-clean-messages-cursor
feat/country
codex/vp-fmt-migration
hotfix/1.14.2-fix.10
hotfix/1.14.2-fix.9
hotfix/1.14.2-fix.8
hotfix/1.14.2-fix.7
hotfix/1.14.2-fix.6
codex/page-title-updates
feat/agent-mention-stable-ids
fix/guard-workspace-with-defualt-roles
build/pr-37227-free-plan-workflow-run-cleanup
feat/cli-e2e-test-suite
feat/ui-start-node
feat/hitl-file-in-body
copilot/dify-team-question-agent-node
fix/wta-438-device-sso-redirect-origin
hotfix/1.14.2-fix.5
feat/dev-snippet-fronted
feat/mcp-token-transfer
chore/keep-info-icon-the-same-postion
codex/local-app-list-tag-filter
feat/snippet-new
hotfix/1.14.2-fix.4
codex/migrate-var-reference-combobox
hotfix/1.14.2-fix.3
feat/marketplace-template
chore/deploy-saas-workflow
hotfix/1.14.2-fix.2
build/cli
codex/snp-406-pointer-position-ref
hotfix/1.14.1-fix.3
build/feat/model-type-migration-script
fix/webapp-disabled-not-jump-to-webapp-login
fix/lb-model-type-dedup
song/eng-379-file-output-check-executor
chore/bump-authlib-1.6.12
fix/tag-trigger-preserve-case
chore/bump-sendgrid-lts-1.13.x
fix/model-type-enum-construction
refactor/add-missing-override-decorator
work/web-mcp-1.14.1
copilot/check-runtime-limits
laipz8200/workflow-response-stream-filter
copilot/query-issues-pr-images
laipz8200/fix-autofix-contract-generation
copilot/fix-autofix-job-failure
codex/deprecate-sys-files-compat
codex/fix-scrolling-issue-with-overflow-visible
copilot/research-retrieval-attachment-consumption
copilot/research-agent-node-implementation
chore/upgrade-xyflow-v12
hotfix/1.14.1-fix.1
build/1.14.1-fix.1-langfuse
hotfix/1.14.1-fix.2
feat/lts-lazy-dialogue-count
fix/can-not-create-knowledge
codex/fix-marketplace-hero-shake
codex/tag-name-url-filter
upgrade-graphon-to-0-3-0
codex/app-delete-enter-confirm
build/sample-tidb
codex/revert-pr-35708
chore/remove-dify-deploy-script
chore/simpler-deploy
lts/1.13.x-fix-35910
feat/storage-path-prefix
hotfix/1.13.3-fix10
hotfix/1.13.3-fix9
hotfix/1.14.0-fix.4
hotfix/1.14.0-fix.3
hotfix/1.14.0-fix.2
revert-35748-4-30-open-api
feat/upgrade-graphon
copilot/research-celery-task-ttl
hotfix/1.14.0-fix.1
copilot/fix-css-issue
feat/s3-public-base-url
hotfix/1.13.3-fix8
build/depot-speed-benchmark-20260426
build/depot-speed-benchmark-20260426-warm
hotfix/1.13.3-fix7
feat/evaluation
fix/workflow-line
chore/dependency-upgrade
deploy/zhaohao
feat/replayable-stream
feat/show-the-hierarchy-in-phonenix-trace
4-17-lint-config-for-react
p363-reviewed
build/billing-v3
copilot/list-contributions-to-dify
cursor/migrate-tooltip-to-popover-infotips
refactor/quota-service
feat/new-biliing-quota
hotfix/1.13.3-fix6
cursor/dify-ui-infra
p363-hjlarry
cursor/refactor-select-trigger-api
chore/lts-13x-bump-deps
codex/tighten-button-tone-types
locate-queue-autocreate-deps
hotfix/1.13.3-fix5
feat/new-agent-node
hotfix/1.13.3-fix4
feat/per-db-credential
chore/i18n-sync-208604a3a819-9220dd74
chore/i18n-sync-1b369cede4b4-0e13ce3f
chore/i18n-sync-c93e40212e4c-0e13ce3f
codex/fix-vite-audit-in-sdk-test
copilot/fix-agent-dialogue-input-limit
codex/dify-ui-package-migration
4-2-no-global-loading
fix/ps-not-send
3-18-no-global-loading
feat/support-agent-sandbox
hotfix/1.13.3-fix3
hotfix/1.13.3-fix2
4-1-unocss
build/feat/saas-quota-v4
feat/remove-unused-is-deleted-from-conversation
codex-add-podman-compose-dev-scripts
fix-partnerstack-cookie-sync
hotfix/1.13.3-fix1
3-31-vite-task-cache
test/add-test-case-for-prompt-editor
build/feat/saas-quota
build/feat/saas-quota-v2
deploy/agent-dev
yanli/fix-iter-log
review-myscale-sqli
codex/force-node24-for-actions
ci/docker-build-narrowing
chore/dependabot-alert-to-bot
verify-email-reset-flow
3-26-cache-lint-for-autofix
gh-readonly-queue/main/pr-34120-2cbcf9518e40104286a3034f3c3c688cd4ff9fbf
gh-readonly-queue/main/pr-34123-1c72b8d9db03b93b3fc7f86bc522e53806f5a8f0
gh-readonly-queue/main/pr-33960-38285aa1ac6de98614456f49b4d834fe503f4e58
p383
yanli/phase3-code-scope
test/workflow-app
codex/migrate-old-toast-calls-and-update-translations
hotfix/1.13.2-fix2
focal-quokka
codex/fix-issue-33422-in-repository
hotfix/1.13.2-fix1
copilot/refactor-test-config-leak-fix
build/release-1.13.2
fix-kpa-issue
build/release-1.13.1-rc.3
3-18-dev-with-http2
build/release-1.13.1-rc.2
3-16-revert-changes
3-16-add-csp
build/release-1.13.1-rc.1
feat/source-for-plugin-tasks
3-16-next-lib
revert-33484-dependabot/pip/api/python-packages-2eba66ec58
move-trigger-nodes
copilot/refactor-test-config-leak-detection
fix/enterprise-api-error-handling
release/e-1.12.1
fix/vinext-deps
yanli/docx-image-render
copilot/analyze-dify-code
deploy/clean-task-trace
copilot/sub-pr-33044
3-6-type-check
feat/model-provider-refactor
copilot/refactor-unnecessary-cast-call
build/export-app-messages
1.12.1-otel-ee
hotfix/1.13.0-fix.4
update-checker
test/ui-primitive-wrapper-tests-pr
hotfix/1.13.0-fix.3
refactor/base-comp
deploy/memory-usage
hotfix/1.13.0-fix.2
hotfix/1.13.0-fix.1
build/sandbox-clean-job-260302-1
build/sandbox-clean-job
fix/otel-upgrade-e-1.12.1
build/optimize-workflow-run-cleanup
move-core-prompt-runtime
hotfix/1.12.1-fix.6
copilot/remove-pm2-from-docker
move-token-buffer-memory
32589-main-repo
fix/access-mode-sso-verified
refactor/remove-workspace-mutate-from-context
2-11-fix-lint
feat/plugins-marketplace-ssr-prefetch-loading
build/message-clean-performance-log
refactor/template-transform-node
hotfix/1.12.1-fix.5
2-9-stable-test-2
pre-align-hitl-frontend
fix/preserve-UNC-paths-in-conversation-opner
hotfix/1.12.1-fix.4
hotfix/1.12.1-fix.3
feat/add-update-all-plugin-button
refactor/share
hotfix/1.12.1-fix.2
test/inprove-quality
feat/add_templates
hotfix/1.12.1-fix.1
fix/ee-1511-set-default-provider-user-id-bug
copilot/fix-pnpm-test
hotfix/1.12.1-fix.0
feat/vibe-wf
fix/fix-test
fix/console_ns_import
release/1.12.1
fix/workflow-sync-draft
refactor/ssr-prefetch-zustand-removal
1-24-kubb-generate
refactor/migrate-react-window-to-tanstack-virtual
fix/input-ime-onpressenter
1-30-fix-failed-test
feat/structured-output-with-sandbox
yanli/init-ty
hotfix/1.11.4-fix.4
fix/trigger-plugin-output
fix/parallel-generation-render
refactor/configuration
yanli/add-opaque-body
build/billing-refactor-test-2026012701
refactor/debug-and-preview-store
refactor/tools-workflow
build/debug-billing-refactor
build/billing-service
build-billing-service
feat/add-agentation
refactor/app-components
build/collaboration
copilot/sub-pr-31424
refactor/local-storage
refactor/skill-bundler
hotfix/1.11.4-fix.3
build/archive-workflow-run
feat/pull-a-variable
hotfix/1.11.4-fix.2
copilot/sub-pr-30849
hotfix/1.11.4-fix.1
1-21-test-window-is-not-defined
revert-30727-feat/model-total-credits
copilot/sub-pr-31283
zhsama/multi-turn-popup
zhsama/panel-var-popup
12-19-demo-for-app-store
refactor/migrate-app-detail-to-tanstack-query
build/clear-message
feat/credential-sync-fix-ee
feat/llm-first-token-timeout
zhsama/assemble-var-input
release/e-1.11.2
feature/task-quadrant-view
zhsama/llm-warning-ui
build/clear-workflow-run
zhsama/agent-at-nodes
build/1.11.4
release/e-1.6.0-fix.1
release/e-0.15.8-fix.1
1-14-remove-web-app-access-token
refactor/plugins-detail
fix/reset-dev
feat/llm-support-tools
feat/knowledge-summary-index
fix/preact-security-vulnerability
copilot/fix-clear-query-params-test
refactor/query-params-nuqs
chore/upgrade-pnpm-10.28.0
8c92-update-api-core
detached
chore/i18n-sync-20260107-104636
chore/i18n-sync-20260107-102654
feat/grouping-branching
feat/agent-node-v2
hotfix/1.11.2-fix.3
feat/llm-node-support-tools
refactor/remove-axios-dependency
refactor/web-service-hooks
fix/pwa-plugin-migration
chore/refactor-text-generation
hotfix/1.11.2-fix.2
release/e-1.11.1
release/e-1.9.2
release/e-1.8.2
hotfix/1.11.2-hotfix-1
refactor/chat-messages-service-api
fix/knowledge-retrieval-node-affected-by-past-version
fix/esbuild-dependabot-145
chore/automated-i18n-updates-02e0fadef78f0c888b79e7a52ae6714ac73effdc
chore/automated-i18n-updates-eb73f9a9b9fc9eee6be786d2bf5f41fc77e240c4
hotfix/1.11.1-2
refactor-text-generate-item
feat/end-user-oauth
feat/add-qdrant-to-tidb-migration
codex/run-pnpm-lint-fix-and-commit-changes
feat/document-test
feat/e2e-testing
deploy/trigger-dev
hotfix/1.11.1-1
e-260
refactor/use-log-react-query
feat/fallback-interface-for-unauthorized-datasource-node
hotfix/1.10.1-fix.4
refactor/app/components/app/text-generate/item/index.tsx-and-add-test
release/e-1.6.0
hotfix/1.10.1-fix.3
hotfix/1.10.1-fix.2
feat/tracking-1203
deploy/end-user-oauth
hotfix/1.10.1-fix.1
refactor/marketplace-react-query
feat/detect-cognitive-complexity
fix/codeowners
fix/httpx_timeout_parameters
feat/end-user-auth-dummy-apis
chore/re-point-doc-urls
fix/share-markdown-xss
feat/data-tracking
feat/memory-orchestration-be
build/trigger-billing
chore/remove-docker-legacy-dir
copilot/reverse-engineer-dify-application
feat/amplitude
feat/trigger-saas
mysql-adapt
test/build-diff-edition
feat/no-root-image
feat/trigger
feat/ga-tracking
feat/collaboration
mysql-adaptation
feat/sqlalchemy-type-annotations
build/trigger-1
build/self-tenant-queue
mcp-conditional-capability
fix/mcp-capability
hotfix/1.9.2-fix.3
hotfix/1.9.2-fix.2
feat/iteration-node
hotfix/1.9.2-fix.1
hotfix/1.9.1-fix.1
e1ca7a9bdb0443b9f027b6de16
fix/login-status
feat/gtag-1016
test/monaco-editor-and-remix-icon-upgrade
copilot/fix-ce7a9189-f70c-4ea9-81ba-3f49303104d6
feat/memory-orchestration-be-dev-env
build/trigger
feat/add-knowledge-pipeline-template-command
chore/workflow-performance
copilot/fix-fc039c44-aa24-4844-82b2-e9ac237a13e9
test/log-refactor
chore/ssrf-config
feat/pinecone-vdb
copilot/fix-d8c5989d-5a30-418f-8dc4-099cf1f37218
deploy/rag-dev
hotfix/1.9.0-fix.2
pinecone
fix/document-query
feat/trigger_backup
feat/playwright-integration
feat/trigger_merging
feat/chunk-deduplication
feat/crendential-policy-default-check
feat/credential-policy
release/e-1.8.1
fix/template-list
feat/end_user
feat/trigger-fe
revert-25628-refactor-24421-app-datasets-part1
fix/plugin-tag-fallback
fix/unselect-credential
feat/limit-conv-var-desc-length
feat/rag-pipeline-service-api
fix/empty-plugin-list
feat/plugin-readme
feat/plugin-readme-fe
feat/container-node-extract-mapping
bug1
fix/model-credential
feat/big-var-value-show-fe
build/1.7.2-fix.2
release/e-1.7.2
build/boolean-type
feat/oauth-provider-fe
build/0.7.2-fix.1
feat/model-credentials
feat/model-auth
feat/rag-2-preview
release/e-1.7.1
fix/hotfix-tool-provider-deadlock
feat/knowledge-pipeline-access-control
config-tool-file-size
13604-when-using-redis-cluster-for-caching-add-global_prefix-to-all-keys-cached-by-redis
feat/model-credentils
build/oauth
feat/oauth
feat/human-input
build/plugin-auto-upgrade
test/performance
feat/tool-plugin-oauth
feat/tool-oauth
temp-feat-owner-transfer-enterprise-frontend
release/e-3.0.2
feat/plugin-auto-upgrade-fe
chore/offline-the-sys-files
feat/rag-pipeline
feat/r2
release/e-3.2.0
wtw/rag-pipeline
feat/add-retrival-field-in-dataset
feat/webapp-verified-sso-main
fix/app-not-published-error
feat/webapp-verified-sso-260
v141-hotfix
fix/20326-tool-invoke-error-instance-account
fix/19933-account-object-has-no-attribute-_current_tenant-when-workflow-uses-workflow-as-tool-node
hotfix/0519
fix/e-legacy-clean-up
fix/admin-permission
fix/e-admin-permission
feat/model-memory
feat/webapp-auth-api
1.0.0-fix
revert-17133-fix/i16990-text-to-language-settings
e-0156
hotfix/translation-fix
fix/slider-style-error
e-0154
release/0.15.6-alpha-1
cohere/cleanup-free-tenants-logs
chore/auto-dify
fix/rag-infinity-spaces-loop
fix/dataset-admin
fix/expose-debugging-port
fix/tool-info
fix/aws-s3-r2-compatible
feat/knowledge-metabase
fix/fail-branch-stream-output-error
release/0.15.3-fix1
feat/14009-feature-request-support-for-retrieving-historical-conversations-without-from-enduser-id
feat/upgrade-unstructured-version-10.2
feat/classnames-sort
feat/upgrade-unstructured-version
fix/version-check
fix/handle-agent-none-value
fix/agent-params-pasring
fix/agent-parallel
feat/knowledge-dark-mode
feat/custom-tool-input
release/0.15.2-fix1
0.15.1-admin-apis
feat/support-docx-image-view
feat/agent-stream-output
feat/workflow-node-dark-mode
fix/switch-strategy-clean-param
fix/chore-fix
opik-monitoring
provider-gpustack
feat/mecab-japanese-keywords
feat/retry-single-step-debug
revert-12086-feat/parent-child-retrieval
fix/remove-the-retry-index-field
fix/11839
feat/node-execution-retry
feat/support-extractor-tools-update-wip
feat/update-tidb-batchget-endpoint
fix/iteration-thread-pool-error
feat/support-multi-token-count
feat/parent-child-retrieval-api
fix/app-icon-is-missing
feat/support-extractor-tools-update
test/disable_site
build/add-dependabot
feat/support-extractor-tools
fix/docx-extract-image-ssrf
fix/redis-slow-in-gevent
fix/9772-internal-server-error-when-custom-disclaimer-longer-than-64-characters
alert-autofix-89
build/eslint-react-refresh-plugin
build/switch-to-pnpm
revert-9424-feat/update-dataset-clean-rule
fix/external-knowledge-retrieval-issues
feat/login-type-coontrol
feat/external-knowledge-api
feat/rag-external-knowledge-with-api
feat/external-knowledge
fix/notion-table-extract
fix/tooltip
feat/workflow-add-block-shortcut
feat/update-docs
fix/note-node-zoom-issue
fix/model-runtime-quato-issue
fix/db-lock-timeout
feat/new-tooltip
feat/web-app-sso
chore/optimize-app-workflow-deletion-slow-sql
fix/trace_app_config_app_id_idx
fix/extra-table-tracing-app-config
feat/update-beat-job-time-to-env
fix/index-estimate-error
chore/enterprise-license-status
fix/remove-tsne_position
feat/2p
feat/aws-iam-auth-check
feat/add-flashrank
feat/support-milvus-2.4
feat/add-resource-from-tools
bai
1.16.0
1.16.0-rc1
1.15.0
1.14.2
1.14.1
1.14.0
1.13.3
1.13.2
1.13.1
1.14.0-rc1
1.13.0
1.12.1
1.12.0
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.1-fix.1
1.10.1
1.10.0
1.10.0-rc1
1.9.2
1.9.1
1.9.0
2.0.0-beta.2
2.0.0-beta.1
1.8.1
1.8.0
1.7.2
1.7.1
1.7.0
1.6.0
1.5.1
1.5.0
1.4.3
1.4.2
0.15.8
1.4.1
1.4.0
1.3.1
0.15.7
1.3.0
0.15.6
1.2.0
0.15.6-alpha.1
1.1.3
0.15.5
1.1.2
0.15.4
1.1.1
1.1.0
1.0.1
1.0.0
0.15.3
0.15.2
0.15.1
1.0.0-beta.1
0.15.0
0.14.2
v0.8.3-fix1
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.2
0.11.1
0.10.2-fix1
0.11.0
0.10.2
0.10.1
0.10.0
0.10.0-beta3
0.9.2
0.9.1-fix1
0.10.0-beta2
0.10.0-beta1
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.8.0-beta1
0.7.3
0.7.2
0.7.1
0.7.0
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12-fix1
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0-fix1
0.6.0
0.6.0-preview-workflow.2
0.5.11-fix1
0.5.11
0.6.0-preview-workflow.1
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.34
0.3.33
0.3.32
0.3.31-fix3
0.3.31-fix2
0.3.31-fix1
0.3.31
0.3.30
0.3.29
0.3.28
0.3.27
0.3.26
0.3.25
0.3.24
0.3.23
0.3.22
0.3.21
0.3.20
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
Labels
Clear labels
Knowledge Pipeline
Proposal
WIP
cloud
dependencies
feat:webapp
good first issue
outdated
performance
pull-request
python:uv
refactor
size:L
stale
status: accepting prs
status: blocked
status: in discussion
stt & tts
vulnerablity
web
wont-fix
🌊 feat:workflow
🌚 invalid
🐞 bug
👻 feat:rag
💪 enhancement
📚 documentation
🔨 feat:tools
🙋♂️ question
🙏 help wanted
🤔 cant-reproduce
🤖 feat:agent
Mirrored from GitHub Pull Request
No Label
👻 feat:rag
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: langgenius/dify#21848
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @unmo on GitHub (Jan 22, 2026).
Self Checks
Dify version
1.11.4
Cloud or Self Hosted
Self Hosted (Docker)
Steps to reproduce
✔️ Expected Behavior
When uploading an image that exists in the knowledge base, the same image chunk should be ranked #1 with the highest score.
So knowledge ui have tag [multimodal]
❌ Actual Behavior
@dosubot[bot] commented on GitHub (Jan 22, 2026):
This is a known issue in Dify's multimodal knowledge base search with Vertex AI multimodalembedding@001: image file queries and image URL (text) queries follow different embedding paths, which leads to inconsistent ranking.
When you upload an image, Dify encodes the file and generates an embedding using the multimodal model. When you search using an image URL as text, Dify embeds the URL string as plain text. If the chunk in your KB contains the same signed URL, the text embedding will match almost perfectly, resulting in artificially high scores (e.g., 1.0), even though this does not reflect true image similarity. This is why image URL queries as text can "cheat" the vector search and always rank highest, while actual image queries rely on the multimodal embedding and may not rank the identical image chunk highest due to subtle differences in how embeddings are generated and stored for images vs. text queries. The two pipelines use different cache keys and embedding logic, which further contributes to the discrepancy [source 1] [source 2].
There is no configuration workaround in v1.11.4 to harmonize these behaviors. Disabling rerank means ranking depends solely on vector similarity, which is affected by this pipeline split. The best mitigation is to avoid using image URLs as text queries for evaluation, and rely on image file queries for real similarity search. For maintainers, a long-term fix would involve harmonizing how image and text queries are embedded and compared, or filtering out signed URLs from chunk text before embedding.
You can track related changes and fixes in PRs like #29115 and #30210, and monitor for future updates addressing this ranking inconsistency.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@unmo commented on GitHub (Jan 22, 2026):
@dosu
Thanks for the explanation.
In our tests, the similarity score for an identical image query is consistently very low (~0.03–0.05), which seems too low even for non-exact matching.
This happens not only with Vertex AI multimodalembedding@001, but also with other embedding models we tested. The same behavior is reproducible: uploading an image that exists in the KB does not produce a high similarity score for the corresponding chunk.
So the issue is not limited to URL/text queries. The main concern is that image file queries do not produce high similarity scores even for identical images stored in the KB.
@dosubot[bot] commented on GitHub (Jan 22, 2026):
This is a systemic issue in Dify's multimodal pipeline: the same image bytes are used for both indexing and query, but the only difference is the EmbeddingInputType flag (DOCUMENT for indexing, QUERY for search) sent to the embedding provider/model. There’s no resizing, format conversion, or other preprocessing in Dify itself that would explain the low similarity scores you’re seeing for identical images—this applies across embedding models, not just Vertex AI. The most likely cause is that the embedding provider/model generates different embeddings for DOCUMENT and QUERY input types, resulting in low similarity even for identical images reference.
To confirm, you can enable debug logging in Dify and compare the raw embeddings for the same image at both indexing and query time, or test the provider/model directly outside Dify with both input types. If the embeddings differ, this is a provider/model behavior, not a Dify bug. If high image-to-image similarity is critical, you may want to avoid relying on this feature until the underlying issue is resolved, or check with your embedding provider for clarification on DOCUMENT vs. QUERY handling.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@unmo commented on GitHub (Jan 22, 2026):
@dosu
Thanks. I checked the current Vertex provider implementation in Dify.
In the multimodal image embedding path (
vertexai.vision_models.MultiModalEmbeddingModel.get_embeddings(image=...)),EmbeddingInputType(DOCUMENT/QUERY) is not mapped to any provider parameter (no task_type or input_type is passed for image embeddings). The image embedding call looks identical for indexing and query.Also, the official Vertex multimodal embeddings API docs for
multimodalembedding@001do not expose a DOCUMENT/QUERY option in the request examples.https://github.com/langgenius/dify-official-plugins/blob/main/models/vertex_ai/models/text_embedding/text_embedding.py#L274
So the low similarity scores (~0.03–0.05) for identical image queries may not be explained by DOCUMENT vs QUERY handling on the provider side (at least for the image embedding call).
Could someone confirm if this behavior is expected in v1.11.4?
@dosubot[bot] commented on GitHub (Jan 22, 2026):
Based on the code and plugin implementation, the low similarity scores for identical image queries are not caused by any Dify-side transformation, configuration, or DOCUMENT/QUERY handling—Dify sends the same image bytes and uses the same embedding call for both indexing and query, and the Vertex AI API does not distinguish input types for images. This behavior is observed across multiple embedding models and is a known issue in Dify's multimodal retrieval pipeline, not a configuration error or expected/intended outcome. There is no explicit confirmation in the docs or release notes that this is "expected," but it is a recognized limitation/bug in v1.11.4 and related versions, and not something you can resolve through settings or environment changes. Monitoring future releases for a fix is recommended.
Reference: plugin code
Reference: core pipeline
Related issue
Recent PRs
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@unmo commented on GitHub (Jan 22, 2026):
Could someone (a maintainer or anyone familiar with Dify multimodal retrieval) please help explain this behavior?
When we query the KB using an image that should be identical to an image already indexed in the multimodal knowledge base, the similarity score stays extremely low (~0.03–0.05).
This is far lower than expected for an identical image query.
We reproduced the same behavior across multiple embedding models.
If anyone knows the root cause (which stage/component makes the score drop, or if this is a known limitation/bug), please share details.
If there are related issues or PRs, links would be greatly appreciated.
@unmo commented on GitHub (Jan 23, 2026):
@dosu
I compared Dify hit-testing scores with cosine similarity computed locally using Vertex AI embeddings.
Image query case:
Dify score = 0.0461731553
Local cosine(query image embedding, chunk image-URL text embedding) = 0.0461730764
Text query case:
Dify score = 0.2682865262
Local cosine(query text embedding, chunk image-URL text embedding) = 0.2682864400
Since both values match almost exactly, it suggests that the Dify score may be computed against the embedding of the image URL/markdown string stored in the chunk, even when the query is an image (i.e., image/text ↔ URL-text), rather than image ↔ image embedding similarity.
Does anyone know how to verify whether image chunks are indexed and searched using image embeddings, not URL/text embeddings?
@dosubot[bot] commented on GitHub (Jan 23, 2026):
You can verify how Dify indexes and searches image chunks by checking the chunk metadata and the vector database. In Dify's high-quality multimodal pipeline, images from DOCX files are saved as files and referenced in the chunk text as markdown image links (e.g.,
). However, for actual image retrieval, Dify creates separate "attachment" chunks (withdoc_type=IMAGE) and embeds the raw image bytes—not the markdown or URL text—using the embedding model. These image embeddings are stored in the vector DB and are used for image queries, while text chunks (including those with image markdown) are embedded as text and used for text queries. The two paths are distinct and kept in sync via metadata likedoc_idanddoc_typesource.If your Dify search results and scores match the cosine similarity between your query image embedding and the chunk's text (URL/markdown) embedding, it means your search is hitting text chunks, not image chunks. To confirm image chunks are indexed and used, inspect your vector DB (e.g., Qdrant) for entries with
doc_type=IMAGEand check that their embeddings were created from image bytes. You can also enable debug logs to trace embedding calls and see which chunks are being compared during retrieval source.If your retrieval UI or API is only showing text chunks (not image attachments), or if your search is performed as a text query (even with an image URL as text), you’ll only see text-to-text similarity, not image-to-image. For true image-to-image retrieval, ensure your queries and results are using the image attachment chunks and their embeddings.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@unmo commented on GitHub (Jan 23, 2026):
@Dosu
When searching the KB using an uploaded image (that should exist in the indexed DOCX), the response items returned by Search Test look like “text segments”, and the document.doc_type / document.doc_metadata fields are always null.
For example, the image query returns records like:
Questions
Any clarification or pointers to the relevant code path would be greatly appreciated.
@dosubot[bot] commented on GitHub (Jan 23, 2026):
Yes, it's expected in Dify v1.11.4 for
segment.document.doc_typeandsegment.document.doc_metadatato often be null in Search Test results, even for multimodal KBs. These fields are nullable at the database/model level and may not be set or populated during indexing or retrieval, especially for segments representing text or markdown image links rather than direct image attachments. This is a known limitation in current releases [source].To verify if retrieval on an image query is actually using image embeddings (image attachment chunks), check if your query is passed as an attachment ID (not as text or URL) and inspect the vector database for entries with
doc_type=IMAGE. You can also enable debug logs to trace embedding calls and see if the retrieval pipeline is usingembed_multimodal_querywith image bytes, not text. If your search results and scores match the cosine similarity between your query image embedding and a chunk's text (URL/markdown) embedding, you're likely hitting text chunks, not image chunks [source].Yes, image chunks extracted from DOCX/PDF are indexed as a separate type (
doc_type=IMAGE) in high-quality multimodal KBs. However, the Search Test API typically returns text segments (including those with markdown image links) by default, not the raw image chunks. Image chunks are stored and linked viaSegmentAttachmentBinding, but unless the retrieval UI/API is configured to show image attachments, you'll only see text segments in the response. Full support for reliable retrieval and rendering of image-containing segments is only available in versions after PR #27793 (December 2025); in v1.11.4, this behavior is limited [source].Relevant code paths:
models/dataset.pycore/rag/datasource/vdb/vector_factory.pycore/rag/retrieval/dataset_retrieval.pyLet me know if you want practical steps for inspecting your vector DB or enabling debug logs to trace image chunk retrieval.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@unmo commented on GitHub (Jan 23, 2026):
@crazywoola
Hi, could you please advise on this behavior?
We are testing Dify v1.11.4 (self-hosted) with a Multimodal Knowledge Base
(High Quality / Vector search / Rerank OFF).
When we query by uploading an image that should be identical to an image indexed from a DOCX,
the expected image chunk does not rank at the top, and the similarity score stays very low
(~0.03–0.08).
Most importantly, we found a strong clue:
cosine(query_image_embedding, chunk_image_url_markdown_text_embedding)
This suggests the retrieval might be comparing image embedding ↔ image-URL/markdown text embedding,
instead of image ↔ image embedding similarity.
(I checked the code but couldn’t clearly identify where/why this path is taken.)
Questions:
(i.e., not returning IMAGE attachment chunks / image embeddings)?
(e.g., doc_type=IMAGE or similar) in the vector DB?
If yes, what is the recommended way to verify they exist and are actually used during retrieval?
Thanks in advance.