Memanggil Agen Vertex AI dari lingkungan ABAP

Panduan memulai ini menunjukkan cara memanggil Agen Vertex AI, yang dibuat dengan Agent Development Kit (ADK), dari lingkungan ABAP Anda.

Panduan ini menjelaskan proses memanggil agen AI menggunakan ABAP SDK untuk Google Cloud edisi cloud atau lokal, dan tidak mencakup prosedur pembuatan atau deployment. Anda membuat agen AI menggunakan Agent Development Kit (ADK), yang merupakan framework open source untuk mendesain agen, yang dibuat berdasarkan framework yang sama dengan yang mendukung Google Agentspace dan Customer Engagement Suite dengan Google AI. Kemudian, Anda men-deploy agen ke Vertex AI Agent Engine, yang merupakan runtime terkelola sepenuhnya di Vertex AI yang membantu Anda men-deploy agen kustom ke produksi dengan pengujian, rilis, dan keandalan bawaan dalam skala global yang aman.

Sebelum memulai

Sebelum menjalankan panduan memulai ini, pastikan Anda atau administrator Anda telah memenuhi prasyarat berikut:

Men-deploy agen ke Vertex AI Agent Engine

Buat, uji, dan deploy agen Anda ke Vertex AI Agent Engine. Untuk memulai cepat ini, Anda dapat membuat agen cuaca dan waktu serta men-deploy agen ke Vertex AI Agent Engine.

Untuk informasi tentang cara membuat, menguji, dan men-deploy agen, lihat topik berikut:

Pastikan Anda telah memberikan izin yang diperlukan agar agen dapat menggunakan sesi terkelola.

Setelah deployment, Anda akan mendapatkan ID resource yang mirip dengan contoh berikut, yang memungkinkan pemanggilan agen dalam program ABAP Anda:

AgentEngine created. Resource name: projects/project_id/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID

Dari ID resource, catat REASONING_ENGINE_ID, misalnya, 6384464913570601984. Anda memerlukannya di langkah berikutnya.

Membuat program untuk memanggil Agen Vertex AI dari lingkungan ABAP

  1. Dalam sistem SAP, buat program yang dapat dieksekusi di namespace kustom Anda (misalnya, Z atau Y) menggunakan transaksi SE38.

    1. Di SAP GUI, masukkan kode transaksi SE38.

    2. Di kolom Program, masukkan nama untuk program Anda, misalnya, ZDEMO_CALL_AGENT.

    3. Klik Buat.

    4. Tentukan atribut program:

      1. Di kolom Title, masukkan judul program Anda, misalnya, Call Vertex AI Agent.

      2. Di kolom Type, pilih Executable Program.

      3. Klik Simpan.

    5. Simpan program sebagai Local Object.

    6. Di ABAP Editor, tambahkan kode berikut:

        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.
      
      

      Ganti kode berikut:

      • DEMO_AIPLATFORM: Kunci klien untuk autentikasi ke Google Cloud.
      • LOCATION_ID: Lokasi tempat agen di-deploy. Anda menentukan lokasi saat melakukan inisialisasi agen. Untuk mengetahui informasi selengkapnya, lihat Melakukan inisialisasi agen.
      • REASONING_ENGINE_ID: ID resource untuk agen yang telah Anda catat di bagian Men-deploy agen ke Vertex AI Agent Engine.
  2. Jalankan aplikasi Anda di SE38.

  3. Validasi bahwa hasilnya konsisten dengan yang diamati saat agen dijalankan secara lokal.

    Example response: OK. The weather in New York is sunny with a temperature of 25 degrees Celsius (41 degrees Fahrenheit).
    

Langkah berikutnya