Pembuatan prototipe cepat dengan Gemini

Generative Language API Google memungkinkan prototyping yang lancar menggunakan model Gemini. Dengan demikian, Anda dapat menguji dan menjelajahi kemampuan model Gemini tanpa perlu menyiapkan infrastruktur yang rumit atau mengelola deployment model. Alat pembuatan prototipe berbasis browser Google, Google AI Studio, menggunakan Generative Language API untuk memungkinkan pembuatan prototipe berbasis browser dengan model generatif.

Dengan Vertex AI SDK untuk ABAP, Anda dapat menggunakan Generative Language API—Gemini API untuk memulai perjalanan pembuatan prototipe, langsung dari dalam lingkungan ABAP. Anda memerlukan kunci API yang dibuat dari Google AI Studio untuk mengakses model Gemini. Anda hanya perlu membuat kunci API ini satu kali.

Membuat kunci API

Kunci API yang Anda buat dari Google AI Studio memberikan cara yang mudah untuk melakukan autentikasi ke Gemini API.

Untuk membuat kunci API, lakukan langkah-langkah berikut:

  1. Di Google AI Studio, buka halaman API keys.

    Mendapatkan kunci API

  2. Klik Create API key.

  3. Jika sudah diisi, baca dan konfirmasi pemberitahuan hukum, lalu klik Lanjutkan.

  4. Jika diisi, baca dan konfirmasi pengingat setelan keamanan.

  5. Pada dialog Create API key, pilih salah satu opsi berikut, sesuai kebutuhan:

    • Membuat kunci API di project baru
    • Membuat kunci API di project yang ada
  6. Salin string kunci Anda dan amankan. Anda memerlukan kunci API ini untuk mengonfigurasi autentikasi ke Gemini API.

  7. Salin nomor project Google Cloud tempat kunci API dibuat. Anda memerlukannya di langkah berikutnya.

Menyiapkan autentikasi

Untuk melakukan autentikasi ke Gemini API menggunakan kunci API, gunakan salah satu metode berikut:

Melakukan autentikasi menggunakan kunci API yang disimpan di SAP SSF

Agar kunci API tetap aman, Anda dapat menyimpan kunci API yang dihasilkan di SAP SSF dan mengonfigurasi kunci klien dengan class autentikasi SSF. Anda dapat menggunakan kunci klien ini untuk mengakses Gemini API. Untuk informasi selengkapnya, lihat:

Melakukan autentikasi menggunakan kunci API melalui class autentikasi kustom

Atau, Anda dapat membuat class autentikasi kustom untuk menyimpan kunci API dan mengonfigurasi kunci klien dengan class autentikasi kustom.

Lokal atau edisi cloud apa pun

  1. Di sistem SAP, buat class Z dengan menerapkan antarmuka /GOOG/IF_AUTH yang dikirimkan dengan ABAP SDK untuk Google Cloud:

    1. Di SAP GUI, jalankan kode transaksi SE24.
    2. Di kolom Jenis objek, ketik nama seperti Z_TEST_GEMINI_API, lalu klik Buat.
    3. Pastikan Object type adalah Class, lalu klik OK.
    4. Di kolom Deskripsi, berikan deskripsi class seperti Class for authentication to Google AI Studio, lalu simpan class sebagai Objek Lokal atau dalam Permintaan Transpor.
    5. Buka tab Antarmuka, tambahkan antarmuka /GOOG/IF_AUTH, lalu tekan enter.
    6. Buka tab Methods. Metode antarmuka /GOOG/IF_AUTH otomatis diterapkan ke dalam class Z.
    7. Klik dua kali metode /GOOG/IF_AUTH~GET_ACCESS_TOKEN.
    8. Di metode /GOOG/IF_AUTH~GET_ACCESS_TOKEN, tambahkan kode berikut:

      ev_auth_type = /goog/if_auth=>c_auth_type_apik_ssf.
      cv_token = 'API_KEY'.
      GET TIME STAMP FIELD ev_logtime.
      

      Ganti API_KEY dengan kunci API yang Anda buat di Google AI Studio.

    9. Aktifkan class Z Anda.

  2. Di sistem SAP, buat konfigurasi kunci klien:

    1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

      Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

    2. Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.

    3. Klik New Entries.

    4. Masukkan nilai untuk kolom berikut:

    Kolom Deskripsi
    Nama Kunci Google Cloud Tentukan nama konfigurasi kunci klien, seperti TEST_GEMINI_API.
    Nama Akun Layanan Google Cloud Kosongkan kolom ini.
    Cakupan Google Cloud Kosongkan kolom ini.
    ID Project Google Cloud Tentukan nomor project Google Cloud tempat kunci API disimpan.
    Nama perintah Kosongkan kolom ini.
    Class Otorisasi Tentukan class Z yang Anda buat di langkah sebelumnya, seperti Z_TEST_GEMINI_API.
    Penyimpanan Token dalam Cache

    Kosongkan kolom ini.

    Detik Pembaruan Token Kosongkan kolom ini.
    Parameter Otorisasi 1 Kosongkan kolom ini.
    Authorization Parameter 2 Kosongkan kolom ini.
    1. Simpan entri baru.
  3. Catat kunci klien. Anda menggunakan kunci klien ini untuk autentikasi.

