構成

Dify Enterprise EditionとOracle AI Database 26aiを統合して、マルチモーダル・ベクトル・ストレージと効率的な取得を活用します。 Oracle AI Database 26aiのベクトル格納および取得機能をアクティブ化するには、Difyでデータベースを事前構成し、パラメータを変更して、DifyアプリケーションとOracle AI Database 26aiベクトル管理の統合を通じてベクトル・データをシームレスに書込みおよび取得できるようにします。

専用のOracle AI Database 26ai環境の事前構成

「Dify Enterprise Edition (EE)」で、Oracle プラガブル・データベース(PDB)データベースをインストールおよび構成します。
最初に、Oracle PDBにデータベース・アクセス・ユーザーを作成する必要があります。次に、「通知」EE構成ファイルでデータベース接続のユーザーとパスワードを構成します。PDBサービス名を使用すれば十分です。次のステップに従います:
  1. Oracle AI Database 26aiにログインします。
  2. ターゲットPDBに切り替えます。
    1. show pdbsコマンドを実行して、使用可能なすべてのPDB(PDB1など)を表示します。
    2. 次のサンプル・コマンドを使用して、ターゲットPDBコンテナに切り替えます。
      alter session set container=PDB1
  3. 「Dify」ユーザーを作成して認可します。
    1. 専用ユーザーを作成するには、次のコマンドを実行します。
      create user dify identified by password default tablespace users quota unlimited on users
    2. 次のコマンドを実行して、ユーザーにデータベース開発権限を付与します。
      grant db_developer_role to dify
    これにより、ユーザーに表作成およびベクトル索引操作権限が付与されます。
  4. ベクトル検索トークナイザを作成します。
    PL/SQL文を実行して、多言語のワード・ブレーカを作成します。たとえば:
    BEGIN CTX_DDL.CREATE_PREFERENCE('dify.world_ lexer ','WORLD_LEXER');
    END; /.
    このワード・ブレーカは、テキストを正確に検索するために、中国語および英語を含む複数の言語でテキストを処理できます。

DifyOracle AI Databaseに接続

次のステップに従って、Dify Helm値およびテンプレートをコード化し、構成を適用して検証し、Oracle AI Database 26aiに接続します。
  1. values.yaml構成を変更します。
    Oracleベクトル・データベース・パラメータをDifyのHelm構成ファイルに追加して、データベース接続情報および認証方法を指定します。
    vectorDB:
      externalType: "oracle"
      externalOracleVectoRS:
        dsn: "Oracle_IP:1521/PDB1"  # Database address and PDB
        user: "dify"                # Dify dedicated username
        password: "dify_1234"       # Password
        config_dir: "/app/api/storage/wallet"
        wallet_location: "/app/api/storage/wallet"
        is_autonomous: "false"      # Is it an autonomous database?
  2. Difyテンプレート・ファイルを変更します。「Dify」インストール・ディレクトリの下にある構成テンプレートを調整して、Oracle環境変数およびキーが正しくマウントされるようにします。
    1. Oracle環境変数宣言をvectordb-config.yamlに追加します。
      {{- else if eq .Values.vectorDB.externalType "oracle" }}
      ORACLE_DSN: {{ .Values.vectorDB.externalOracleVectoRS.dsn | quote }}
      ORACLE_USER: {{ .Values.vectorDB.externalOracleVectoRS.user | quote }}
      ORACLE_CONFIG_DIR: {{ .Values.vectorDB.externalOracleVectoRS.wallet_location | quote }}
      ORACLE_WALLET_LOCATION: {{ .Values.vectorDB.externalOracleVectoRS.wallet_location | quote }}
      ORACLE_IS_AUTONOMOUS: {{ .Values.vectorDB.externalOracleVectoRS.is_autonomous | quote }}
    2. プレーン・テキストでの資格証明の格納を回避するために、パスワード暗号化構成をvectordb-secret.yamlに追加します。
      {{- else if eq .Values.vectorDB.externalType "oracle" }}
      ORACLE_PASSWORD: {{ .Values.vectorDB.externalOracleVectoRS.password | b64enc | quote }}
      ORACLE_WALLET_PASSWORD: {{ .Values.vectorDB.externalOracleVectoRS.wallet_password | b64enc | quote }}
  3. 構成を適用して検証します。
    1. Helmアップグレードを実行して、Dify構成を更新します。
    2. APIポッドでkubectlを実行して、環境変数が有効であることを確認し、VECTOR_STORE=oracleを確認します。
    3. ワーカー・ポッドの検証を繰り返して、すべてのビジネス・コンポーネントがOracle構成を読み取れることを確認します。