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 kompleks 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:
Di Google AI Studio, buka halaman API keys.
Klik Create API key.
Jika sudah diisi, baca dan konfirmasi pemberitahuan hukum, lalu klik Lanjutkan.
Jika diisi, baca dan konfirmasi pengingat setelan keamanan.
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
Salin string kunci Anda dan amankan. Anda memerlukan kunci API ini untuk mengonfigurasi autentikasi ke Gemini API.
Salin nomor project 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 melalui class autentikasi kustom
- Mengautentikasi dengan menggunakan kunci API yang disimpan di Secret Manager
Melakukan autentikasi menggunakan kunci API melalui class autentikasi kustom
Anda dapat membuat class autentikasi kustom untuk menyimpan kunci API dan mengonfigurasi kunci klien dengan class autentikasi kustom.
Di lingkungan SAP BTP, ABAP, buat class baru dengan mewarisi class
/GOOG/CL_AUTH_BASE
yang dikirimkan dengan ABAP SDK untuk Google Cloud:- Di platform Eclipse, klik kanan paket tempat Anda ingin membuat class, lalu klik New > ABAP Class.
- Di kolom Name, masukkan
ZCL_TEST_GEMINI_API
. - Di kolom Deskripsi, masukkan
Authentication Class for testing Gemini API
. - Di kolom Superclass, masukkan
/GOOG/CL_AUTH_BASE
. - Klik Berikutnya.
- Pilih Permintaan Transportasi atau buat yang baru.
- Klik Selesai.
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.Aktifkan class
Z
Anda.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.
Akses peluncur SAP Fiori dari sistem ABAP BTP tempat ABAP SDK untuk Google Cloud diinstal.
Akses aplikasi Google SDK: Main Configuration, lalu lakukan langkah-langkah berikut:
- Klik Buat.
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 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.Simpan entri baru.
Catat kunci klien. Anda menggunakan kunci klien ini untuk autentikasi.
Menjalankan kode contoh
Anda dapat menjelajahi kemampuan Gemini API dengan menjalankan kode contoh berikut:
Di platform Eclipse, klik kanan paket tempat Anda ingin membuat class, lalu klik New > ABAP Class.
Di kolom Name, masukkan
ZCL_INVOKE_LLM
.Di kolom Description, masukkan
Sample class for testing Gemini API
.Klik Berikutnya.
Pilih permintaan transpor atau buat yang baru.
Klik Selesai.
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.
Aktifkan kelas Anda.
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 berikutnya
- Pelajari cara menginstal dan mengonfigurasi Vertex AI SDK untuk ABAP.
- Pelajari AI Generatif di Vertex AI untuk SAP.
- Ajukan pertanyaan dan diskusikan Vertex AI SDK untuk ABAP dengan komunitas di Cloud Forums.