本快速入門說明如何從 ABAP 環境呼叫使用代理程式開發套件 (ADK) 建構的 Vertex AI 代理。
本指南說明如何使用 Google Cloud 的 ABAP SDK 內部部署版或任何雲端版本,呼叫 AI 服務機器人,但不涵蓋建立或部署程序。您可以使用代理開發套件 (ADK) 建立 AI 代理,這是用於設計代理的開放原始碼架構,建構於 Google Agentspace 和 Customer Engagement Suite with Google AI 所採用的相同架構。接著,您可以將代理程式部署至 Vertex AI Agent Engine,這是 Vertex AI 中的全代管執行階段,可協助您將自訂代理程式部署至正式環境,並透過內建測試、發布和可靠性,在全球安全的規模中部署。
事前準備
執行本快速入門前,請確認您或管理員已完成下列先決條件:
您擁有 Google Cloud 帳戶和專案。
專案已啟用計費功能。瞭解如何確認您已啟用專案的計費功能。
已安裝及設定 Google Cloud 適用的 ABAP SDK 的內部部署或任何雲端版本。瞭解如何安裝及設定 Google Cloud 專用 ABAP SDK 的內部部署版或任何雲端版。
已設定驗證方法,以便存取 Google Cloud API。瞭解如何設定驗證。
請確認您已在 Google Cloud 專案中啟用 Vertex AI API。
建立 Cloud Storage 值區,用於儲存代理程式部署檔案。詳情請參閱「建立值區」。
將代理部署至 Vertex AI Agent Engine
建立、測試並部署代理至 Vertex AI Agent Engine。在本快速入門課程中,您可以建立天氣和時間代理程式,並將代理程式部署至 Vertex AI Agent Engine。
如要瞭解如何建立、測試及部署服務機器人,請參閱以下文章:
請確認您已授予必要權限,讓服務專員可以使用受管理的會話。
部署完成後,您會取得類似以下範例的資源 ID,這可在 ABAP 程式中啟用代理程式叫用:
AgentEngine created. Resource name: projects/project_id/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID
從資源 ID 中記下 REASONING_ENGINE_ID
,例如 6384464913570601984
。在後續步驟中會用到這項資訊。
建立程式,從 ABAP 環境呼叫 Vertex AI Agent
在 SAP 系統中,使用交易
SE38
在自訂命名空間 (例如 Z 或 Y) 中建立可執行的程式。在 SAP GUI 中輸入交易代碼
SE38
。在「Program」欄位中輸入程式名稱,例如
ZDEMO_CALL_AGENT
。按一下 [建立]。
指定節目屬性:
在「Title」欄位中輸入節目名稱,例如
Call Vertex AI Agent
。在「Type」欄位中,選擇「
Executable Program
」。按一下 [儲存]。
將程式儲存為本機物件。
在 ABAP 編輯器中,新增下列程式碼:
REPORT zdemo_call_agent. DATA lv_p_projects_id TYPE string. DATA lv_p_locations_id TYPE string. DATA lv_p_reasoning_engines_id TYPE string. DATA ls_input TYPE /goog/cl_aiplatform_v1=>ty_1072. TYPES: BEGIN OF ty_agent_input, message TYPE string, session_id TYPE string, user_id TYPE string, END OF ty_agent_input. DATA ls_agent_input TYPE ty_agent_input. TYPES: BEGIN OF ty_response, content TYPE /goog/cl_aiplatform_v1=>ty_695, END OF ty_response. DATA ls_agent_response TYPE ty_response. TRY. " Open HTTP Connection DATA(lo_client) = NEW /goog/cl_aiplatform_v1( iv_key_name = 'DEMO_AIPLATFORM' ). DATA lv_agent_response_txt TYPE string. " Populate relevant parameters lv_p_projects_id = lo_client->gv_project_id. lv_p_locations_id = 'LOCATION_ID'. lv_p_reasoning_engines_id = 'REASONING_ENGINE_ID'. ls_agent_input-message = 'What is the weather in New York'. "Prompt ls_agent_input-user_id = 'use-101'. ls_input-class_method = 'stream_query'. GET REFERENCE OF ls_agent_input INTO ls_input-input. lo_client->add_json_name_mapping( iv_abap = 'CLASS_METHOD' iv_json = 'class_method' ). lo_client->add_json_name_mapping( iv_abap = 'SESSION_ID' iv_json = 'session_id' ). lo_client->add_json_name_mapping( iv_abap = 'USER_ID' iv_json = 'user_id' ). " Call API method: aiplatform.projects.locations.reasoningEngines.streamQuery lo_client->stream_query_reasoning_engi( EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_locations_id = lv_p_locations_id iv_p_reasoning_engines_id = lv_p_reasoning_engines_id is_input = ls_input IMPORTING es_raw = lv_agent_response_txt ev_ret_code = DATA(lv_ret_code) ev_err_text = DATA(lv_err_text) es_err_resp = DATA(ls_err_resp) ). " Handle the output IF lo_client->is_success( lv_ret_code ). SPLIT lv_agent_response_txt AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_result_event_tab). " Deserialize to read the final response event from agent /goog/cl_json_util=>deserialize_json( EXPORTING iv_json = lt_result_event_tab[ 3 ] iv_pretty_name = /ui2/cl_json=>pretty_mode-extended IMPORTING es_data = ls_agent_response ). cl_demo_output=>display( ls_agent_response-content-parts[ 1 ]-text ). ELSE. MESSAGE lv_err_text TYPE 'E'. ENDIF. " Close HTTP Connection lo_client->close( ). CATCH /goog/cx_sdk INTO DATA(lo_exception). MESSAGE lo_exception->get_text( ) TYPE 'E'. ENDTRY.
更改下列內容:
DEMO_AIPLATFORM
:用於驗證 Google Cloud的用戶端金鑰。LOCATION_ID
:代理程式部署的位置。您可以在初始化代理程式時指定位置。詳情請參閱「初始化代理程式」。REASONING_ENGINE_ID
:在「將代理部署至 Vertex AI Agent Engine」一節中所述代理的資源 ID。
在
SE38
中執行應用程式。驗證結果是否與在本機執行代理程式時觀察到的結果一致。
Example response: OK. The weather in New York is sunny with a temperature of 25 degrees Celsius (41 degrees Fahrenheit).
後續步驟
- 探索 GitHub 存放區中提供的其他快速入門,GoogleCloudPlatform/google-cloud-abap/abap-sdk /ZGOOG_SDK_QUICKSTART/。
- 請參閱「使用 ABAP SDK for Google Cloud 的內部部署版或任何雲端版本開發應用程式」指南。
- 查看程式碼範例。
- 在 Cloud 論壇上向社群提問,並討論 ABAP 適用的 Google Cloud SDK。