이 문서에서는 ABAP용 Vertex AI SDK를 사용하여 Gemini에서 SAP 함수 호출을 사용하는 방법을 설명합니다.
함수 호출 기능을 사용하여 커스텀 함수를 정의하고 Gemini 모델에 제공할 수 있습니다. 모델은 커스텀 함수를 직접 호출하지 않고 대신 함수 이름과 추천 인수를 지정하는 정형 데이터 출력을 생성합니다. 이 출력을 사용하면 정형 출력을 가져와 외부 API를 호출하는 애플리케이션을 작성할 수 있습니다. 그러면 결과 API 출력을 추가 모델 프롬프트에 통합하여 더 포괄적인 쿼리 응답을 제공할 수 있습니다.
ABAP용 Vertex AI SDK는 다음과 같은 방법으로 SAP 함수 모듈에 작성된 커스텀 로직을 호출할 수 있는 기회를 제공하여 ABAP 개발자의 함수 호출을 간소화합니다.
- 함수 이름, 목적, 관련 파라미터를 설명하는 SAP 함수 모듈 이름을 함수 선언으로 모델에 전달합니다.
- 모델을 호출하는 동안 SAP 함수 모듈의 자동 호출을 암시적으로 설정합니다.
다음은 SAP 함수 호출을 호출하는 일반적인 ABAP 개발자 여정입니다.
- 사용자가 입력 프롬프트를 제공합니다.
- SDK는 입력 프롬프트와 함수 선언을 모델에 전달합니다.
- 모델은 프롬프트와 선언된 함수를 검토하여 호출할 함수를 파생하고 함수를 호출할 수 있는 파라미터 값을 제안합니다.
- 자동 호출이 설정되면 SDK에서 SAP 함수 모듈을 호출합니다.
- 그러면 SDK는 호출된 함수의 출력을 사용하여 모델을 호출합니다.
- 모델은 호출된 함수의 출력으로 보강된 최종 프롬프트에 신뢰할 수 있는 답변으로 응답합니다.
- SDK가 사용자에게 응답을 반환합니다.
SAP 함수 모듈을 자동으로 호출하지 않으려면 SDK를 사용하여 SAP 함수 모듈을 호출하지 않고 함수 호출 기능을 사용하면 됩니다. 이 경우 일반적인 함수 호출 워크플로에 따라 API 및 함수와 같은 외부 도구를 사용할 수 있습니다.
시작하기 전에
Gemini를 사용하여 SAP 함수를 호출하기 위해 ABAP용 Vertex AI SDK를 사용하기 전에 개발자나 관리자가 다음 기본 요건을 완료했는지 확인합니다.
- Google Cloud 프로젝트에서 Vertex AI API를 사용 설정합니다.
- SAP 환경에 ABAP용 Vertex AI SDK를 설치했습니다.
- Vertex AI API에 액세스하도록 인증을 설정합니다.
- 모델 생성 매개변수를 구성합니다.
SAP 데이터로 Gemini AI 모델 컨텍스트 보강
이 섹션에서는 ABAP용 Vertex AI SDK를 사용하여 Gemini AI 모델 컨텍스트를 SAP 데이터로 보강하는 방법을 설명합니다.
Gemini 멀티모달 호출자 클래스 인스턴스화
SAP에서 함수 호출을 호출하려면 /GOOG/CL_GENERATIVE_MODEL
클래스를 사용합니다.
모델 생성 파라미터에 구성된 모델 키를 전달하여 클래스를 인스턴스화합니다.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
MODEL_KEY
를 모델 생성 파라미터에 구성된 모델 키 이름으로 바꿉니다.
SAP 함수 모듈 만들기
SDK에서 자동 호출에 사용할 SAP 함수 모듈을 만들려면 제공된 스키마를 따릅니다.
카테고리 | 매개변수 이름 | 연결된 유형 |
---|---|---|
가져오는 중 | IT_FUNCTION_PARAMETERS |
/GOOG/T_FUNCTION_PARAMETERS |
내보내는 중 | EV_FUNCTION_RESPONSE |
STRING |
변경 중 | CV_PROMPT |
STRING |
예외 | /GOOG/CX_SDK |
Exception Class |
가져오기 파라미터를 기반으로 함수 모듈 내에 커스텀 로직을 작성합니다. 이 로직은 SELECT
쿼리를 통해 SAP 데이터를 가져오거나 외부 API 또는 모듈을 호출하여 누락된 정보를 가져올 수 있습니다.
LLM 컨텍스트에 피드백할 정보로 내보내기 파라미터 EV_FUNCTION_RESPONSE
를 설정합니다. 커스텀 로직 및 비즈니스 요구사항에 따라 CV_PROMPT
의 프롬프트 텍스트를 변경하거나 수정하여 다양한 비즈니스 시나리오에 따라 LLM에 추가 안내를 제공할 수도 있습니다.
함수 선언 추가
LLM 컨텍스트에 함수 선언을 추가하려면 ADD_FUNCTION_DECLARATION
메서드를 사용하면 됩니다. 컨텍스트에 함수를 추가해야 할 때마다 ADD_FUNCTION_DECLARATION
메서드를 호출합니다.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
lo_model->add_function_declaration( iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters ).
다음을 바꿉니다.
PARAMETER_NAME
: 파라미터 이름입니다.PARAMETER_TYPE
: 파라미터의 데이터 유형입니다(예:string
,integer
또는boolean
).PARAMETER_DESCRIPTION
: 파라미터의 목적과 예상 형식을 명확하게 설명합니다.PARAMETER_IS_REQUIRED
: 함수가 작동하는 데 이 파라미터가 필수이면 값을ABAP_TRUE
로 설정합니다.FUNCTION_MODULE_NAME
: SAP 함수 모듈 이름입니다.FUNCTION_MODULE_DESCRIPTION
: SAP 함수 모듈에 대한 설명입니다.
SAP 함수 모듈 자동 호출 설정
모델에서 선택한 SAP 함수 자동 호출을 설정하려면 SET_AUTO_INVOKE_SAP_FUNCTION
메서드를 사용하면 됩니다.
가져오기 파라미터 IV_AUTO_INVOKE
에 ABAP_TRUE
가 전달되면 SDK에서 함수 모듈을 호출하고 응답에 LLM 컨텍스트가 포함되어 최종 응답이 생성됩니다.
SAP 함수 모듈 만들기 섹션에 설명된 스키마에 따라 함수 모듈을 정의해야 합니다.
lo_model->set_auto_invoke_sap_function( abap_true ).
함수 호출로 콘텐츠 생성
프롬프트 텍스트를 Gemini 모델에 전달하려면 GENERATE_CONTENT
메서드를 사용하면 됩니다.
함수 호출을 통해 SAP 함수 모듈에서 추가된 추가 컨텍스트가 포함된 Gemini에서 생성된 응답을 가져오려면 GET_TEXT
메서드를 사용합니다.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
PROMPT
를 텍스트 프롬프트로 바꿉니다.
코드 샘플
다음 코드 샘플에서는 SAP 함수 호출을 사용하여 모델에서 최종 응답을 수신하는 방법을 보여줍니다.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
TRY.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
DATA(lv_response) = lo_model->add_function_declaration(
iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters
)->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
IF lv_response IS NOT INITIAL.
cl_demo_output=>display( lv_response ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.
다음을 바꿉니다.
MODEL_KEY
: 모델 생성 파라미터에 구성된 모델 키 이름입니다.PARAMETER_NAME
: 파라미터 이름입니다.PARAMETER_TYPE
: 파라미터의 데이터 유형입니다(예:string
,integer
또는boolean
).PARAMETER_DESCRIPTION
: 파라미터의 목적과 예상 형식을 명확하게 설명합니다.PARAMETER_IS_REQUIRED
: 함수가 작동하는 데 이 파라미터가 필수이면 값을ABAP_TRUE
로 설정합니다.FUNCTION_MODULE_NAME
: SAP 함수 모듈 이름입니다.FUNCTION_MODULE_DESCRIPTION
: SAP 함수 모듈에 대한 설명입니다.PROMPT
: 텍스트 프롬프트입니다.
다음 단계
ABAP SDK for Google Cloud의 온프레미스 또는 모든 클라우드 버전으로 애플리케이션 개발을 알아보세요.
Cloud 포럼의 커뮤니티에서 ABAP용 Vertex AI SDK에 대해 질문하고 논의하세요.