設定

將 Dify Enterprise Edition 與 Oracle AI Database 26ai 整合,以利用多模型向量儲存和有效擷取。 若要啟用 Oracle AI Database 26ai 的向量儲存和擷取功能,請在日期中預先設定資料庫並修改參數,以確保透過整合 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. 建立驗證使用者並進行授權。
    1. 執行下列命令以建立專用使用者:
      create user dify identified by password default tablespace users quota unlimited on users
    2. 請執行下列命令,將資料庫開發權限授與使用者:
      grant db_developer_role to dify
    這樣可確保使用者具備建立表格和向量索引作業權限。
  4. 建立向量搜尋 tokenizer。
    執行 PL/SQL 敘述句以建立多語言斷字器。舉例而言:
    BEGIN CTX_DDL.CREATE_PREFERENCE('dify.world_ lexer ','WORLD_LEXER');
    END; /.
    此文字分隔符號可以處理多種語言的文字,包括中文和英文,以確保文字擷取正確無誤。

將 Dify 連線至 Oracle 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. 在 vectordb-config.yaml 中新增 Oracle 環境變數宣告。
      {{- 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 升級以更新驗證組態。
    2. 在 API Pod 中執行 kubectl,以驗證環境變數是否有效,並確保 VECTOR_STORE=oracle。
    3. 重複工作 Pod 中的驗證,確認所有業務元件都可以讀取 Oracle 組態。