DifyがベクターストアとしてIRISに対応—セットアップガイド

Dev.to / 2026/4/21

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • InterSystemsのIRISはベクター検索、MCPサポート、エージェント型AIなどのAI機能をネイティブに提供しており、Difyは企業向けAIワークフロー構築のための補完的なオーケストレーション層として位置づけられています。
  • 本記事では、IRISが信頼性の高いクエリ可能なSQLアクセス可能なデータ処理を担い、DifyがLLMオーケストレーション、RAGパイプライン、エージェント型ワークフローを扱う形で統合することを説明しています。
  • この統合はオープンソースのプルリクエストとしてDifyに提供され、Dify v1.11.2にマージされました。さらにマージ後のフォローアップ修正も反映されています。
  • Docker/Docker ComposeとGitといった前提条件から始め、Difyリポジトリをクローンするところを皮切りに、手順を追ったセットアップガイドが提示されています。
  • 全体の狙いは、企業チームが既に利用している環境(Difyエコシステム)に対応できるようにして、データ基盤を捨てることなく導入を進められるようにする点にあります。

この統合が重要な理由

InterSystemsは、IRISにネイティブにAI機能をさらに推し進めています――ベクタ検索、MCPのサポート、そしてエージェント型AI機能です。このロードマップは重要であり、後退する意図はありません。

しかしAIの状況は、エコシステム統合をますます不可欠にする形でも進化しています。Dify のような、オープンソースのプロダクション品質LLMオーケストレーションプラットフォームは、エンタープライズのAIスタックにおいて真剣な存在感を持つようになりました。特に日本では、Difyの導入はもはやスタートアップや趣味の領域に限られていません。大企業にまで広がり、従業員が社内のAIワークフローの基盤として使っています。新しい能力を単独でゼロから作り込むのと同じくらい、開発者やチームがすでにいる場所で合流することが価値を持ちます。

この統合が目指しているのはまさにそれです。IRISは、得意なこと――信頼性が高く、クエリ可能で、SQLでアクセスできるデータに、組み込みの処理ロジックを備えること――を担当し、DifyはLLMオーケストレーション、RAGパイプライン、エージェント型ワークフローを担当します。両者が組み合わさることで、IRISの利用者は、自分たちのデータ基盤と、周囲で勢いを増しているAIツールのどちらを選ばなければならない、という状況から解放されます。

