5
2

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をOCI GenAIでも試そう

Posted at

本手順に利用するOCI Generative AIのcohere.embed-v4.0のDifyでのVISION対応は現在Pull Request中です。利用についてはマージされるまでお待ちください!
https://github.com/langgenius/dify-official-plugins/pull/2450

DifyのMultimodal Knowledge Baseとは?

DifyではRAGに関する機能をKnowledge Baseと呼んでいます。
これまでKnowledge Baseに登録できるのはテキスト情報でしたが、v1.11.0では画像もEmbeddingして管理できるようになります。

整理すると以下のようになります。
image.png

詳細は以下のリリースノートをご確認ください。

OCI Generative AIのどのモデルがVISION対応した?

OCIでは画像のEmbedingができるモデルとしてCohere Embed v4が利用可能です。

なお利用可能なリージョンは以下。

  • 日本中央部(大阪)
  • サウジアラビア中央部(リヤド)
  • 米国中西部(シカゴ)

動かしてみよう

テストデータ

検証するためのテストデータを準備します。

Multimodal Knowledge Baseとしては対応しているのはマークダウンのみで、さらに画像は以下のように![vibe](https://cats.png)のような形式でダウンロードできる必要があります。
今回は以下の流れでデータを準備しました。

  1. ChatGPTにお願いしてシンプルなマークダウンテキストと画像を生成してもらう
  2. OCIのObject StorageにPublicでアクセスできるBucketを作成し、生成された画像をアップロード
  3. 生成されたマークダウンテキストに画像のURLを挿入する

実際のマークダウンファイルは以下になります。※Object Storageのnamespaceは伏せています。

# Multimodal KB Simple Test (Markdown)

このテストデータは、Difyの**マルチモーダル(画像も参照して答える)**動作を、誰でも直感的に確認できるように作ったものです。
「画像に書いてある情報」を質問すると、うまく動いていれば**画像の中身を根拠に回答**できます。

> 画像はすべて合成(Mock)です。実在の店舗・施設とは関係ありません。

---

## 1. カフェのメニュー(画像にしかない価格を質問する)

次の画像はカフェのメニューです。

![cafe menu](https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<Object Storage Namespace>/b/for_external_use_bucket/o/cafe_menu.png)

---

## 2. 週末イベントのチラシ(日時・場所・料金が画像にある)

次の画像はイベントのチラシです。

![event flyer](https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<Object Storage Namespace>/b/for_external_use_bucket/o/weekend_event_flyer.png)

---

## 3. 簡易マップ(場所名と徒歩時間を画像から読む)

次の画像は簡単な地図です。

![simple map](https://objectstorage.ap-tokyo-1.oraclecloud.com/n/<Object Storage Namespace>/b/for_external_use_bucket/o/simple_map.png)

---

ぞれそれのファイルは以下の画像です。
cafe_menu.png
image.png

weekend_event_flyer.png
image.png

simple_map.png
image.png

ナレッジベースの作成

image.png

image.png

image.png

image.png

動作確認

検索テストから動作確認をしてみましょう。

まずはテストデータとして登録した画像(simple_map.png)をアップロードしてテストをしてみます。
image.png

チャンクが3つ取得されました。
1番目は同じ画像が検索されました。同じファイルなのでScore 1.0ですね。
2番目はテキストのみのチャンクがヒットしました。内容にマップなどが含まれていてScore 0.69でした。
これで画像から画像、画像からテキストの検索ができていることが確認できました。
image.png

では、今度は似た画像で検索してみましょう。以下の画像です。
image.png
⬆️この画像で検索してcafe_menu.pngがヒットするか確認してみます。

Score 0.85cafe_menu.pngがヒットしました。
image.png

最後にテキストから画像がヒットするかを確認してみます。
simple_map.pngを狙って、Midtown park (Hall B)mapでテストしてみます。

結果、狙い通りsimple_map.pngScore 0.73でヒットしました。
image.png

念の為、テキストで検索について英語ではなく日本語で検索をしてみます。

Cohere Embed v4はドキュメントではLanguage SupportとしてImage: English only.と記載があったため。

先ほどの英語と同じ日本語ワードでテストしたところ1番目に目的の画像がヒットしました。検索自体はできるようです。
image.png

最後に

本記事ではDify v1.11.0の新機能であるMultimodal Knowledge Baseについて動作検証を行い、想定通りの挙動が得られました。
現状だと上記で試したようにマークダウン形式にする必要があり、ひと手間必要ですが、、、とはいえ、画像をナレッジベースで使えるようになり、利用の幅が広がりますね!

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?