이제 VS Code SQL Developer Connection을 추가해서 다음과 같이 입력합니다.
ADB Predefined Service Name에는 LOW, MEDIUM, HIGH, TP, TPURGENT 가 있습니다. 이는 ADB의 성능이나 동시성 특성을 가진 미리 정의된 데이터베이스 서비스로 자세한 내용은 아래 링크에서 확인합니다.
Database Service Names for Autonomous Database
연결되면 생성한 Connection 오른쪽 마우스 클릭 후 Open SQL Worksheet를 클릭하여 SQL Worksheet를 오픈합니다.
ADB에서 OCI 서비스(GenAI) 접근을 위한 API Key를 활용한 Credential 생성 혹은 Resource Principal 설정을 합니다. 아래는 API Key를 활용하여 Credential을 생성하는 예시 입니다.
BEGIN
DBMS_CLOUD.create_credential(
credential_name => 'GENAI_CRED',
user_ocid => 'ocid1.user.oc1..wq',
tenancy_ocid => 'ocid1.tenancy.oc1..askfa',
private_key => 'MIIEvAIBADANBgkqhkiG.............==',
fingerprint => '8a:fd:9d:aa'
);
END;
/
Resource Principal을 활용하면 별도의 Credential 생성 없이 OCI Policy 구성으로 OCI 서비스 접근이 가능합니다. 자세한 내용은 아래 링크 참고합니다.
About Using Resource Principal to Access Oracle Cloud Infrastructure Resources
본 실습에서는 Resource Principal을 사용합니다. 다음과 같이 Resource Principal을 활성화합니다. Parameter로 username을 따로 지정하지 않을 경우 아래 프로시져는 ADMIN 사용자로 수행됩니다.
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(provider => 'OCI');
END;
/
이제 다음과 같이 Profile을 생성합니다. 생성형 AI 모델은 OCI GenAI의 Cohere, LLAMA 및 OpenAI, Google Gemini, Azure OpenAI Service, Anthropic를 사용할 수 있습니다. 본 실습에서는 생성형 AI 모델로 OCI GenAI의 Cohere 모델 중 cohere.command-r-plus 모델을 사용하였습니다. SH 스키마는 ADB 설치 시 기본적으로 포함된 스키마로 SH 스키마가 Select AI를 사용하기 위한 대상이 됩니다
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'GENAI',
attributes =>'{"provider":"oci",
"model":"cohere.command-r-plus",
"credential_name": "OCI$RESOURCE_PRINCIPAL",
"oci_apiformat":"COHERE",
"object_list": [{"owner": "SH"}]}');
END;
/
생성한 프로파일을 현재 세션에서 사용하기 위해 설정합니다. 새로운 세션마다 아래 명령어는 실행해줘야 합니다.
BEGIN
DBMS_CLOUD_AI.SET_PROFILE('GENAI');
END;
/
먼저 SH.CUSTOMERS 테이블 데이터 건수를 조회해 보겠습니다.
SQL> SELECT COUNT(*) FROM SH.CUSTOMERS;
COUNT(*)
--------
55500
SELECT AI를 사용해보겠습니다. 먼저 SELECT AI NARRATE를 사용하여 자연어로 질문 및 답변을 받아보겠습니다.
SQL> SELECT AI NARRATE How many customers exist;
RESPONSE
--------------------------------------------
There are 55,500 customers in the database.
SELECT AI SHOWSQL을 사용하면 사용된 SQL을 확인할 수 있습니다.
SQL> SELECT AI SHOWSQL How many customers exist;
RESPONSE
-------------------------------------------------------------------------
SELECT COUNT(DISTINCT "CUST_ID") AS customer_count FROM "SH"."CUSTOMERS"
SELECT AI RUNSQL을 통해서 위 SQL을 그대로 실행한 결과를 확인합니다.
SQL> SELECT AI RUNSQL How many customers exist;
CUSTOMER_COUNT
--------------
55500
이 글은 개인적으로 얻은 지식과 경험을 작성한 글로 내용에 오류가 있을 수 있습니다. 또한 글 속의 의견은 개인적인 의견으로 특정 회사를 대변하지 않습니다.
Donghu Kim AIML
oci 23ai selectai