구성

Dify Enterprise Edition과 Oracle AI Database 26ai를 통합하여 멀티모달 벡터 스토리지 및 효율적인 검색을 활용할 수 있습니다. Oracle AI Database 26ai의 벡터 스토리지 및 검색 기능을 활성화하려면 Dify에서 데이터베이스를 사전 구성하고 매개변수를 수정하여 Dify 애플리케이션 및 Oracle AI Database 26ai 벡터 관리의 통합을 통해 벡터 데이터를 원활하게 작성하고 검색할 수 있습니다.

전용 Oracle AI Database 26ai 환경 사전 구성

EE(Dify Enterprise Edition)에서 Oracle 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; /.
    이 단어 차단기는 정확한 텍스트 검색을 위해 중국어 및 영어를 포함한 여러 언어로 텍스트를 처리할 수 있습니다.

DifyOracle AI Database에 연결

다음 단계에 따라 Dify Helm 값 및 템플리트를 코딩한 다음 Oracle AI Database 26ai에 연결할 구성을 적용하고 확인합니다.
  1. values.yaml 구성을 수정합니다.
    Dify의 Helm 구성 파일에 Oracle 벡터 데이터베이스 매개변수를 추가하여 데이터베이스 연결 정보 및 인증 방법을 지정합니다.
    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 템플리트 파일을 수정합니다. Oracle 환경 변수 및 키를 올바르게 마운트할 수 있도록 Dify 설치 디렉토리 아래의 구성 템플리트를 조정합니다.
    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 Pod에서 kubectl를 실행하여 환경 변수가 유효한지 확인하고 VECTOR_STORE=oracle을 확인합니다.
    3. Worker Pod에서 확인을 반복하여 모든 비즈니스 구성요소가 Oracle 구성을 읽을 수 있는지 확인합니다.