Edisi SAP BTP

  1. Di lingkungan SAP BTP, ABAP, buat class baru dengan mewarisi class /GOOG/CL_AUTH_BASE yang dikirimkan dengan ABAP SDK untuk Google Cloud:

    1. Di platform Eclipse, klik kanan paket tempat Anda ingin membuat class, lalu klik New > ABAP Class.
    2. Di kolom Name, masukkan ZCL_TEST_GEMINI_API.
    3. Di kolom Deskripsi, masukkan Authentication Class for testing Gemini API.
    4. Di kolom Superclass, masukkan /GOOG/CL_AUTH_BASE.
    5. Klik Berikutnya.
    6. Pilih Permintaan Transportasi atau buat yang baru.
    7. Klik Selesai.
    8. Di editor, ganti kode yang ada dengan kode berikut:

      CLASS zcl_test_gemini_api DEFINITION
        PUBLIC
        INHERITING FROM /goog/cl_auth_base FINAL
        CREATE PUBLIC.
        PUBLIC SECTION.
          CONSTANTS: BEGIN OF c_com_scn_sdk,
                       wif     TYPE /goog/comm_scenario VALUE '/GOOG/COM_SDK_WIF',
                       apik_sm TYPE /goog/comm_scenario VALUE '/GOOG/COM_SDK_APIKSM',
                       END OF c_com_scn_sdk.
          METHODS get_access_token REDEFINITION.
       PROTECTED SECTION.
       PRIVATE SECTION.
      ENDCLASS.
      CLASS zcl_test_gemini_api IMPLEMENTATION.
        METHOD get_access_token.
          ev_auth_type = CONV #( apikey_sm ).
          ev_token = API_KEY.
        ENDMETHOD.
      ENDCLASS.
      

      Ganti API_KEY dengan kunci API yang Anda buat di Google AI Studio.

    9. Aktifkan class Z Anda.

    10. Buka properti class ini, buka tab API State, lalu rilis API dengan status kontrak C1.

      Untuk mengetahui informasi selengkapnya tentang status API, lihat Merilis Objek Pengembangan.

  2. Akses peluncur SAP Fiori dari sistem BTP ABAP tempat ABAP SDK untuk Google Cloud diinstal.

  3. Akses aplikasi Google SDK: Main Configuration, lalu lakukan langkah-langkah berikut:

    1. Klik Create.
    2. Dalam dialog Create new entry, masukkan nilai untuk kolom berikut:

      Kolom Deskripsi
      Nama Kunci Google Cloud Tentukan nama konfigurasi kunci klien, seperti GEMINI_QUICK_TEST.
      Nama Akun Layanan Google Cloud Kosongkan kolom ini.
      Cakupan Google Cloud Kosongkan kolom ini.
      ID Project Google Cloud Tentukan project ID project Google Cloud tempat Anda membuat kunci API.
      Nomor Project Google Cloud Tentukan nomor project Google Cloud tempat Anda membuat kunci API.
      Jenis Autentikasi Pilih Z.
      Class Autentikasi Pilih class ZCL_TEST_GEMINI_API yang Anda buat di langkah sebelumnya.
    3. Simpan entri baru.

  4. Catat kunci klien. Anda menggunakan kunci klien ini untuk autentikasi.

