公開日:

Difyが対応しているベクトルデータベース

Authors
  • author image
    Name
    代表取締役 宮永邦彦
    Twitter
    @miyanaga
  • 画像軽量化とWebフロントエンドのスピード改善の専門家です。Web系のIT技術大好き。

    このサイトではスピード改善のリアルや、日々の技術的な気づきを共有します。

Difyでナレッジを取り込むと、その内容はベクトルデータベースに格納される。

Difyは多種多様なベクトルデータベースに対応しているようで、環境設定ファイルを眺めているだけでも興味深い。

Difyが対応していると思われるベクトルデータベースを調べてみた。


ベクトルデータベースとは

LLMには、文章などを例えば1024次元のような高次元ベクトルに変換する機能がある(Embedding)。いわば文章を言語空間における意味的な位置にマッピングする機能で、意味の近い文章はその位置が近くなるため曖昧検索に利用できる。

そのような高次元ベクトルの方向や距離を計算できるデータベースが、ベクトルデータベースである。

Difyにおいては、Vector Storeという扱いになっている。要はベクトルをキーとしてコンテンツをインデックスできる構造だけあればよいので、複雑なデータベースというよりKVS(Key-Value Store)に近い。

Difyが対応するVector Store

ひとつずつ検証したわけではないが、Difyの環境設定ファイルを眺めていると、多種多様なデータベースへの対応が見て取れる。

この分野はまったく知見がないので、どんなデータベースに対応しているか調べてみた。

INFO

この記事の執筆時である2024年10月7日現在の状況。環境変数VECTOR_STOREに指定できる値から調査した。

生成AIブームの後押しで、どのクラウドサービスもベクトルデータベースに力を入れている。

しかし、AWSはOpenSearchのサポートは見られるが、AzureやGCPに合わせた対応は見られない。逆にAlibaba Cloud、Tencent Cloudへの対応が見られる。相対的に中国勢の強さが見られる対応状況だ。

本格利用に向けて

DifyのDocker ComposeプロジェクトにはWeaviateが含まれており、デフォルトでそれが使える状態になっている。

しかし本番運用ではスケーラビリティの点で不安がある。弾力性のあるクラウドサービスを選択するのが無難だろう。

Difyはストレージもいろいろと選択できる。その対応についても今後調査してみたい。