배포 계획
Oracle Cloud Infrastructure Generative AI 에이전트를 사용하여 엔터프라이즈 지식 기반을 검색하여 상황별 관련 답변을 제공하는 지능형 검색 시스템을 구축할 수 있습니다.
이 절에는 다음 구현이 설명되어 있습니다.
- 생성형 AI 에이전트가 수집할 수 있도록 엔터프라이즈 데이터를 서비스 관리형 지식 기반으로 가져옵니다.
- 고객 관리 지식 기반에서 데이터를 인덱스화합니다.
- 데이터 수집을 위한 코드를 구축 및 배포하고 벡터 임베딩을 생성합니다.
서비스 관리형 Knowledge Base가 포함된 생성형 AI 에이전트
다음 배포에서는 OCI Generative AI 에이전트를 사용하여 서비스 관리 지식 기반 및 Oracle Cloud Infrastructure Object Storage를 사용하는 지능형 검색 시스템을 구축합니다.
이 배포는 TXT 및 PDF 파일을 Oracle Cloud Infrastructure Object Storage 버킷에 업로드합니다. 생성형 AI 에이전트가 자동으로 데이터를 수집하여 통합 벡터 저장소에 저장된 벡터를 생성합니다.
이 배포의 장점은 구조화되지 않은 데이터에 대한 관리형 솔루션이 필요하고 빠르고 쉬운 데이터 수집을 제공하며 코딩 및 유지 관리 요구 사항을 최소화하는 고객에게 적합하다는 것입니다. 그러나 Cohere 서비스 관리형 임베딩 모델은 지식 기반당 최대 1000개의 텍스트와 PDF 파일만 허용합니다.
genai-knowledge-base-oracle.zip
다음 상위 레벨 단계를 사용하여 이 배치를 생성합니다.
- 오브젝트 스토리지 버킷을 프로비전하고 파일을 버킷에 업로드합니다.
지원되는 파일 유형은 PDF 및 TXT이며 각 파일은 100MB 이하여야 합니다. PDF 파일에는 이미지, 차트 및 참조 테이블이 포함될 수 있지만 이러한 각 객체는 8MB를 초과하지 않아야 합니다. OCI Object Storage는 콘솔, Rest API 또는 SDK(소프트웨어 개발 키트)를 사용하여 파일을 일괄 업로드할 수 있도록 지원합니다.
- 지식 기반 및 수집 작업을 생성합니다.
OCI Generative AI 에이전트에서 지식 기반을 생성하고 데이터 소스로 프로비전한 오브젝트 스토리지 버킷을 지정합니다. OCI 생성형 AI 에이전트 서비스가 서비스 관리형 임베딩 모델을 사용하여 벡터 인덱스를 생성하도록 자동으로 수집 작업 시작 옵션을 선택합니다.
- 에이전트 및 끝점을 생성합니다.
OCI Generative AI 에이전트에서 에이전트를 생성하고 이전 단계에서 프로비전된 지식 기반에 연결합니다. 에이전트에 대한 끝점을 생성합니다. 이 끝점은 나중에 에이전트와 채팅을 시작하는 데 사용됩니다. 엔드포인트는 에이전트와 외부 시스템 간의 통신 및 데이터 교환을 사용으로 설정하는 데 사용됩니다. API 또는 SDK를 사용하여 AI 에이전트를 사용하여 채팅 기능을 사용으로 설정하려면 끝점이 필수 입력 매개변수입니다.
- 선택적으로 프론트엔드 통합을 생성합니다.
OCI Generative AI 에이전트 서비스는 사용자가 에이전트가 액세스할 수 있는 데이터와 관련된 질문을 할 수 있는 채팅 사용자 인터페이스를 제공합니다. 서비스 Rest API 또는 SDK를 사용한 다음 챗봇 인터페이스를 사용자정의하여 에이전트를 애플리케이션과 통합할 수 있습니다. Oracle은 Oracle APEX Application Development 및 Oracle Digital Assistant와 같은 로우 코드, 노코드 애플리케이션 개발 도구를 제공합니다.
OCI 기반 Generative AI Agents OpenSearch
다음 배치에서는 생성형 AI 에이전트가 사용할 고객 관리 지식 기반으로 OpenSearch 데이터와 함께 Oracle Cloud Infrastructure Search를 사용합니다.
Oracle Cloud Infrastructure Search with OpenSearch는 대용량 데이터 저장소에 저장된 데이터를 검색하고 분석할 수 있는 관리형 서비스입니다. 이 배치에서 OpenSearch는 하이브리드 검색을 사용하여 엔터프라이즈 문서를 저장하고, 인덱스를 생성하고, 데이터를 검색 및 검색하는 데 사용되는 벡터 데이터베이스입니다. 그런 다음 OCI Generative AI 에이전트가 관리형 순위 재지정 모델을 사용하여 검색 결과의 순위를 지정한 후 Cohere 대규모 언어 모델(LLM)로 전송하여 상황별 응답을 생성합니다.
이 배포의 장점은 JSON, XML 및 블로그와 같은 광범위한 파일 유형을 지원하는 것이 광범위한 오픈 소스 임베딩 모델과 호환되며 보다 구체적인 검색 결과를 위해 자동 자르기를 사용할 수 있다는 것입니다. 이 배치를 수행하려면 데이터 수집 및 인덱스화 파이프라인을 구축하고 관리해야 하며, 각각 512개 미만의 토큰으로 파일을 조각화하여 OpenSearch에서 수집 및 인덱스화해야 합니다.
다음 상위 레벨 단계를 사용하여 이 배치를 생성합니다.
- Oracle Cloud Infrastructure 검색 스택을 프로비저닝하고 데이터를 수집합니다.
VCN(가상 클라우드 네트워크), Oracle Cloud Infrastructure 검색 클러스터 및 VM(가상 머신) 인스턴스를 프로비전합니다.
스택 생성 방법을 보여주는 자습서 링크는 자세히 탐색 섹션을 참조하십시오.
- OCI 저장소 암호를 생성합니다.
OCI Generative AI 에이전트는 Oracle Cloud Infrastructure Search가 OCI Vault에 사용자 이름과 비밀번호를 저장할 수 있도록 암호를 생성해야 합니다.
- OCI Generative AI 에이전트 지식 기반 및 에이전트를 구성합니다.
데이터 소스로 Oracle Cloud Infrastructure 검색 클러스터를 선택하고 사용할 인덱스를 지정하여 지식 기반을 생성합니다. 이 지식 기반을 사용하여 OCI 생성형 AI RAG 에이전트를 생성합니다.
Oracle Database 23ai를 사용하는 OCI Generative AI 에이전트
이 배포에서는 벡터 검색과 함께 Oracle Autonomous Database 23ai를 사용하여 정형 데이터와 비정형 데이터를 모두 관리합니다.
사용자가 엔터프라이즈 데이터를 쿼리할 때 AI 벡터 검색은 유사성 검색을 실행하여 OCI Generative AI 에이전트에 전달할 가장 관련성이 높은 팩트를 찾습니다. 그런 다음 이러한 에이전트는 순위 재지정 모델을 실행하고 Cohere LLM(Large Language Model)을 사용하여 상황별 응답을 생성합니다.
이 배포의 장점은 미디어 데이터, 이미지, 비디오를 비롯한 정형 및 비정형 데이터를 모두 지원하고 타사의 임베딩 모델과 호환되어 타깃 검색 결과를 제공한다는 점입니다. 이 배포를 위해서는 데이터 수집을 위한 코드를 작성 및 배포하고, 벡터 임베딩을 생성하고, 벡터 인덱스를 생성해야 합니다.
genai-vector-search-oracle.zip
다음 상위 레벨 단계를 사용하여 이 배치를 생성합니다.
- Oracle Database 23ai 인스턴스를 생성합니다.
- OCI 서비스 콘솔 탐색 메뉴에서 Oracle Database를 누른 다음 Autonomous Data Warehouse를 선택합니다.
- 자율운영 데이터베이스 생성을 누릅니다.
- 데이터베이스 이름을 지정하고 데이터베이스 버전으로 23ai를 선택합니다. 다른 매개변수를 제공하거나 기본값을 적용하고 Autonomous Database 생성을 누릅니다.
- 데이터베이스 인증서를 저장할 저장소를 생성한 다음 키를 생성합니다.
- OCI 서비스 콘솔 탐색 메뉴에서 ID 및 보안을 누른 다음 저장소를 선택합니다.
- 저장소 생성을 누릅니다.
- 저장소의 이름을 지정합니다. 다른 매개변수를 제공하거나 기본값을 수락하고 저장소 생성을 누릅니다.
- 새로 생성된 저장소에서 키 생성을 누릅니다.
- 키 이름을 지정합니다. 다른 매개변수를 제공하거나 기본값을 적용하고 키 생성을 누릅니다.
- 데이터베이스 툴 접속을 생성합니다.
- OCI 서비스 콘솔 탐색 메뉴에서 개발자 서비스를 누른 다음 접속을 선택합니다.
- 접속 생성을 누릅니다.
- 접속 이름을 지정하고, 데이터베이스 클라우드 서비스로 Oracle Autonomous Database를 선택하고, 컴파트먼트를 선택하고, 사용자 이름을 지정합니다. 다른 매개변수를 제공하거나 기본값을 적용하고 비밀번호 암호 생성을 누릅니다.
- 비밀번호 암호의 이름을 지정하고, 컴파트먼트, 저장소 컴파트먼트 및 암호화 키 컴파트먼트를 선택하고, 비밀번호를 지정합니다. 생성을 누릅니다.
- 전자 지갑 형식으로 SSO 전자 지갑을 선택한 다음 전자 지갑 콘텐츠 암호 생성을 누르고, 전자 지갑 콘텐츠 암호의 이름을 지정하고, 저장소 및 암호화 키 구획을 선택하고, Autonomous Database에서 지역 전자 지갑 검색이 선택되었는지 확인합니다. 생성을 누릅니다.
- 접속 생성 창에서 생성을 누릅니다. 새로 생성된 접속이 연관된 데이터베이스에 대한 세부정보 페이지의 [접속] 탭 아래에 나열됩니다.
- PL/SQL을 사용하여 내장 모델을 사용하여 벡터 작성:
- OCI Gen AI 서비스 및 DBMS_CLOUD용 인증서와 같은 OCI 리소스에 액세스할 수 있도록 인증서를 설정합니다. 프라이빗 및 퍼블릭 api_keys, 지문, 사용자, 테넌시 및 컴파트먼트 OCID가 포함된 구성 파일이 OCI에 필요합니다.
begin DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => '<credential_name>', user_ocid => '<user_ocid>', tenancy_ocid => '<tenancy_ocid>', private_key => '<private_key>', fingerprint => '<fingerprint>' ); end; /
- 23ai로 저장된 PDF 파일과 함께 내장 데이터베이스 기능을 사용하여 파일을 청크하고 텍스트 추출을 수행합니다.
CREATE TABLE ai_extracted_data AS SELECT j.chunk_id, j.chunk_offset, j.chunk_length, j.chunk_data FROM -- divide a blob into chunks (utl_to_chunks): (select * from dbms_vector_chain.utl_to_chunks( dbms_vector_chain.utl_to_text( to_blob( DBMS_CLOUD.GET_OBJECT('OCI_CRED_BUCKET', '<path-to-object-pdf>') ) ), json('{"max":"75", "normalize":"all", "overlap":"15"}') )), JSON_TABLE(column_value, '$' COLUMNS ( chunk_id NUMBER PATH '$.chunk_id', chunk_offset NUMBER PATH '$.chunk_offset', chunk_length NUMBER PATH '$.chunk_length', chunk_data CLOB PATH '$.chunk_data' ) ) j;
- OCI Generative AI를 통한 cohere.embed-multilingual-v3.0 모델과 같은 광범위한 임베딩 옵션을 사용하여 벡터 임베딩을 생성합니다.
create table ai_extracted_data_vector as ( select chunk_id as docid, to_char(chunk_data) as body, dbms_vector.utl_to_embedding( chunk_data, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ) as text_vec from ai_extracted_data where chuck_id <= 400 );
- 벡터 테이블을 질의하고 런타임 시 AI 검색 작업을 수행하는 함수를 생성합니다.
create or replace FUNCTION retrieval_func_ai ( p_query IN VARCHAR2, top_k IN NUMBER ) RETURN SYS_REFCURSOR IS v_results SYS_REFCURSOR; query_vec VECTOR; BEGIN query_vec := dbms_vector.utl_to_embedding( p_query, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ); OPEN v_results FOR SELECT DOCID, BODY, VECTOR_DISTANCE(text_vec, query_vec) as SCORE FROM ai_extracted_data_vector ORDER BY SCORE FETCH FIRST top_k ROWS ONLY; RETURN v_results; END;
- OCI Gen AI 서비스 및 DBMS_CLOUD용 인증서와 같은 OCI 리소스에 액세스할 수 있도록 인증서를 설정합니다. 프라이빗 및 퍼블릭 api_keys, 지문, 사용자, 테넌시 및 컴파트먼트 OCID가 포함된 구성 파일이 OCI에 필요합니다.
- Oracle Database 23ai를 사용하여 지식 기반을 생성합니다.
- OCI 서비스 콘솔 탐색 메뉴에서 분석 및 AI를 누른 다음 생성형 AI 에이전트를 선택합니다.
- 지식 기반을 누르고 지식 기반 생성을 누릅니다.
- Name the knowledge base, select Oracle AI Vector Search as the data store type and that you provide the database tool connection and search function, then click Create Knowledge Base.
- Oracle Database 23 AI Knowledge Base를 사용하여 생성형 AI 에이전트를 생성합니다.
- OCI 서비스 콘솔 탐색 메뉴에서 Analytics & AI를 누른 후 에이전트를 선택합니다.
- 에이전트 생성을 누릅니다.
- 에이전트 이름을 지정하고 생성한 지식 기반을 선택한 다음 에이전트 생성을 누릅니다.
에이전트가 생성되면 에이전트가 활성 상태이고 채팅 준비가 된 것을 확인할 수 있습니다.