Bu codelab hakkında
1. Giriş
Bu codelab'de, Google Cloud için ABAP SDK'sını kullanarak ürün yorumlarında duygu analizi yapmak için Gemini Pro modelini kullanacaksınız. SAP sisteminiz bir Compute Engine sanal makinesi örneğinde barındırıldığında, jeton kullanarak Google Cloud Vertex AI API'ye erişmek için kimlik doğrulamayı ayarlama adımlarını uygulayacağız.
Kullanılan hizmetlerin listesi:
- Compute Engine
- Ağ Hizmetleri
- Cloud Shell
- Vertex AI
Ne oluşturacaksınız?
Aşağıdakileri yapacaksınız:
- SAP sistemine yüklenen ABAP SDK'sını Google API'lerine bağlanacak şekilde yapılandırın.
- Gemini AI'ı çağırıp ürün yorumları üzerinde duygu analizi yapmak için örnek bir rapor programı oluşturun.
2. Şartlar
- Chrome veya Firefox gibi bir tarayıcı.
- Faturalandırmanın etkin olduğu bir Google Cloud projesi veya Google Cloud Platform için 90 Günlük Ücretsiz Deneme hesabı oluşturun.
- Sisteminizde SAP GUI (Windows veya Java) yüklü olmalıdır. SAP GUI sisteminize zaten yüklüyse uygulama sunucusu IP'si olarak sanal makinenin harici IP adresini kullanarak SAP'e bağlanın. Mac kullanıyorsanız bu bağlantıda bulunan Java için SAP GUI'yi de yükleyebilirsiniz.
3. Başlamadan önce
- Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun (örneğin:
abap-sdk-poc).
- Cloud projenizde faturalandırmanın etkinleştirildiğinden emin olun. Projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin. 90 Günlük Ücretsiz Deneme Hesabı kullanıyorsanız bu adımı atlayın.
- Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Cloud Console'da sağ üst köşedeki Cloud Shell'i etkinleştir'i tıklayın:
- Gerekli tüm API'lerin (AM Service Account Credentials API, Vertex AI API) etkinleştirildiğinden emin olun.
- Hesabınızın kimliğini doğrulamak ve varsayılan projeyi
abap-sdk-poc
olarak ayarlamak için aşağıdaki komutları çalıştırın. Örnek olarakus-west4-b
bölgesi kullanılmıştır. Gerekirse lütfen aşağıdaki komutlardaki projeyi ve bölgeyi tercihinize göre değiştirin.
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
- SAP EPM verilerinin yüklü olduğu Google Cloud için ABAP SDK'sı bulunan bir SAP sistemine erişiminiz olduğundan emin olun.
- Yeni bir sistem oluşturmak için "Google Cloud Platform'a ABAP Platform Deneme Sürümü'nü ve ABAP SDK'sını Yükleme" kod laboratuvarına başvurabilirsiniz.
4. Hizmet hesabı oluşturma ve Vertex AI kullanıcı rolünü ayarlama
- Hizmet hesabı oluşturmak için aşağıdaki komutu çalıştırın (henüz oluşturulmadıysa).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Vertex AI Kullanıcısı rolünü ayarlamak için aşağıdaki komutu çalıştırın.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/aiplatform.user
5. İstemci anahtarını yapılandırma
SAP sistemine giriş yapın. "Google Cloud Platform'da ABAP Platform Deneme Sürümünü Yükleme ve ABAP SDK'sını Yükleme" kod denemesi tarafından temel hazırlığı yapılan sistemi kullanıyorsanız giriş yapmak için varsayılan olarak temel hazırlığı yapılan kullanıcı adını ve şifreyi kullanın.
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG'si) tıklayın.
- Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandır'ı tıklayın.
- Yeni Girişler'i tıklayın.
- Aşağıdaki alanlara değerler girin:
Alan | Açıklama |
Google Cloud Anahtar Adı | ABAP_SDK_DEMO |
Google Cloud Hizmet Hesabı Adı | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud Kapsamı | https://www.googleapis.com/auth/cloud-platform |
Google Cloud Proje Tanımlayıcısı | abap-sdk-poc |
Yetkilendirme Sınıfı | /GOOG/CL_AUTH_GOOGLE. |
Diğer alanları boş bırakın
6. RFC hedefi oluşturma
SM59 işlem kodunu kullanarak IAM kimlik bilgisi ve Vertex AI API için RFC hedefi oluşturun. Gerekirse RFC hedefi oluşturmayla ilgili ayrıntılı adımlar için lütfen buraya bakın.
RFC hedef adı | Hedef ana makine (API uç noktası) | Notlar |
ZGOOG_IAMCREDENTIALS |
| Bu RFC hedefi, IAM API'yi hedefler. |
ZGOOG_VERTEX_AI |
| Bu RFC hedefi, Vertex AI API us-central1 uç noktasını hedefler. |
- Teknik Ayarlar sekmesinde, ZGOOG_IAMCREDENTIALS hedefi için aşağıdaki ayrıntıları girin.
- Teknik Ayarlar sekmesinde, ZGOOG_VERTEX_AI hedefi için aşağıdaki ayrıntıları girin.
- SSL Sertifikası alanında, her iki RFC hedefi için de VARSAYILAN SSL İstemcisi (Standart) seçeneğinin seçildiğinden emin olun.
7. Hizmet eşlemeyi yapılandırma
IAM API ve Vertex AI API için hizmet eşleme tablosunu yapılandırmak üzere aşağıdaki adımları uygulayın:
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG'si) tıklayın.
- Google Cloud için ABAP SDK'sı > Temel Ayarlar > Hizmet Eşlemesini Yapılandır'ı tıklayın.
- IAM kimlik bilgisi ve Vertex AI API için Yeni Girişler'i tıklayın ve RFC hedeflerini aşağıda gösterildiği gibi güncelleyin.
8. Yapılandırmayı doğrulama
Kimlik doğrulama yapılandırmasını doğrulamak için aşağıdaki adımları uygulayın:
- SAP GUI'ye SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG'si) tıklayın.
- Google Cloud için ABAP SDK'sı > Yardımcı Programlar > Kimlik Doğrulama Yapılandırmasını Doğrula'yı tıklayın.
- İstemci anahtar adını
ABAP_SDK_DEMO
olarak girin. - Genel akışın başarılı bir şekilde yapılandırılıp yapılandırılmadığını kontrol etmek için Yürüt'ü tıklayın.
- Sonuç sütununda yeşil onay işareti, tüm yapılandırma adımlarının başarıyla tamamlandığını gösterir.
9. Ürün yorumları verilerini inceleme
ABAP Platform Deneme Sürümü, SAP tarafından gösterim ve test amacıyla sağlanan uçtan uca bir uygulama olan SAP Enterprise Procurement Model (EPM) ile önceden yüklenmiştir. Duygu analizi için kullanılacak ürün yorumları SNWD_REV_ITEM tablosunda depolanır.
Tablo verilerini SE16 T kodunu kullanarak görüntüleyebilirsiniz. "RATING_TEXT" alanındaki örnek metni kullanacağız.
İsteğe bağlı olarak, Fiori Launchpad'ten (TCode: /UI2/FLP) "Yönetici Ürünleri" uygulamasına erişerek de verileri görüntüleyebilirsiniz.
Aşağıdaki ekran görüntüsünde ürünlerin listesi gösterilmektedir.
Ürün puanını ve örnek yorumları görüntülemek için ürünü tıklayın.
Sonraki bölümde, Google LLM'yi kullanarak bu örnek ürün yorumlarını kullanarak duyguyu analiz edeceğiz.
10. Vertex AI Studio'yu kullanarak duyguları analiz etme
- Vertex AI kontrol panelini açın, Vertex AI Studio altında Dil'i seçin.
- Yeni bir metin istemi oluşturun.
- Gemini Pro modelini seçin.
- Düzenleyiciye aşağıdaki isteği girerek modele, ürün yorumundaki müşteri yaklaşımını analiz etmesini söyleyin.
- Modelden yanıt oluşturmak için Gönder'i tıklayın.
İstem:
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.
"SNWD_REV_ITEM" tablosundaki inceleme verileri, modeli ek istemlerle test etmek için kullanılabilir.
11. Gemini Pro modelini çağıracak bir rapor programı oluşturma
Bu adımda, ürün yorumlarının duygu analizini yapmak için ABAP'den Gemini Pro modelini çağıracağız. Program, demo amacıyla 10'a kadar ürün yorumu seçer ve yorum başına duyarlılığı belirlemek için Gemini Pro modelini çağırmak üzere ABAP SDK'sını kullanır. Model, analizine göre "Olumlu", "Olumsuz", "Nötr" veya "Karışık" gibi değerler döndürebilir.
- SAP sisteminize giriş yapın.
- SE38 işlem koduna gidin ve ZSENTIMENT_ANALYSIS adlı bir rapor programı oluşturun.
- Açılan pop-up'ta aşağıda gösterildiği gibi ayrıntıları girin ve Kaydet'i tıklayın.
- Sonraki pop-up'ta Yerel Nesne'yi seçin veya uygun bir paket adı girin.
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.
- Yorum metninin duygu analizini görmek için programı çalıştırın.
12. Tebrikler
Tebrikler! Google Cloud için ABAP SDK'sı ile Gemini Pro AI'ı kullanarak yaklaşım analizi yapmak üzere örnek bir program geliştirdiniz.
13. Temizleme
Google Cloud için ABAP SDK'sıyla ilgili ek kod laboratuvarlarına devam etmek istemiyorsanız lütfen temizleme işlemine devam edin.
Projeyi silme
- Google Cloud projesini silin:
gcloud projects delete abap-sdk-poc
Kaynakları tek tek silme
- IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandır'a giderek istemci anahtarı yapılandırma girişlerini silin.
- IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandır'a giderek Hizmet Eşleme yapılandırma girişlerini silin.
- ZGOOG_IAMCREDENTIALS ve ZGOOG_VERTEX_AI RFC hedeflerini silin.
- Rapor programını silme
ZSENTIMENT_ANALYSIS
.
- Hizmet hesabını silin.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com