Menjalankan kode contoh

Lokal atau edisi cloud apa pun

Anda dapat mempelajari kemampuan Gemini API menggunakan demo AI Studio yang disertakan dengan Vertex AI SDK untuk ABAP.

Untuk menjalankan demo AI Studio, lakukan langkah-langkah berikut:

  1. Di SAP GUI, jalankan kode transaksi /GOOG/SDK_IMG.

    Atau, jalankan kode transaksi SPRO, lalu klik IMG Referensi SAP.

  2. Buka ABAP SDK untuk Google Cloud > Demo.

  3. Buka Vertex AI SDK: Demo: Membuat prototipe dengan Generative Language API.

  4. Di kolom Kunci klien, masukkan kunci klien yang telah Anda buat di bagian Menyiapkan autentikasi.

  5. Di kolom Model ID, masukkan ID model LLM yang ingin Anda gunakan, seperti gemini-1.5-flash. Untuk mengetahui informasi tentang model yang tersedia, lihat Varian model.

  6. Atau, berikan parameter pembuatan berikut sesuai kebutuhan:

    • Token output maksimum
    • Jenis Mime respons
    • Suhu
    • TopK
    • TopP

    Untuk informasi tentang parameter pembuatan model ini, lihat Bereksperimen dengan parameter value.

  7. Di kolom Enter system instructions, berikan petunjuk sistem.

  8. Di kolom Enter prompt, berikan perintah input Anda.

  9. Jalankan program. Area Response from LLM menampilkan output yang dihasilkan.

Edisi SAP BTP

