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 untuk menyiapkan autentikasi guna mengakses Google Cloud Vertex AI API menggunakan token saat 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 hal berikut:
- Konfigurasikan ABAP SDK yang diinstal di sistem SAP untuk terhubung ke Google API.
- Buat contoh program laporan untuk memanggil AI Gemini 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.
- SAP GUI (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, 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 melakukan autentikasi untuk akun Anda dan menetapkan project default ke
abap-sdk-poc
. Zonaus-west4-b
digunakan sebagai contoh. Jika diperlukan, ubah project dan zona dalam perintah berikut berdasarkan 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 untuk Google Cloud yang diinstal dengan data SAP EPM.
- Anda dapat melihat codelab " Menginstal Uji Coba Platform ABAP di Google Cloud Platform dan Menginstal ABAP SDK" untuk menyiapkan 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 " Menginstal Uji Coba Platform ABAP di Google Cloud Platform dan Menginstal ABAP SDK", gunakan nama pengguna dan sandi default yang disediakan untuk login.
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik IMG Referensi SAP.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Client Key.
- Klik New Entries.
- Masukkan nilai untuk kolom berikut:
Kolom | Deskripsi |
Google Cloud Key Name | 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. |
Biarkan kolom lainnya kosong
6. Membuat tujuan RFC
Buat tujuan RFC untuk kredensial IAM dan Vertex AI API menggunakan kode transaksi SM59. Jika diperlukan, lihat di sini untuk mengetahui langkah-langkah mendetail tentang cara 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 tab Technical Settings, masukkan detail berikut untuk tujuan ZGOOG_IAMCREDENTIALS.
- Di tab Technical Settings, 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 IMG Referensi SAP.
- Klik ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping.
- Klik Entri Baru untuk Kredensial IAM dan Vertex AI API, lalu perbarui tujuan RFC seperti yang ditunjukkan di bawah.
8. Memvalidasi konfigurasi
Untuk memvalidasi konfigurasi autentikasi, lakukan langkah-langkah berikut:
- Di SAP GUI, masukkan kode transaksi SPRO.
- Klik IMG Referensi SAP.
- 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.
- Tanda centang hijau di kolom Hasil menunjukkan bahwa semua langkah konfigurasi berhasil diselesaikan.
9. Mempelajari data ulasan produk
Uji Coba Platform ABAP telah diprainstal dengan SAP Enterprise Procurement Model (EPM), aplikasi menyeluruh yang disediakan 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. Kita akan menggunakan contoh teks dari kolom "RATING_TEXT".
Atau, Anda juga dapat melihat data dengan mengakses aplikasi "Manager Products" 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.
- Buat Perintah Teks baru.
- Konfirmasi pilihan model Gemini Pro.
- Di editor, masukkan perintah berikut untuk menginstruksikan model agar 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 peninjauan dari tabel "SNWD_REV_ITEM" dapat digunakan untuk menguji model dengan perintah tambahan.
11. Membuat program laporan untuk memanggil model Gemini Pro
Pada langkah ini, kita akan memanggil model Gemini Pro dari ABAP untuk melakukan analisis sentimen 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 dapat menampilkan nilai seperti "Positif", "Negatif", "Netral", atau "Campuran".
- Login ke Sistem SAP Anda.
- Buka kode transaksi SE38 dan buat Program Laporan dengan nama ZSENTIMENT_ANALYSIS.
- Di pop-up yang terbuka, berikan detail seperti yang ditunjukkan di bawah, lalu klik Simpan.
- Di 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 yang terkait dengan ABAP SDK untuk Google Cloud, lanjutkan 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 > Basic Settings > Configure Client Key.
- Hapus entri konfigurasi Pemetaan Layanan dengan membuka IMG > Google Cloud > Basic Settings > Configure Client Key.
- Hapus tujuan RFC ZGOOG_IAMCREDENTIALS dan ZGOOG_VERTEX_AI.
- Menghapus program laporan
ZSENTIMENT_ANALYSIS
.
- Hapus akun layanan.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com