配置

将 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 可插入数据库 (Pluggable Database,PDB) 数据库。
必须先在 Oracle PDB 中创建数据库访问用户。然后在 Dify 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; /.
    这个单词断路器可以处理多种语言的文本,包括中文和英文,以确保准确的文本检索。

将 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 升级以更新 Dify 配置。
    2. 在 API 云池中运行 kubectl 以验证环境变量是否有效并确保 VECTOR_STORE=oracle。
    3. 在 Worker Pod 中重复验证,以确认所有业务组件都可以读取 Oracle 配置。