1. Pengantar
Dalam codelab ini, Anda akan menggunakan model Gemini Pro untuk melakukan analisis sentimen pada ulasan produk dengan ABAP SDK untuk Google Cloud. Kita akan membahas langkah-langkah penyiapan autentikasi untuk mengakses Vertex AI API Google Cloud menggunakan token jika sistem SAP Anda dihosting di instance VM Compute Engine.
Daftar layanan yang digunakan adalah:
- Compute Engine
- Layanan Jaringan
- Cloud Shell
- Vertex AI
Yang akan Anda build
Anda akan melakukan tindakan berikut:
- Mengonfigurasi ABAP SDK yang diinstal di sistem SAP agar terhubung ke Google API.
- Buat contoh program laporan untuk memanggil Gemini AI dan melakukan analisis sentimen pada ulasan produk.
2. Persyaratan
- Browser, seperti Chrome atau Firefox.
- Project Google Cloud dengan penagihan diaktifkan atau Buat akun Uji Coba Gratis 90 Hari untuk Google Cloud Platform.
- GUI SAP (Windows atau Java) yang diinstal di sistem Anda. Jika SAP GUI sudah diinstal di sistem Anda, hubungkan ke SAP menggunakan alamat IP eksternal VM sebagai IP Server Aplikasi. Jika menggunakan Mac, Anda juga dapat menginstal SAP GUI untuk Java yang tersedia di link ini.
3. Sebelum memulai
- Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud (Misalnya:
abap-sdk-poc).
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project. Lewati langkah ini jika Anda menggunakan Akun Uji Coba Gratis 90 Hari.
- Anda akan menggunakan Cloud Shell, yakni lingkungan command line yang berjalan di Google Cloud. Dari Cloud Console, klik Activate Cloud Shell di pojok kanan atas:
- Pastikan semua API yang diperlukan (AM Service Account Credentials API, Vertex AI API) diaktifkan.
- Jalankan perintah berikut untuk mengautentikasi akun Anda dan tetapkan project default ke
abap-sdk-poc
. Zonaus-west4-b
digunakan sebagai contoh. Jika perlu, ubah project dan zona dalam perintah berikut sesuai preferensi Anda.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b
- Pastikan Anda memiliki akses ke sistem SAP dengan ABAP SDK for Google Cloud yang diinstal dengan data SAP EPM.
- Anda dapat melihat codelab " Instal Uji Coba ABAP Platform di Google Cloud Platform dan Instal ABAP SDK" untuk menyiapkan sebuah sistem baru.
4. Membuat akun layanan dan menetapkan peran pengguna Vertex AI
- Jalankan perintah berikut untuk membuat akun layanan (jika belum dibuat).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Jalankan perintah berikut untuk menetapkan peran Vertex AI User.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/aiplatform.user
5. Mengonfigurasi kunci klien
Login ke sistem SAP. Jika Anda menggunakan sistem yang disediakan oleh codelab " Instal Uji Coba ABAP Platform di Google Cloud Platform dan Instal ABAP SDK", lalu gunakan nama pengguna dan sandi default yang disediakan untuk login.
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
- Masukkan nilai untuk kolom berikut:
Kolom | Deskripsi |
Nama Kunci Google Cloud | ABAP_SDK_DEMO |
Nama Akun Layanan Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud Scope | https://www.googleapis.com/auth/cloud-platform |
ID Project Google Cloud | abap-sdk-poc |
Class Otorisasi | /GOOG/CL_AUTH_GOOGLE. |
Membiarkan kolom lainnya kosong
6. Membuat tujuan RFC
Buat tujuan RFC untuk kredensial IAM dan Vertex AI API menggunakan kode transaksi SM59. Jika perlu, lihat di sini untuk langkah-langkah mendetail tentang membuat tujuan RFC.
Nama tujuan RFC | Host target (endpoint API) | Catatan |
ZGOOG_IAMCREDENTIALS |
| Tujuan RFC ini menargetkan IAM API. |
ZGOOG_VERTEX_AI |
| Tujuan RFC ini menargetkan endpoint us-central1 Vertex AI API. |
- Di bawah tab Setelan Teknis, masukkan detail berikut untuk tujuan ZGOOG_IAMCREDENTIALS.
- Di bawah tab Setelan Teknis, masukkan detail berikut untuk tujuan ZGOOG_VERTEX_AI.
- Untuk kolom SSL Certificate, pastikan opsi DEFAULT SSL Client (Standard) dipilih untuk kedua tujuan RFC.
7. Mengonfigurasi pemetaan layanan
Untuk mengonfigurasi tabel pemetaan layanan untuk IAM API dan Vertex AI API, lakukan langkah-langkah berikut:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping.
- Klik New Entries untuk IAM Credential dan Vertex AI API, lalu perbarui tujuan RFC seperti yang ditunjukkan di bawah.
8. Validasi konfigurasi
Untuk memvalidasi konfigurasi autentikasi, lakukan langkah-langkah berikut:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik SAP Reference IMG.
- Klik ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
- Masukkan nama kunci klien sebagai
ABAP_SDK_DEMO
. - Klik Execute untuk memeriksa apakah keseluruhan alur berhasil dikonfigurasi.
- Centang hijau pada kolom Hasil menunjukkan bahwa semua langkah konfigurasi berhasil diselesaikan.
9. Mempelajari data ulasan produk
ABAP Platform Trial telah diinstal sebelumnya dengan SAP Enterprise Procurement Model (EPM), sebuah aplikasi menyeluruh yang dilengkapi oleh SAP untuk tujuan demonstrasi dan pengujian. Ulasan produk yang akan digunakan untuk analisis sentimen disimpan dalam tabel SNWD_REV_ITEM.
Anda dapat melihat data tabel menggunakan Tcode: SE16. Kami akan menggunakan teks contoh dari kolom "RATING_TEXT".
Atau, Anda juga dapat melihat data dengan mengakses aplikasi "Pengelola Produk" dari Fiori Launchpad (TCode: /UI2/FLP).
Screenshot berikut menampilkan daftar produk.
Klik produk untuk melihat rating produk dan contoh ulasan.
Di bagian berikutnya, kita akan menggunakan contoh ulasan produk ini untuk menganalisis sentimen menggunakan LLM Google.
10. Menganalisis sentimen menggunakan Vertex AI Studio
- Buka dasbor Vertex AI, pilih Language di bagian Vertex AI Studio.
- Membuat Dialog Teks baru.
- Konfirmasi pilihan model Gemini Pro.
- Di editor, masukkan perintah berikut untuk menginstruksikan model guna menganalisis sentimen pelanggan dalam ulasan produk.
- Klik Kirim untuk membuat respons dari model.
Perintah:
What's the Customer sentiment in the below product review
Horrible! Unsatisfied in every way! The description is wrong. I sent it back. I want my money back! It is so horrible that I can't even believe it! Too expensive for what I received. I'd expect a little more durability. No instructions included for use or installation. I'm actually really surprised by the positive reviews, which I relied on when ordering. Called customer service..no answer. Looks better than it works. The Worst I have ever seen! Honestly I have no clue what you had in mind when choosing to offer this product. Not sure if I should even post one star.... It broke after 1 day. Poor Quality. Didn't work, that is why I cannot recommend this product.
Data ulasan dari tabel "SNWD_REV_ITEM" dapat digunakan untuk menguji model dengan prompt tambahan.
11. Buat program laporan untuk memanggil model Gemini Pro
Pada langkah ini, kita akan memanggil model Gemini Pro dari ABAP untuk melakukan analisis sentimen dari ulasan produk. Untuk tujuan demo, program ini akan memilih hingga 10 ulasan produk dan menggunakan ABAP SDK untuk memanggil model Gemini Pro guna menentukan sentimen per ulasan. Berdasarkan analisisnya, model ini dapat menampilkan nilai seperti "Positif", "Negatif", "Netral" atau "Kombinasi".
- Login ke Sistem SAP Anda.
- Buka kode transaksi SE38, lalu buat Program Laporan dengan nama ZSENTIMENT_ANALYSIS.
- Di jendela pop-up yang terbuka, berikan detail seperti yang ditunjukkan di bawah, lalu klik Simpan.
- Pada pop-up berikutnya, pilih Local Object atau berikan nama paket yang sesuai.
REPORT zsentiment_analysis.
DATA lo_client TYPE REF TO /goog/cl_aiplatform_v1.
DATA lv_p_projects_id TYPE string.
DATA lv_p_locations_id TYPE string.
DATA lv_p_publishers_id TYPE string.
DATA lv_p_models_id TYPE string.
DATA ls_input TYPE /goog/cl_aiplatform_v1=>ty_726.
DATA ls_output TYPE /goog/cl_aiplatform_v1=>ty_727.
DATA lv_ret_code TYPE i.
DATA lv_err_text TYPE string.
DATA ls_err_resp TYPE /goog/err_resp.
DATA lv_msg TYPE string.
DATA lo_exception TYPE REF TO /goog/cx_sdk.
DATA es_raw TYPE string.
TYPES:
BEGIN OF t_reviews,
product_id TYPE snwd_product_id,
sentiment TYPE string,
rating_text TYPE snwd_rating_text,
END OF t_reviews.
DATA lt_reviews TYPE STANDARD TABLE OF t_reviews WITH DEFAULT KEY.
FIELD-SYMBOLS <fs_review> TYPE t_reviews.
TRY.
" Open HTTP Connection
lo_client = NEW #( iv_key_name = 'ABAP_SDK_DEMO' ).
" Populate relevant parameters
lv_p_projects_id = lo_client->gv_project_id.
lv_p_locations_id = 'us-central1'.
lv_p_publishers_id = 'google'.
lv_p_models_id = 'gemini-1.0-pro'.
SELECT a~product_id AS product_id c~rating_text
FROM ( ( snwd_pd AS a
INNER JOIN snwd_rev_head AS b ON a~node_key = b~entity_key )
INNER JOIN snwd_rev_item AS c ON b~node_key = c~parent_key )
INTO CORRESPONDING FIELDS OF TABLE lt_reviews UP TO 10 ROWS.
LOOP AT lt_reviews ASSIGNING <fs_review>.
" Construct the prompt
DATA(lv_prompt) = |DO NOT EXPLAIN and your response should not have more than one word.| &&
|Classify the overall sentiment of this product review as ONLY ONE of| &&
| the following: Positive, Negative, Neutral, or Mixed.| &&
cl_abap_char_utilities=>newline &&
<fs_review>-rating_text.
" Set the Model Parameters and Prompt
ls_input = VALUE #( generation_config = VALUE #( max_output_tokens = 10
temperature = '0.2'
top_p = '0.8'
top_k = '40' )
contents = VALUE #( ( role = 'user'
parts = VALUE #( ( text = lv_prompt ) ) ) ) ).
" Call Gemini Pro to identify sentiments.
lo_client->generate_content_models( EXPORTING iv_p_projects_id = lv_p_projects_id
iv_p_locations_id = lv_p_locations_id
iv_p_publishers_id = lv_p_publishers_id
iv_p_models_id = lv_p_models_id
is_input = ls_input
IMPORTING
es_output = ls_output
ev_ret_code = lv_ret_code
ev_err_text = lv_err_text
es_err_resp = ls_err_resp ).
IF lo_client->is_success( lv_ret_code ) = abap_true.
LOOP AT ls_output-candidates INTO DATA(ls_candidate).
LOOP AT ls_candidate-content-parts INTO DATA(ls_part).
<fs_review>-sentiment = ls_part-text.
EXIT.
ENDLOOP.
EXIT.
ENDLOOP.
ELSE.
MESSAGE lv_err_text TYPE 'E'.
ENDIF.
ENDLOOP.
cl_demo_output=>display( lt_reviews ).
" Close HTTP Connection
lo_client->close( ).
CATCH /goog/cx_sdk INTO lo_exception.
lv_msg = lo_exception->get_text( ).
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
- Jalankan program untuk melihat analisis sentimen untuk teks ulasan.
12. Selamat
Selamat! Anda telah berhasil mengembangkan program contoh untuk melakukan analisis sentimen menggunakan AI Gemini Pro dengan ABAP SDK untuk Google Cloud.
13. Pembersihan
Jika Anda tidak ingin melanjutkan codelab tambahan terkait ABAP SDK untuk Google Cloud, lanjutkan dengan pembersihan.
Menghapus project
- Hapus project Google Cloud:
gcloud projects delete abap-sdk-poc
Menghapus resource satu per satu
- Hapus entri konfigurasi kunci klien dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasikan Kunci Klien.
- Hapus entri konfigurasi Pemetaan Layanan dengan membuka IMG > Google Cloud > Setelan Dasar > Konfigurasikan Kunci Klien.
- Hapus tujuan RFC ZGOOG_IAMCREDENTIALS dan ZGOOG_VERTEX_AI.
- Hapus program laporan
ZSENTIMENT_ANALYSIS
.
- Hapus akun layanan.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com