このドキュメントでは、SAP BTP、ABAP 環境で Vertex AI SDK for ABAP を使用して、Gemini で SAP 関数呼び出しを使用する方法の概要について説明します。
カスタム関数を定義して、関数呼び出し機能を使用して Gemini モデルに提供できます。モデルはカスタム関数を直接呼び出すのではなく、関数名と推奨される引数を指定する構造化データ出力を生成します。この出力を使用すると、構造化出力を受け取って外部 API を呼び出すアプリケーションを作成できます。生成された API 出力を別のモデル プロンプトに組み込むことで、より包括的なクエリ レスポンスを実現できます。
Vertex AI SDK for ABAP は、次のように SAP 関数モジュールに記述されたカスタム ロジックを呼び出す機会を提供することで、ABAP の関数呼び出しの開発を簡素化します。
- 関数宣言として SAP 関数モジュール名または OData(Open Data Protocol)サービス名をモデルに渡し、関数またはサービスの名前、その目的、関連するパラメータを記述します。
- モデルを呼び出すときに、SAP 関数モジュールまたは OData サービスの自動呼び出しを暗黙的に設定します。
始める前に
Gemini で SAP 関数呼び出しを行う Vertex AI SDK for ABAP を使用する前に、自身または管理者が次の前提条件を満たしていることを確認してください。
- Google Cloud プロジェクトで Vertex AI API を有効にしている。
- SAP 環境に Vertex AI SDK for ABAP がインストールされている。
- Vertex AI API にアクセスするための認証が設定されている。
- モデル生成パラメータが構成されている。
SAP 関数モジュールを呼び出して、Gemini AI モデルのコンテキストを SAP データで拡充する
このセクションでは、SAP 関数モジュールを呼び出して、Gemini AI モデルのコンテキストを SAP データで拡充する方法について説明します。
以下は、ABAP 開発者が SAP 関数モジュールを呼び出す一般的な手順です。
- ユーザーが入力プロンプトを入力します。
- SDK が入力プロンプトと関数宣言をモデルに渡します。
- モデルは、プロンプトと宣言された関数を確認して、呼び出す関数を導出し、関数を呼び出すパラメータ値を提案します。
- 自動呼び出しが設定されている場合、SDK は SAP 関数モジュールを呼び出します。
- SDK は、呼び出された関数の出力を使用してモデルを呼び出します。
- モデルは、呼び出された関数の出力で拡充された最終プロンプトに対して信頼できる回答を返します。
- SDK がユーザーに回答を返します。
SAP 関数モジュールを自動的に呼び出さない場合、SDK では SAP 関数モジュールを呼び出すことなく、関数呼び出し機能を使用できます。この場合、一般的な関数呼び出しワークフローに従って API や関数などの外部ツールを使用できます。
Gemini マルチモーダル Invoker クラスをインスタンス化する
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 またはモジュールを呼び出して不足している情報を取得します。
エクスポート パラメータ EV_FUNCTION_RESPONSE
に、LLM コンテキストにフィードバックする情報を設定します。また、カスタム ロジックとビジネス要件に基づいて 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 関数モジュールの説明。
パラメータのない関数を宣言することもできます。これは、フォールバック関数またはバックアップ関数として使用できます。ユーザー プロンプトから特定の関数を呼び出すのに十分な情報が提供されない場合は、このフォールバック関数を選択するように Gemini に指示できます。
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
は、テキスト プロンプトに置き換えます。
選択した関数名とパラメータ値を取得する
Gemini によって選択された関数(宣言された関数から)とその推奨パラメータを取得するには、GET_FUNCTION_CALL
メソッドを使用します。
DATA(lo_response) = lo_model_key->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text = 'PROMPT' ).
lo_response->get_function_call( IMPORTING ev_function_name = DATA(lv_function_name)
et_function_parameters = DATA(lt_function_parameters) ).
PROMPT
は、テキスト プロンプトに置き換えます。
Gemini が選択した関数の名前は LV_FUNCTION_NAME
から、推奨されるパラメータは LT_FUNCTION_PARAMETERS
から取得できます。この情報を使用して、企業のセキュリティ情報およびイベント管理ガイドラインに従って Gemini アクションを検証、追跡、記録できます。
コードサンプル
次のコードサンプルは、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
: テキスト プロンプト。
OData サービスを呼び出して、Gemini AI モデルのコンテキストを SAP データで拡充する
このセクションでは、OData サービスを呼び出して、Gemini AI モデルのコンテキストを SAP データで拡充する方法について説明します。
以下は、ABAP 開発者が OData サービスを呼び出す一般的な手順です。
- ユーザーが入力プロンプトを入力します。
- SDK が入力プロンプトと関数宣言をモデルに渡します。
- モデルは、プロンプトと宣言された関数を確認して、呼び出す関数を導出し、関数を呼び出すパラメータ値を提案します。
- 自動呼び出しが設定されている場合、SDK は OData サービスを呼び出します。
- SDK は、呼び出された OData サービスの出力を使用してモデルを呼び出します。
- モデルは、呼び出された OData サービスの出力で拡充された最終プロンプトに対して信頼できる回答を返します。
- SDK がユーザーに回答を返します。
OData サービスを自動的に呼び出さない場合、SDK では OData サービスを呼び出すことなく、関数呼び出し機能を使用できます。この場合、一般的な関数呼び出しワークフローに従って API や関数などの外部ツールを使用できます。
OData サービスを作成する
SDK によって関数として自動呼び出しされる OData サービスを作成するには、次のスキーマを使用します。
{
"UserRequest": "Input Prompt as user request",
"FunctionResponse": null,
"ModifiedUserRequest": null,
"ContextParameters": [
{
"ParameterName": "Parameter 1",
"ParameterValue": "Value 1"
},
{
"ParameterName": "Parameter 2",
"ParameterValue": "Value 2"
}
]
}
次の表に、このスキーマで使用されるフィールドを示します。
スキーマ フィールド | フィールドの型 | 入力/出力モード | 説明 |
---|---|---|---|
UserRequest |
String |
入力のみ | ユーザーが入力する入力プロンプト。 |
FunctionResponse |
String |
出力のみ | OData サービスの出力。単一の値またはシリアル化された JSON 文字列にできます。 |
ModifiedUserRequest |
String |
出力のみ | 変更された UserRequest 。これはプロンプトとして Gemini にフィードされます。 |
ContextParameters |
Table of parameters |
入力のみ | パラメータの表(パラメータ名と値を含む)。 |
ParameterName |
String |
入力のみ | 関数パラメータの名前。 |
ParameterValue |
String |
入力のみ | Gemini によって提案された関数パラメータの値。 |
OData サービス エンティティを作成する
上記のスキーマを使用してエンティティを作成します。
このエンティティは、ユーザー リクエストをプロンプトとして受け入れ、Gemini に転送します。また、Vertex AI SDK for ABAP を使用して関数として宣言されます。このエンティティは、バックエンドの SAP システムから BTP に OData 関数レスポンスを返します。このレスポンスは、Gemini AI モデルのコンテキストに拡張されます。
- 新しいアイテムに適切な名前を設定します。
次の属性の値を設定します。他のすべての属性はデフォルト値のままにします。
名前 キー EDM コアタイプ ABAP フィールド名 UserRequest
○ Edm.String
USER_REQUEST FunctionResponse
いいえ Edm.String
FUNCTION_RESPONSE ModifiedUserRequest
いいえ Edm.String
MODIFIED_USER_REQUEST
同じ OData サービスに複数のエンティティを配置する場合は、同じスキーマを使用して作成します。
次の属性を持つ
ContextParameters
という名前の別のエンティティを作成します。他のすべての属性のデフォルト値は保持されます。このエンティティには、Gemini モデルが提供する関数パラメータとその値が含まれます。
名前 キー EDM コアタイプ ABAP フィールド名 ParameterName
○ Edm.String
PARAMETER_NAME ParameterValue
○ Edm.String
PARAMETER_VALUE 前の手順で作成したすべてのエンティティにエンティティ セットを作成します。
手順 1 で作成した各エンティティと、手順 2 で作成した
ContextParameters
エンティティの間に関連付けを作成します。- 関連付けの名前を設定します。
- [Principal Entity] フィールドに、手順 1 で作成したエンティティの名前を設定します。
- [Principal Entity Cardinality] フィールドに
M
を設定します。 - [Dependent Entity] フィールドに「
ContextParameters
」を設定します。 - [Dependent Entity Cardinality] フィールドに「
M
」を設定します。 - OData ランタイム アーティファクトを保存して生成します。
作成した OData サービスを SAP Gateway に追加し、ICF ノードを有効にします。
次のように、OData メタデータの EDMX ファイルを生成します。
- TCode /iwfnd/maint_services に移動して、OData サービスのメタデータを取得します。
- 生成された XML をフォーマットし、ファイル拡張子
.edmx
で保存します。
OData 関数のロジックを記述する
生成された
MPC_EXT
クラスで、ディープ エンティティ タイプを追加して有効にします。TYPES: BEGIN OF ts_function_deep_entity, user_request TYPE string, function_response TYPE string, modified_user_request TYPE string, context_parameters TYPE TABLE OF ts_contextparameters WITH DEFAULT KEY, END OF ts_function_deep_entity.
次の手順で、生成された
DPC_EXT
クラスのCREATE_DEEP_ENTITY
メソッドを再定義します。- OData サービス エンティティを作成するセクションで複数の OData エンティティを作成した場合は、OData エンティティごとに
CASE
ステートメントを追加します。 - レスポンスの
get
またはprepare
に ABAP ロジックを記述して、BTP アプリケーションの Gemini のコンテキストを拡張します。 - [FUNCTION_RESPONSE] フィールドにレスポンスを設定します。
- [MODIFIED_USER_REQUEST] フィールドに、変更したプロンプトを設定します。
COPY_DATA_TO_REF
OData メソッドを使用して、メッセージ内の全体的なレスポンスをバインドします。
次のスニペットは、ABAP ロジックの例です。
TRY. DATA: ls_request TYPE <z*_mpc_ext>=>ts_function_deep_entity. CASE io_tech_request_context->get_entity_type_name( ). WHEN <z*_mpc_ext>=>gc_ENTITY_NAME. CALL METHOD io_data_provider->read_entry_data IMPORTING es_data = ls_request. <ABAP logic to formulate OData function response> ls_request-modified_user_request = 'MODIFIED_GEMINI_PROMPT'. ls_request-function_response = 'ODATA_FUNCTION_RESPONSE'. CALL METHOD me->copy_data_to_ref EXPORTING is_data = ls_request CHANGING cr_data = er_deep_entity. ENDCASE. CATCH /iwbep/cx_mgw_busi_exception. CATCH /iwbep/cx_mgw_tech_exception. ENDTRY. ```
- OData サービス エンティティを作成するセクションで複数の OData エンティティを作成した場合は、OData エンティティごとに
次のように置き換えます。
ENTITY_TYPE
: OData サービス エンティティを作成するセクションのステップ 1 で作成した OData エンティティの名前MODIFIED_GEMINI_PROMPT
: Gemini が提供する変更済みプロンプトODATA_FUNCTION_RESPONSE
: OData サービスから提供されるレスポンス
複数のフィールド、ネストされた構造体、または関数レスポンスとして渡すテーブルがある場合は、SDK の /GOOG/CL_JSON_UTIL
クラスの SERIALIZE_JSON
メソッドを使用して、ABAP 型を文字列にシリアル化できます。
SAP BTP でサービス使用モデルとして OData サービスを定義する
OData サービスを作成したら、SAP BTP 環境でサービス使用モデルとして定義する必要があります。これを行うには、サービス使用モデル、HTTP アウトバウンド サービス、通信シナリオ、通信構成を作成します。
サービス使用モデルを作成する
- ABAP プロジェクトでコンテキスト メニューを開き、[新規] > [その他の ABAP リポジトリ オブジェクト] > [ビジネス サービス] > [サービス使用モデル] を選択します。
- [New Service Consumption Model] ウィンドウで、次の手順を完了します。
- [Package] フィールドで、前のセクションで生成した EDMX ファイルを選択してアップロードします。
- 名前と説明を入力します。
- [リモート使用モード] フィールドで、[OData] を選択します。
- [完了] をクリックします。
HTTP アウトバウンド サービスを作成する
- ABAP プロジェクトでコンテキスト メニューを開きます。
- パッケージを選択し、[新規] > [その他の ABAP リポジトリ オブジェクト] をクリックします。
- [Service Type] フィールドで、[HTTP Service] を選択します。
[Default Path Prefix] フィールドに、バックエンド SAP システムの OData サービスのパス接頭辞を入力します。
OData パス接頭辞は、SAP Gateway クライアントにアクセスして確認できます。[リクエスト URI] フィールドに表示される値は、OData サービスのパスの接頭辞です。
[次へ] をクリックします。
コミュニケーション シナリオを作成する
HTTP アウトバウンド サービスを作成したら、通信シナリオを作成し、アウトバウンド サービスを割り当てる必要があります。手順は次のとおりです。
- ABAP プロジェクトで [通信シナリオ] を選択し、[次へ] をクリックします。
- [New Communication Scenario] ウィンドウで、次の手順を行います。
- 名前と説明を入力します。
- [次へ] をクリックします。
- [Communication Scenario Type] フィールドで、[Customer Managed] を選択します。
- [送信] タブに移動します。
- [Allowed Instances] フィールドで、[One instance per scenario & communication system] を選択します。
- [Supported Authentication methods] フィールドで、[Basic]、[X.509]、[OAuth 2.0] のチェックボックスをオンにします。
- [OAuth 2.0 Grant Type] 欄で [SAML 2.0 Bearer Assertion] を選択します。
- [アウトバウンド サービス] セクションで [追加] をクリックし、前のセクションで作成したアウトバウンド サービスを選択します。
- [Outbound Service] セクションで、[Default Path Prefix] が正しいことを確認します。同期されていない場合は、[同期] をクリックします。
- 通信シナリオを保存します。
通信設定を作成する
- ABAP SDK for Google Cloud がインストールされている BTP ABAP システムの SAP Fiori ランチャーにアクセスします。
Communication Arrangement アプリを開きます。
- [New] をクリックします。
表示された [New Communication Arrangement] ダイアログで、次のフィールドに値を入力します。
- シナリオ: [通信シナリオを作成する] セクションで作成した通信シナリオを選択します。
- Arrangement name: 通信設定の名前を入力します。
[Create] をクリックします。
表示された通信設定の [Communication System] フィールドで、前の手順で作成した通信システムを選択します。
[保存] をクリックします。
Gemini マルチモーダル Invoker クラスをインスタンス化する
SAP で関数呼び出しを呼び出すには、/GOOG/CL_GENERATIVE_MODEL
クラスを使用します。クラスをインスタンス化するには、モデル生成パラメータで構成されたモデルキーを渡します。
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
MODEL_KEY
は、モデル生成パラメータで構成されているモデルキー名に置き換えます。
関数宣言を追加する
OData サービスを関数宣言として LLM コンテキストに追加するには、ADD_FUNCTION_DECLARATION
メソッドを使用します。OData サービスを関数としてコンテキストに追加する必要があるたびに、ADD_FUNCTION_DECLARATION
メソッドを呼び出します。
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
DATA ls_connection_parameters TYPE /goog/cl_generative_model=>ty_connection_parameters.
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
ls_connection_parameters-connection_type = 'ODATA'.
ls_connection_parameters-comm_scenario = 'COMMUNICATION_SCENARIO'.
ls_connection_parameters-service_id = 'ODATA_SERVICE_ID'.
ls_connection_parameters-proxy_model_id = 'ODATA_SERVICE_CONSUMPTION_MODEL_ID'.
ls_connection_parameters-relative_service_root = 'ODATA_ROOT_URI'.
ls_connection_parameters-entity_set_name = 'ODATA_ENTITY_SET_NAME'.
lo_model->add_function_declaration( iv_name = 'FUNCTION_NAME'
iv_description = 'FUNCTION_DESCRIPTION'
it_parameters = lt_parameters
is_connection_parameters = ls_connection_parameters ).
次のように置き換えます。
PARAMETER_NAME
: パラメータの名前PARAMETER_TYPE
: パラメータのデータ型(string
、integer
、boolean
など)PARAMETER_DESCRIPTION
: パラメータの目的と想定される形式の明確な記述PARAMETER_IS_REQUIRED
: このパラメータが関数の動作に必須の場合は、値をABAP_TRUE
に設定します。COMMUNICATION_SCENARIO
: 作成した通信シナリオの IDODATA_SERVICE_ID
: OData サービス用に作成したアウトバウンド サービスの IDODATA_SERVICE_CONSUMPTION_MODEL_ID
: OData サービス用に作成したサービス使用モデルの IDODATA_ROOT_URI
: バックエンド SAP システムの OData サービスのルート URIODATA_ENTITY_SET_NAME
: 関数として宣言する OData サービスのエンティティセット名FUNCTION_NAME
: 使用する OData サービスに対して宣言した関数の名前FUNCTION_DESCRIPTION
: 使用する OData サービスに対して宣言した関数の説明
OData サービスの自動呼び出しを設定する
Gemini モデルによって選択された SAP 関数 OData サービスの自動呼び出しを設定するには、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
は、テキスト プロンプトに置き換えます。
選択した関数名とパラメータ値を取得する
Gemini によって選択された関数(宣言された関数から)とその推奨パラメータを取得するには、GET_FUNCTION_CALL
メソッドを使用します。
DATA(lo_response) = lo_model_key->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text = 'PROMPT' ).
lo_response->get_function_call( IMPORTING ev_function_name = DATA(lv_function_name)
et_function_parameters = DATA(lt_function_parameters) ).
コードサンプル
次のコードサンプルは、Odata サービスで SAP 関数呼び出しを使用してモデルから最終レスポンスを受信する方法を示しています。
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
DATA ls_connection_parameters TYPE /goog/cl_generative_model=>ty_connection_parameters.
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.
ls_connection_parameters-connection_type = 'ODATA'.
ls_connection_parameters-comm_scenario = 'COMMUNICATION_SCENARIO'.
ls_connection_parameters-service_id = 'ODATA_SERVICE_ID'.
ls_connection_parameters-proxy_model_id = 'ODATA_SERVICE_CONSUMPTION_MODEL_ID'.
ls_connection_parameters-relative_service_root = 'ODATA_ROOT_URI'.
ls_connection_parameters-entity_set_name = 'ODATA_ENTITY_SET_NAME'.
DATA(lv_response) = lo_model_key->add_function_declaration(
iv_name = 'FUNCTION_NAME'
iv_description = 'FUNCTION_DESCRIPTION'
it_parameters = lt_parameters
is_connection_parameters = ls_connection_parameters
)->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
IF lv_response IS NOT INITIAL.
out->write( lv_response ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
out->write( lo_cx_sdk->get_text( ) ).
ENDTRY.
次のステップ
- ABAP SDK for Google Cloud の SAP BTP エディションを使用したアプリケーション開発について学習する。
- Cloud フォーラムのコミュニティで Vertex AI SDK for ABAP について質問したり、ディスカッションに参加したりする。