この統合はOSSプルリクエストとしてDifyに提供され、Dify v1.11.2でマージされました(#29480)。その後、いくつかのフォローアップ修正がマージされています(下記で説明します)。本記事ではセットアップ手順を説明します。

まず、この投稿を英語のDeveloper Communityに出すよう後押ししてくれた @megumi.Kakechi に感謝します――その後押しがなければ、この記事は日本語だけの記事のまま残っていたでしょう。あわせて、この統合を実際に手で試し、後続のリリースに含めることになった修正内容の形作りに役立つ、非常に貴重なフィードバックを提供してくれた @tomohiro.Iwamoto@Mihoko.Iijima にも感謝します。

OSSの背景: その貢献(コントリビュート)の道のり自体が気になる方は、Zennで記事を書きました:「このDB、もっと知られてもいいのでは?」からOSSコントリビュートに至った話(日本語)

前提条件

ツール メモ
Docker / Docker Compose 最近のバージョンであれば可
Git Difyリポジトリをクローンするため

セットアップ

1. Difyリポジトリをクローンする

> git clone https://github.com/langgenius/dify.git
> cd dify/docker

2. 環境ファイルを用意する

> cp .env.example .env

3. ベクタストアとしてIRISを有効化する

.envを開き、次の1行を変更します:

# 変更前(デフォルト)
VECTOR_STORE=weaviate

変更後

VECTOR_STORE=iris

これが最低限です。IRISの接続設定(デフォルト値)はローカル利用向けに事前設定されています。既存のIRISインスタンスに接続する、またはセットアップをカスタマイズする場合に関連するパラメータは以下です:

パラメータ デフォルト 説明
IRIS_HOST iris コンテナのサービス名
IRIS_SUPER_SERVER_PORT 1972 SuperServerポート
IRIS_WEB_SERVER_PORT 52773 マネジメントポータルポート
IRIS_USER _SYSTEM ログインユーザー名
IRIS_PASSWORD Dify@1234 初回起動時に自動設定
IRIS_DATABASE USER 対象ネームスペース
IRIS_SCHEMA dify Difyテーブル用のSQLスキーマ
IRIS_TEXT_INDEX true 全文検索インデックスを有効化
IRIS_TEXT_INDEX_LANGUAGE en テキストのインデックス作成に使用する言語
IRIS_MIN_CONNECTION 1 接続プールの最小値
IRIS_MAX_CONNECTION 3 接続プールの最大値
IRIS_TIMEZONE UTC タイムゾーン設定

4. コンテナを起動する

> docker compose up -d

5. すべてのコンテナが起動していることを確認する

> docker compose ps

STATUSUpになっているirisコンテナを探します:

> docker % docker compose ps --format "table {{.Name}}\t{{.Service}}\t{{.Status}}"
NAME SERVICE STATUS
docker-api-1 api Up
docker-db_postgres-1 db_postgres Up (healthy)
docker-nginx-1 nginx Up
docker-plugin_daemon-1 plugin_daemon Up
docker-redis-1 redis Up (healthy)
docker-sandbox-1 sandbox Up (healthy)
docker-ssrf_proxy-1 ssrf_proxy Up
docker-web-1 web Up
docker-worker-1 worker Up
docker-worker_beat-1 worker_beat Up
iris iris Up <-- これ

Difyにアクセスする

ブラウザで http://localhost/ にアクセスします。初回起動時には、管理者アカウントを作成するよう求められます。

IRISがあなたのベクタを保存していることを確認する

ステップ1――ナレッジベースを作成する

  1. Difyにログインする
  2. KnowledgeCreate Knowledge
  3. テキストファイルまたはPDFをアップロードする
  4. ステップ2で、Index Method の下にある "High Quality"(推奨)を選択する

まだEmbedding Modelが設定されていない場合、ドロップダウンには「No model found.」と表示されます。続行するために、ドロップダウン下部の"Model Provider Settings"をクリックします。

ステップ2――モデルプロバイダを設定する(OpenAI)

Model Providerの画面には、利用可能なプロバイダが一覧表示されます。OpenAI を見つけ、Install をクリックします。


コストに関する注記: OpenAI は、ChatGPT Plus のサブスクリプションとは別の API キーを要求します。OpenAI API アカウントにクレジットを追加する必要があります。ただし、埋め込み(Embedding)のコストは非常に低いため、数ドルでかなりの量が実行できます。無料の代替を希望する場合は、LM Studio または Ollama(OpenAI-API 対応)のローカルモデルもサポートされています。

インストール後、OpenAI は 「設定が必要です」 の下に表示されます。Setup をクリックしてください。

API キーの認証設定 ダイアログが開きます。まだ API キーを持っていない場合は、OpenAI API キーズページを直接開くために 「OpenAI から API キーを取得する」 をクリックします。

名前を入力(例:dify)、API キーを貼り付け、そして Save をクリックします。


 

ステップ 3 — 埋め込みモデルを選択する

知識作成(Knowledge creation)画面に戻ります。Embedding Model のドロップダウンには、利用可能な OpenAI モデルが一覧表示されます。text-embedding-3-small を選択してください。ほとんどのユースケースに対して、コストと検索品質の優れたバランスを提供します。

Save & Process をクリックします。ドキュメントの横に緑のチェックマークが表示されたら、埋め込みは完了です。ドキュメントのチャンクは現在、IRIS 内のベクターとして保存されています。


ステップ 4 — Management Portal でデータを確認する

ここが IRIS ユーザーにとって大きな利点です。Management Portal を開きます:

http://localhost:52773/csp/sys/UtilHome.csp?$NAMESPACE=USER
項目
ユーザー名 _SYSTEM
パスワード Dify@1234

System Explorer → SQL に移動し、スキーマフィルターを dify に設定すると、Dify が作成したテーブルが表示されます。1 つ開いてみると、ドキュメントのチャンク—生のベクター埋め込みを含め—が、どの IRIS テーブルであってもそうであるように、まさに期待どおりに保存されていることが分かります。



IRIS の利点: ほとんどのベクターストアでは、埋め込みデータは不透明であり、アクセスできるのは専用の API 経由に限られます。IRIS では、完全に SQL でアクセスできます。ベクターのデータを直接クエリし、同じネームスペース内ですでにある業務データと結合し、インデックスされている内容を確認したり、その上に独自の検索ロジックを構築したりできます。これは、すでに IRIS エコシステムに投資しているチームにとって意味のある能力です。

最初のリリース以降に修正された点

初期の統合は v1.11.2 でいくつかの荒さ(未整備な部分)を残した状態で出荷されました。それ以来、既知の問題はすべて解決され、公式の Dify コードベースに統合されています。





























PR リリース 説明
#29480 v1.11.2 初期の IRIS ベクターストア対応
#31309 v1.11.2 以降 IRIS バックエンドにおける全文検索とハイブリッド検索を修正
#31899 v1.12.1 Durable %SYS を使ったコンテナ再作成時の IRIS データ永続化を修正
#31901 v1.12.1 Durable %SYS データ永続化のさらなる改善

Durable %SYS に関する注記: #31899 および #31901 の修正がなければ、コンテナの再作成時に IRIS データが失われる可能性がありました。これは、Community Edition の Docker イメージでよくある問題です。IRIS の開発者なら Durable %SYS についてすぐに気付くはずです。これらの修正により、Docker のセットアップがそれを正しく扱うようになります。

トラブルシューティング

WindowsでIRISコンテナが起動に失敗する

Windowsでは、ボリュームのディレクトリ権限の問題により、IRISコンテナが起動に失敗することがあります。コンテナを起動するに、次をdockerディレクトリから実行してください:

chmod -R 777 ./volumes/iris

注: これはWindowsホスト環境における既知の制限です。この手順をなくすための修正は、今後のリリースで予定されています。

IRISコンテナが起動に失敗する(コア数が多い場合)

コア数が多いマシンでは、IRIS Community Edition の20コア制限がトリガーされることがあります。docker-compose.ymliris サービスに次を追加してください:

services:

iris:

cpuset: "0-19"

まとめ
























内容 方法
DifyでIRISを有効化 .envVECTOR_STORE=iris を設定する
保存されたベクトルを確認 管理ポータル → SQL → スキーマ:dify
データの永続化 Durable %SYS が対応(v1.12.1で修正済み)
Community Edition 無料 · 10 GBデータ · 最大20コア

このスタック上で完全なRAGチャットボットを構築する手順については、続報の投稿で説明します。ご質問や課題があれば、下のコメントに書き込んでください。

参考文献