OceanBaseデータベースは、バージョンV4.3.3からベクトル型データの格納、ベクトルインデックス、そして埋め込み(embedding)ベクトル検索機能をサポートしています。これにより、ベクトル化したデータをOceanBaseに保存し、その後の検索処理で直接利用できるようになりました。
Difyは、オープンソースの大規模言語モデル(LLM)アプリケーション開発プラットフォームです。バックエンド・アズ・ア・サービス(Backend as a Service)とLLMOpsの理念を融合し、開発者が本番レベルの生成AIアプリケーションを迅速に構築できるようにします。技術者でなくても、AIアプリケーションの定義やデータ運用プロセスに参加できます。
Difyは、LLMアプリケーションを構築するために必要な主要な技術スタックが組み込まれています。これには、数百のモデルのサポート、直感的なプロンプト・オーケストレーションインターフェース、高品質なRAGエンジン、堅牢なAgentフレームワーク、柔軟なプロセスオーケストレーションが含まれており、使いやすいインターフェースとAPIも提供されています。これにより、開発者は無駄な作業を繰り返す時間を大幅に節約でき、イノベーションやビジネス要件に集中することができます。
本記事では、OceanBaseデータベースのベクトル検索機能とDifyを連携させる方法をご紹介します。
前提条件
Difyをデプロイする前に、お使いのマシンが以下の最低システム要件を満たしていることを確認してください:
- CPU:2コア
- メモリ:4GB
本記事はDockerコンテナプラットフォームで行われます。Dockerコンテナ環境をセットアップしていることを確認してください。
OceanBaseデータベースのデプロイが完了し、MySQLモードのユーザーテナントが作成されていること。テナント作成の詳細については、テナントの作成を参照してください。
ベクトル検索機能を有効にするには、テナントで
ob_vector_memory_limit_percentage構成パラメータが設定されていることを確認してください。V4.3.5 BP3より前のバージョンでは、この値を30に設定することを推奨します。V4.3.5 BP3以降のバージョンでは、デフォルト値である0のままにしておくことを推奨します。より正確にこのパラメータを設定する必要がある場合は、ob_vector_memory_limit_percentageを参照してこの値を計算してください。
ステップ1:データベース接続情報を取得する
OceanBaseデータベースのデプロイ担当者または管理者に連絡し、対応するデータベース接続文字列を取得します。例:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
パラメータの説明:
$host:OceanBaseデータベースへの接続IPアドレスです。OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)経由で接続する場合はODPのアドレスを、直接接続する場合はOBServerノードのIPアドレスを使用します。$port:OceanBaseデータベースの接続ポートです。ODP経由の接続ではデフォルトで2883が使用されますが、ODPのデプロイ時にカスタマイズ可能です。直接接続の場合はデフォルトで2881が使用され、OceanBaseデータベースのデプロイ時にカスタマイズできます。$database_name:アクセスするデータベースの名前です。注意
テナントに接続するユーザーは、データベースに対する
CREATE、INSERT、DROP、およびSELECT権限が付与されていなければなりません。ユーザー権限の詳細については、MySQLモードの権限分類を参照してください。$user_name:テナントへの接続アカウントです。ODP経由で接続する場合の一般的な形式はユーザー名@テナント名#クラスタ名またはクラスタ名:テナント名:ユーザー名。直接接続の場合はユーザー名@テナント名となります。$password:アカウントのパスワードです。
接続文字列の詳細については、OBClientを使用してOceanBaseテナントに接続するを参照してください。
ステップ2:Difyをデプロイする
方法1
Difyのデプロイに関する詳細は、Docker Composeデプロイを参照してください。
以下の変更を行います:
.envファイル内のVECTOR_STORE変数をoceanbaseに修正します。docker compose --profile oceanbase up -dを使用してサービスを開始します。
方法2
Dify for MySQLの情報を参照するして、Difyサービスを迅速に起動することもできます。
サービスを起動する手順は以下のとおりです:
cd docker
bash setup-mysql-env.sh
docker compose up -d
ステップ3:Difyを使用する
Difyを使用して大規模言語モデルにアクセスするには、大規模言語モデルへのアクセスを参照してください。