ABAP SDK'sı ile Gemini AI'ı kullanarak yaklaşım analizi

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:
  • 6757b2fb50ddcc2d.png
  • 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 olarak us-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

4. Hizmet hesabı oluşturma ve Vertex AI kullanıcı rolünü ayarlama

  1. 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"
  1. 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.

  1. SAP GUI'de SPRO işlem kodunu girin.
  2. SAP Reference IMG'yi (SAP Referans IMG) tıklayın.
  3. Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandır'ı tıklayın.
  4. Yeni Girişler'i tıklayın.
  5. 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

c72e71da6fd75b29.png

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

  • Ana makine: iamcredentials.googleapis.com
  • Yol: Önek: /v1/
  • Bağlantı noktası: 443
  • SSL: Etkin

Bu RFC hedefi, IAM API'sini hedefler.

ZGOOG_VERTEX_AI

  • Ana makine: us-central1-aiplatform.googleapis.com
  • Bağlantı noktası: 443
  • SSL: ETKİN

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.

e670c6a91acba40f.png

  • Teknik Ayarlar sekmesinde, ZGOOG_VERTEX_AI hedefi için aşağıdaki ayrıntıları girin.

5c584aaed5c110f2.png

  • 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.

b6370d12bd332318.png

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:

  1. SAP GUI'de SPRO işlem kodunu girin.
  2. SAP Reference IMG'yi (SAP Referans IMG) tıklayın.
  3. Google Cloud için ABAP SDK > Temel Ayarlar > Hizmet Eşlemeyi Yapılandır'ı tıklayın.
  4. 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.

e7cc1429a4fe3a04.png

8. Yapılandırmayı doğrulama

Kimlik doğrulama yapılandırmasını doğrulamak için aşağıdaki adımları uygulayın:

  1. SAP GUI'de SPRO işlem kodunu girin.
  2. SAP Reference IMG'yi (SAP Referans IMG) tıklayın.
  3. 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.
  4. İstemci anahtarının adını ABAP_SDK_DEMO olarak girin.
  5. 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.
  6. Sonuç sütunundaki yeşil onay işareti, tüm yapılandırma adımlarının başarıyla tamamlandığını gösterir.

d7285e64e22c25b6.png

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.

2bae72d437ea639.png

İ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.

f9792a91ef9f0736.png

Aşağıdaki ekran görüntüsünde ürünlerin listesi gösterilmektedir.

f822f9ab71d37a9.png

Ürün puanını ve örnek yorumları görmek için ürünü tıklayın.

69fe380d5ca7b276.png

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

  1. Vertex AI kontrol panelini açın ve Vertex AI Studio'nun altında Language'i (Dil) seçin.
  2. Yeni bir metin istemi oluşturun.

8ce4c928c75174d7.png

  1. Gemini Pro modelinin seçimini onaylayın.
  2. Düzenleyicide, modele ürün yorumundaki müşteri duyarlılığını analiz etmesini söylemek için aşağıdaki istemi girin.
  3. 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.

fd245c204144484.png

"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.

  1. SAP sisteminize giriş yapın.
  2. SE38 işlem koduna gidin ve ZSENTIMENT_ANALYSIS adlı bir Rapor Programı oluşturun.
  3. Açılan pop-up'ta aşağıdaki gibi ayrıntıları girin ve Kaydet'i tıklayın.

a2158523ec8ef3c7.png

  1. 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.

  1. Yorum metninin duygu analizini görmek için programı çalıştırın.

4d869f1b8436b9ca.png

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

  1. IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandır'a giderek istemci anahtarı yapılandırma girişlerini silin.
  2. IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandır'a giderek hizmet eşleme yapılandırma girişlerini silin.
  3. ZGOOG_IAMCREDENTIALS ve ZGOOG_VERTEX_AI RFC hedeflerini silin.
  4. Rapor programını silin. ZSENTIMENT_ANALYSIS.
  5. Hizmet hesabını silin.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com