設定

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 組態。