0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify v1.11.0 の目玉は「Multimodal Knowledge Base」

Posted at

Dify v1.11.0 の目玉は「Multimodal Knowledge Base」:PDF(画像入り)をナレッジ化する Knowledge Pipeline サンプルと落とし穴(FILES_URL)

Dify v1.11.0 の主役は Multimodal Knowledge Base(画像を含むナレッジ)です。
スクショや図が多いドキュメントを「テキストだけ」ではなく、画像も“文脈の一部”として扱えるようになりました。

この記事では、

  • v1.11.0 の機能ポイント(誇張なし)
  • PDF(画像入り)を取り込む Knowledge Pipeline の最小サンプルノード
  • Dify Extractor 実行時の ConnectError / Errno 111(Connection refused) を潰す .env 設定

をまとめます。


v1.11.0:Multimodal Knowledge Base で何が変わる?

リリースノートの要点を、実務目線で噛み砕くとこうです。

1) 画像を自動で拾って「チャンクに添付」する

Markdown の画像(![...](...))などを自動抽出し、対応するテキストチャンクに紐付けて添付します(画像は JPG/PNG/GIF、2MB以下が目安)。

2) Embedding の選択で “できること” が変わる

  • マルチモーダル Embeddingを使う:テキスト+画像をベクトル化して、テキスト↔画像 / 画像↔画像などを狙える
  • テキスト Embeddingのまま:画像は添付として残り、Vision対応LLMを使うとプロンプトに載せられる

3) Knowledge Pipeline 側に “マルチモーダル向けのモード” が追加

Knowledge Pipeline の KnowledgeBase ノードに

  • multimodal-Parent-Child
  • multimodal-General

という新しい入力形式(モード)が追加され、プラグイン側から混在モダリティを扱いやすくなっています。


Knowledge Pipeline の最小サンプル(PDFをナレッジ化:画像抽出を狙う)

Knowledge Pipeline は、「取り込み→処理→分割→インデックス化」をノードで組み立てる仕組みです。
ここでは、あなたが実際に試している構成に合わせて **“最小で動く”**を優先します。

✅ サンプルノード構成(最小)

[FILE] → [DIFY EXTRACTOR] → [GENERAL CHUNKER] → [知識ベース]
  • FILE:PDFを入力
  • DIFY EXTRACTOR:PDFの本文抽出+(可能なら)画像抽出して添付化
  • GENERAL CHUNKER:RAG用に分割
  • 知識ベース:ベクトル検索で保存

画像が本当に取れているかは、取り込み後に **チャンク詳細の Attachment(添付)**で確認します。
画像が付いていれば「抽出成功」です。


画像を回答に使うには?(LLM/設定の要点)

Vision対応LLMが必要

画像を“見て”回答させるには、アプリ側のモデルが Vision対応LLMである必要があります。

画像をURLで渡す設定にするなら FILES_URL が重要

Self-host では、マルチモーダル入力画像の送信方式として base64 / url があり、url を使う場合は FILES_URL を外部から到達可能なアドレスにする必要があります。


【ハマりどころ】Dify Extractor で Errno 111(Connection refused)になった話

遭遇したエラーはこれです。

An error occurred in the langgenius/dify_extractor/dify_extractor …
error type: ConnectError, error details: [Errno 111] Connection refused

この手のエラーは、原因として多いのが Dify Extractor(プラグイン)がファイル取得のために参照するURL(FILES_URL)が “コンテナ的に到達不能”なことです。

❌ ダメな例(よくある)

FILES_URL=http://localhost
INTERNAL_FILES_URL=http://api:5001

localhostExtractorコンテナ自身 を指すため、Dify本体の /files/... に到達できず Connection refused になりがちです。

✅ 今回直して成功した例(Dockerでの定番)

FILES_URL=http://api:5001
INTERNAL_FILES_URL=http://api:5001
  • api は docker-compose の サービス名(コンテナ間通信で解決できる)
  • 結果として DIFY EXTRACTOR がファイルに到達でき、パイプラインが正常終了

外部公開URL(https://〜)を使う構成でも、少なくとも Dify Extractorが到達できるURLになっているかは要確認です。
社内環境(Zscalor)の影響が関係しています。


取り込みが成功しているかのチェックリスト

  • Pipeline の実行が成功する
  • ナレッジのチャンク詳細で Attachment(添付)に画像が付いている
  • (回答で使うなら)アプリ側モデルが Vision 対応
  • MULTIMODAL_SEND_IMAGE_FORMAT=url を使うなら、FILES_URL が外部到達可能

まとめ

  • Dify v1.11.0 の主役は Multimodal Knowledge Base(画像もナレッジの文脈として扱う)
  • Knowledge Pipeline の最小構成は FILE → DIFY EXTRACTOR → CHUNKER → 知識ベース
  • DIFY EXTRACTORErrno 111 Connection refusedノード構成より .envFILES_URL が原因になりやすい
    • FILES_URL=http://localhost は避け、コンテナ間到達できるURLにするのがコツ

おまけ:よくある改善アイデア

  • 画像が付かないPDF(スキャンPDFなど)では、
    • PDF→ページ画像化→OCR(またはVision LLMで文字起こし)
      の「フォールバック」パイプラインを用意すると安定します。
  • 画像そのものも検索したい場合は、ナレッジ側の Embedding を マルチモーダル対応に切り替えるのがポイントです。

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?