1. Giriş
Bu codelab'de, Google Cloud için ABAP SDK ile ürün yorumlarında duygu analizi yapmak üzere Gemini Pro modelini kullanacaksınız. SAP sisteminiz bir Compute Engine VM örneğinde barındırıldığında, jetonları kullanarak Google Cloud Vertex AI API'ye erişmek için kimlik doğrulama ayarlama adımlarını inceleyeceğiz.
Kullanılan hizmetlerin listesi:
- Compute Engine
- Ağ Hizmetleri
- Cloud Shell
- Vertex AI
Ne oluşturacaksınız?
Şunları yapacaksınız:
- SAP sistemine yüklenen ABAP SDK'sını Google API'lerine bağlanacak şekilde yapılandırın.
- Gemini Yapay Zeka'yı çağırmak ve ürün yorumlarında 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 yüklü SAP GUI (Windows veya Java) SAP GUI sisteminizde zaten yüklüyse Uygulama Sunucusu IP'si olarak VM'nin harici IP adresini kullanarak SAP'ye bağlanın. Mac kullanıyorsanız bu bağlantıdan SAP GUI for Java'yı da 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 projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Faturalandırmanın bir projede etkin olup olmadığını kontrol etmeyi öğ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 komutlarda 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 verileriyle birlikte Google Cloud için ABAP SDK'nın yüklü olduğu bir SAP sistemine erişiminiz olduğundan emin olun.
- Yeni bir sistem kurmak için "Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK" (Google Cloud Platform'da ABAP Platform deneme sürümünü ve ABAP SDK'sını yükleme) adlı codelab'e başvurabilirsiniz.
4. Hizmet hesabı oluşturma ve Vertex AI kullanıcı rolünü ayarlama
- Hizmet hesabı oluşturmak için (daha önce oluşturulmadıysa) aşağıdaki komutu çalıştırın.
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Vertex AI User 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. "Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK" adlı codelab'de sağlanan sistemi kullanıyorsanız giriş yapmak için varsayılan olarak sağlanan kullanıcı adını ve şifreyi kullanın.
- SAP GUI'de SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG) 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 alanlar için değerleri 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 burayı inceleyin.
RFC hedef adı | Hedef ana makine (API uç noktası) | Notlar |
ZGOOG_IAMCREDENTIALS |
| Bu RFC hedefi, IAM API'sini 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 Certificate (SSL Sertifikası) alanında, RFC hedeflerinin her ikisi için de DEFAULT SSL Client (Standard) (Varsayılan SSL İstemcisi (Standart)) seçeneğinin belirlendiğ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'de SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG) tıklayın.
- Google Cloud için ABAP SDK > Temel Ayarlar > Hizmet Eşlemeyi Yapılandır'ı tıklayın.
- IAM kimlik bilgisi ve Vertex AI API için New Entries'i (Yeni Girişler) 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'de SPRO işlem kodunu girin.
- SAP Reference IMG'yi (SAP Referans IMG) tıklayın.
- ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration'ı (Google Cloud için ABAP SDK'sı > Yardımcı Programlar > Kimlik Doğrulama Yapılandırmasını Doğrula) tıklayın.
- İstemci anahtarının adını
ABAP_SDK_DEMO
olarak girin. - Genel akışın başarıyla yapılandırılıp yapılandırılmadığını kontrol etmek için Yürüt'ü tıklayın.
- Sonuç sütunundaki 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 Trial, SAP tarafından gösterim ve test amaçlarıyla sunulan 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 saklanır.
Tablo verilerini Tcode: SE16 kullanarak görüntüleyebilirsiniz. "RATING_TEXT" alanındaki örnek metni kullanacağız.
İsteğe bağlı olarak, Fiori Launchpad'den (TCode: /UI2/FLP) "Ürünleri Yönet" 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örmek için ürünü tıklayın.
Bir sonraki bölümde, Google LLM'yi kullanarak duyguyu analiz etmek için bu örnek ürün yorumlarını kullanacağız.
10. Vertex AI Studio'yu kullanarak yaklaşım analizi yapma
- Vertex AI kontrol panelini açın ve Vertex AI Studio'nun altında Language'i (Dil) seçin.
- Yeni bir metin istemi oluşturun.
- Gemini Pro modelinin seçimini onaylayın.
- Düzenleyicide, modele ürün yorumundaki müşteri duyarlılığını analiz etmesini söylemek için aşağıdaki istemi girin.
- 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ğırmak için rapor programı oluşturma
Bu adımda, ürün yorumlarının duygu analizini yapmak için ABAP'tan Gemini Pro modelini çağıracağız. Program, demo amacıyla en fazla 10 ürün yorumu seçer ve yorum başına duyguyu belirlemek için Gemini Pro modelini çağırmak üzere ABAP SDK'sını kullanır. Model, analizine dayanarak "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ğıdaki gibi ayrıntıları girin ve Kaydet'i tıklayın.
- Sonraki pop-up pencerede 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 ile Gemini Pro Yapay Zeka'yı kullanarak duygu analizi yapacak örnek bir programı başarıyla geliştirdiniz.
13. Temizleme
Google Cloud için ABAP SDK ile ilgili ek codelab'lere devam etmek istemiyorsanız lütfen temizleme işlemine geçin.
Projeyi silme
- Google Cloud projesini silin:
gcloud projects delete abap-sdk-poc
Belirli kaynakları 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ı silin.
ZSENTIMENT_ANALYSIS
.
- Hizmet hesabını silin.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com