Anda dapat menjelajahi kemampuan Gemini API dengan menjalankan kode contoh berikut:

  1. Di platform Eclipse, klik kanan paket tempat Anda ingin membuat class, lalu klik New > ABAP Class.

  2. Di kolom Name, masukkan ZCL_INVOKE_LLM.

  3. Di kolom Description, masukkan Sample class for testing Gemini API.

  4. Klik Berikutnya.

  5. Pilih permintaan transpor atau buat yang baru.

  6. Klik Selesai.

  7. Di editor, ganti kode yang ada dengan kode berikut:

    CLASS zcl_invoke_llm DEFINITION
     PUBLIC FINAL
     CREATE PUBLIC.
     PUBLIC SECTION.
       INTERFACES if_oo_adt_classrun.
    ENDCLASS.
    CLASS zcl_invoke_llm IMPLEMENTATION.
     METHOD if_oo_adt_classrun~main.
       DATA lv_sys_instruction TYPE string.
       DATA lv_client_key      TYPE /goog/keyname.
       DATA lv_model_id        TYPE string.
       DATA lv_max_tokens      TYPE int4.
       DATA lv_resp_mime_type  TYPE string.
       DATA lv_prompt          TYPE string.
       DATA lv_temperature     TYPE /goog/num_float.
       DATA lv_top_k           TYPE int4.
       DATA lv_top_p           TYPE /goog/num_float.
       DATA ls_input           TYPE /goog/cl_generativelang_v1beta=>ty_045.
       DATA ls_output          TYPE /goog/cl_generativelang_v1beta=>ty_046.
       DATA ls_part            TYPE /goog/cl_generativelang_v1beta=>ty_068.
       DATA lt_parts           TYPE /goog/cl_generativelang_v1beta=>ty_t_068.
       DATA ls_content         TYPE /goog/cl_generativelang_v1beta=>ty_018.
       DATA lv_msg             TYPE string.
       DATA ls_raw             TYPE string.
       DATA lv_err_msg         TYPE string.
       DATA lo_cx_sdk          TYPE REF TO /goog/cx_sdk.
    
       " TODO Developer: Set values for Mandatory Fields
       lv_model_id = 'gemini-1.5-flash'.  " You can also change the Model ID of your choosing
       lv_client_key = 'GEMINI_QUICK_TEST'.    " Client key configured
    
       " TODO Developer: Set values for Optional Fields, if required
       " lv_temperature =
       " lv_top_k =
       " lv_top_p =
       " lv_max_tokens =
    
       " TODO Developer: (Optional) Set the System Instruction
        lv_sys_instruction  = 'You are an Italian Chef in a 5 Star Restaurant'.
    
       " TODO Developer: (Mandatory) Set the Prompt
        lv_prompt = 'Give me a recipe to make Margarita Pizza'.
       IF lv_temperature IS NOT INITIAL.
         ls_input-generation_config-temperature = lv_temperature.
       ENDIF.
       IF lv_top_k IS NOT INITIAL.
         ls_input-generation_config-top_k = lv_top_k.
       ENDIF.
       IF lv_top_p IS NOT INITIAL.
         ls_input-generation_config-top_p = lv_top_p.
       ENDIF.
       IF lv_max_tokens IS NOT INITIAL.
         ls_input-generation_config-max_output_tokens = lv_max_tokens.
       ENDIF.
       IF lv_sys_instruction IS NOT INITIAL.
         ls_input-system_instruction-role = 'system'.
         ls_part-text = lv_sys_instruction.
         APPEND ls_part TO ls_input-system_instruction-parts.
         CLEAR ls_part.
       ENDIF.
       ls_content-role = 'user'.
       IF lv_prompt IS NOT INITIAL.
         ls_part-text = lv_prompt.
         APPEND ls_part TO ls_content-parts.
         CLEAR ls_part.
       ENDIF.
       APPEND ls_content TO ls_input-contents.
       CLEAR ls_content.
       TRY.
           DATA(lo_llm_invoker) = NEW /goog/cl_generativelang_v1beta( iv_key_name = lv_client_key ).
         CATCH /goog/cx_sdk INTO lo_cx_sdk.
           lv_err_msg = lo_cx_sdk->get_text( ).
    out->write( |Exception occurred, reason: { lv_err_msg }| ).
       ENDTRY.
       TRY.
           lo_llm_invoker->generate_content_models( EXPORTING iv_p_models_id = lv_model_id
                                                              is_input       = ls_input
                                                    IMPORTING es_raw         = ls_raw
                                                              es_output      = ls_output
                                                              ev_ret_code    = DATA(lv_ret_code)
                                                              ev_err_text    = DATA(lv_err_text)
                                                              es_err_resp    = DATA(ls_err_resp) ).
         CATCH /goog/cx_sdk INTO lo_cx_sdk.
           lv_err_msg = lo_cx_sdk->get_text( ).
           out->write( |Exception occurred, reason: { lv_err_msg }| ).
           RETURN.
       ENDTRY.
       IF lo_llm_invoker->is_success( lv_ret_code ) = abap_true.
         ASSIGN ls_output-candidates[ 1 ] TO FIELD-SYMBOL(<ls_candidate>).
         IF sy-subrc = 0.
           lt_parts = <ls_candidate>-content-parts.
           ASSIGN lt_parts[ 1 ] TO FIELD-SYMBOL(<ls_part>).
           IF sy-subrc = 0.
             DATA(lv_response) = <ls_part>-text.
             out->write( lv_response ).
           ELSE.
             out->write( |Model stopped generating response due to finish reason: { <ls_candidate>-finish_reason }| ).
             out->write( |Read more about finish reason in the below link:| ).
             out->write( |https://cloud.google.com/vertex-ai/docs/reference/rest/v1/GenerateContentResponse#FinishReason| ).
           ENDIF.
         ENDIF.
       ELSE.
         out->write( |Error occurred, reason: { lv_ret_code }:{ lv_err_text }| ).
       ENDIF.
     ENDMETHOD.
    ENDCLASS.
    
  8. Aktifkan kelas Anda.

  9. Jalankan kode ABAP.

Membuat prototipe kasus penggunaan AI menggunakan ABAP

Anda dapat mem-build prototipe aplikasi SAP menggunakan class /GOOG/CL_GENERATIVELANGUAGE_V1 dan /GOOG/CL_GENERATIVELANG_V1BETA yang dikirimkan dengan SDK. Anda dapat memanggil class ini dari lingkungan ABAP menggunakan Kunci klien yang telah Anda buat di bagian Menyiapkan autentikasi.

Langkah selanjutnya