配置

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 配置。