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

1. Giriş

Bu codelab'de, Google Cloud için ABAP SDK'sı ile ürün yorumlarında yaklaşım analizi gerçekleştirmek üzere Gemini Pro modelini kullanacaksınız. SAP sisteminiz bir Compute Engine sanal makine ö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 şunlardır:

  • Compute Engine
  • Ağ Hizmetleri
  • Cloud Shell
  • Vertex AI

Neler oluşturacaksınız?

Aşağıdakileri gerçekleştireceksiniz:

  • SAP sisteminde yüklü 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 yaklaşım analizi gerçekleştirmek için örnek bir rapor programı oluşturun.

2. Şartlar

  • Chrome veya Firefox gibi bir tarayıcı.
  • Faturalandırmanın etkinleştirilmiş 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). Sisteminizde zaten SAP GUI yüklüyse Uygulama Sunucusu IP adresi olarak sanal makine harici IP adresini kullanarak SAP'ye bağlanın. Mac kullanıyorsanız bu bağlantıdan 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 projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin. 90 günlük ücretsiz deneme hesabını 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
  • Tüm gerekli API'lerin (AM Service Account Credentials API, Vertex AI API) etkinleştirildiğinden emin olun.
  • Hesabınızın kimliğini doğrulamak için aşağıdaki komutları çalıştırın ve varsayılan projeyi abap-sdk-poc olarak ayarlayın. us-west4-b alt bölgesi örnek olarak kullanılmıştır. Gerekirse lütfen aşağıdaki komutlarda tercihinize göre projeyi ve alt bölgeyi 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ü ayarlama

  1. Hizmet hesabı oluşturmak için aşağıdaki komutu çalıştırın (daha önce oluşturulmamışsa).
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ırın

SAP sistemine giriş yapın. Codelab tarafından sağlanan sistemi kullanıyorsanız " ABAP Platform Denemesini Google Cloud Platform'a Yükleyin ve ABAP SDK'sını Yükleyin" seçeneğini tıklayın. Ardından giriş yapmak için, temel hazırlığı yapılmış varsayılan kullanıcı adı ve şifreyi kullanın.

  1. SAP GUI'ye SPRO işlem kodunu girin.
  2. SAP Referansı IMG'yu tıklayın.
  3. Google Cloud için ABAP SDK'sı > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
  4. New Entries (Yeni Girişler) seçeneğini tıklayın.
  5. Aşağıdaki alanlar için 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

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 buraya bakın.

RFC hedef adı

Hedef ana makine (API uç noktası)

Notlar

ZGOOG_IAMCREDENTIALS

  • Host (Ana makine): iamcredentials.googleapis.com
  • Yol: Önek: /v1/
  • Port (Bağlantı Noktası): 443
  • SSL: Etkin

Bu RFC hedefi IAM API'yi hedefler.

ZGOOG_VERTEX_AI

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

Bu RFC hedefi, Vertex AI API us-central1 uç noktasını hedefliyor.

  • 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 Sertifikası alanında her iki RFC hedefi için de VARSAYILAN SSL İstemcisi (Standart) seçeneğinin belirlendiğinden emin olun.

b6370d12bd332318.png

7. Hizmet eşlemesini yapılandırma

IAM API ve Vertex AI API'ye yönelik hizmet eşleme tablosunu yapılandırmak için aşağıdaki adımları uygulayın:

  1. SAP GUI'ye SPRO işlem kodunu girin.
  2. SAP Referansı IMG'yu tıklayın.
  3. Google Cloud için ABAP SDK'sı > Temel Ayarlar > Hizmet Eşlemeyi Yapılandırma
  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ğrula

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

  1. SAP GUI'ye SPRO işlem kodunu girin.
  2. SAP Referansı IMG'yu tıklayın.
  3. Google Cloud için ABAP SDK'sı > Yardımcı programlar > Kimlik Doğrulama Yapılandırmasını Doğrula.
  4. İstemci anahtarı 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, tüm yapılandırma adımlarının başarıyla tamamlandığını gösterir.

d7285e64e22c25b6.png

9. Ürün yorumları verilerini inceleyin

ABAP Platform Deneme Sürümü, gösterim ve test amacıyla SAP tarafından sağlanan uçtan uca uygulama olan SAP Kurumsal Tedarik Modeli (EPM) önceden yüklenmiştir. Yaklaşım analizi için kullanılacak ürün yorumları SNWD_REV_ITEM tablosunda depolanı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, verileri görüntülemek için "Ürünleri Yönet" uygulamasına da erişebilirsiniz. .

f9792a91ef9f0736.png

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

f822f9ab71d37a9.png

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

69fe380d5ca7b276.png

Sonraki bölümde, Google LLM'yi kullanarak yaklaşımı analiz etmek için bu örnek ürün incelemelerini kullanacağız.

10. Vertex AI Studio'yu kullanarak yaklaşım analizi yapma

  1. Vertex AI kontrol panelini açıp Vertex AI Studio'da Dil'i seçin.
  2. Yeni bir metin istemi oluşturun.

8ce4c928c75174d7.png

  1. Gemini Pro modelinin seçimini onaylayın.
  2. Modele, ürün yorumunda müşteri duyarlılığını analiz etmesi için talimat vermek üzere düzenleyiciye aşağıdaki istemi girin.
  3. Modelden yanıt oluşturmak için Submit (Gönder) seçeneğini 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 yorum verileri değeri, modeli ek istemlerle test etmek için kullanılabilir.

11. Gemini Pro modelini çağırmak için bir rapor programı oluşturma

Bu adımda, ürün yorumlarının yaklaşım analizini gerçekleştirmek için ABAP'den Gemini Pro modelini çağıracağız. Demo amacıyla program, en fazla 10 ürün yorumu seçer ve inceleme başına yaklaşımı belirlemek amacıyla Gemini Pro modelini çağırmak için ABAP SDK'sını kullanır. Model, analizine dayalı olarak "Pozitif", "Negatif", "Nötr" gibi değerler döndürebilir. veya "Karma".

  1. SAP sisteminize giriş yapın.
  2. SE38 işlem koduna gidin ve ZSENTIMENT_ANALYSIS adıyla bir Rapor Programı oluşturun.
  3. Açılan pop-up'ta aşağıda gösterilen bilgileri sağlayın ve Kaydet'i tıklayın.

a2158523ec8ef3c7.png

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

  1. Yorum metnine ilişkin yaklaşım analizini görmek için programı yürütün.

4d869f1b8436b9ca.png

12. Tebrikler

Tebrikler! Google Cloud için ABAP SDK'sı ile Gemini Pro AI'ı kullanarak yaklaşım analizi yapmak üzere başarıyla örnek bir program geliştirdiniz.

13. Temizleme

Google Cloud için ABAP SDK'sı ile ilgili ek codelab'lere geçmek 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

  1. IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
  2. IMG > Google Cloud > Temel Ayarlar > İstemci Anahtarını Yapılandırın.
  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