Analiza nastawienia za pomocą Gemini AI i pakietu SDK ABAP

Analiza nastawienia z użyciem Gemini AI z pakietem ABAP SDK

Informacje o tym ćwiczeniu (w Codelabs)

subjectOstatnia aktualizacja: lip 30, 2025
account_circleAutorzy: Ameya Suvarna

1. Wprowadzenie

W tym ćwiczeniu w Codelabs użyjesz modelu Gemini Pro do przeprowadzenia analizy nastawienia w opiniach o produktach za pomocą pakietu ABAP SDK for Google Cloud. Przejdziemy przez kroki konfigurowania uwierzytelniania w celu uzyskania dostępu do interfejsu Google Cloud Vertex AI API za pomocą tokenów, gdy system SAP jest hostowany na instancji maszyny wirtualnej Compute Engine.

Lista używanych usług:

  • Compute Engine
  • Usługi sieciowe
  • Cloud Shell
  • Vertex AI

Wykonasz te czynności:

  • Skonfiguruj pakiet ABAP SDK zainstalowany w systemie SAP, aby łączyć się z interfejsami API Google.
  • Utwórz przykładowy program raportowania, który będzie wywoływać Gemini AI i przeprowadzać analizę sentymentu opinii o produktach.

2. Wymagania

  • przeglądarka, np. Chrome lub Firefox;
  • Projekt Google Cloud z włączonym rozliczeniem lub utwórz 90-dniowe konto próbne w Google Cloud Platform.
  • SAP GUI (Windows lub Java) zainstalowany w systemie. Jeśli interfejs SAP GUI jest już zainstalowany w Twoim systemie, połącz się z SAP, używając zewnętrznego adresu IP maszyny wirtualnej jako adresu IP serwera aplikacji. Jeśli korzystasz z komputera Mac, możesz też zainstalować interfejs SAP GUI dla Javy dostępny pod tym linkiem.

3. Zanim zaczniesz

  • W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud (np. abap-sdk-poc).
  • Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie włączone są płatności. Pomiń ten krok, jeśli korzystasz z 90-dniowego konta próbnego.
  • Będziesz używać Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud. W prawym górnym rogu Cloud Console kliknij Aktywuj Cloud Shell:
  • 6757b2fb50ddcc2d.png
  • Sprawdź, czy wszystkie niezbędne interfejsy API (IAM Service Account Credentials API, Vertex AI API) są włączone.
  • Uruchom te polecenia, aby uwierzytelnić się na koncie i ustawić domyślny projekt na abap-sdk-poc. Jako przykładu używamy strefy us-west4-b. W razie potrzeby zmień projekt i strefę w tych poleceniach zgodnie ze swoimi preferencjami.
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. Tworzenie konta usługi i ustawianie roli użytkownika Vertex AI

  1. Aby utworzyć konto usługi (jeśli nie zostało jeszcze utworzone), uruchom to polecenie:
gcloud iam service-accounts create abap-sdk-dev \
   
--description="ABAP SDK Dev Account" \
   
--display-name="ABAP SDK Dev Account"
  1. Uruchom to polecenie, aby ustawić rolę Użytkownik Vertex AI.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
   
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
   
--role=roles/aiplatform.user

5. Konfigurowanie klucza klienta

Zaloguj się w systemie SAP. Jeśli korzystasz z systemu udostępnionego przez codelab „ Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK”, użyj domyślnej nazwy użytkownika i hasła.

  1. W SAP GUI wpisz kod transakcji SPRO.
  2. Kliknij SAP Reference IMG (SAP Reference IMG).
  3. Kliknij ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
  4. Kliknij Nowe wpisy.
  5. Wpisz wartości w tych polach:

Pole

Opis

Nazwa klucza Google Cloud

ABAP_SDK_DEMO

Nazwa konta usługi Google Cloud

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

Zakres Google Cloud

https://www.googleapis.com/auth/cloud-platform

Identyfikator projektu Google Cloud

abap-sdk-poc

Klasa autoryzacji

/GOOG/CL_AUTH_GOOGLE.

Pozostaw pozostałe pola puste.

c72e71da6fd75b29.png

6. Tworzenie miejsca docelowego RFC

Utwórz miejsce docelowe RFC dla danych logowania IAM i interfejsu Vertex AI API za pomocą kodu transakcji SM59. W razie potrzeby szczegółowe instrukcje tworzenia miejsca docelowego RFC znajdziesz tutaj.

Nazwa miejsca docelowego RFC

Host docelowy (punkt końcowy interfejsu API)

Uwagi

ZGOOG_IAMCREDENTIALS

  • Host: iamcredentials.googleapis.com
  • Ścieżka: prefiks: /v1/
  • Port: 443
  • SSL: aktywny

To miejsce docelowe RFC jest kierowane na interfejs IAM API.

ZGOOG_VERTEX_AI

  • Host: us-central1-aiplatform.googleapis.com
  • Port: 443
  • SSL: AKTYWNY

To miejsce docelowe RFC jest kierowane do punktu końcowego us-central1 interfejsu Vertex AI API.

  • Na karcie Ustawienia techniczne wpisz te szczegóły miejsca docelowego ZGOOG_IAMCREDENTIALS:

e670c6a91acba40f.png

  • Na karcie Ustawienia techniczne wpisz te szczegóły dotyczące miejsca docelowego ZGOOG_VERTEX_AI:

5c584aaed5c110f2.png

  • W polu SSL Certificate (Certyfikat SSL) upewnij się, że w przypadku obu miejsc docelowych RFC wybrana jest opcja DEFAULT SSL Client (Standard) (Domyślny klient SSL (standardowy)).

b6370d12bd332318.png

7. Konfigurowanie mapowania usług

Aby skonfigurować tabelę mapowania usług dla interfejsów IAM API i Vertex AI API, wykonaj te czynności:

  1. W SAP GUI wpisz kod transakcji SPRO.
  2. Kliknij SAP Reference IMG (SAP Reference IMG).
  3. Kliknij ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj mapowanie usług.
  4. Kliknij New Entries (Nowe wpisy) w przypadku danych logowania IAM i interfejsu Vertex AI API, a następnie zaktualizuj miejsca docelowe RFC, jak pokazano poniżej.

e7cc1429a4fe3a04.png

8. Weryfikacja konfiguracji

Aby sprawdzić konfigurację uwierzytelniania, wykonaj te czynności:

  1. W SAP GUI wpisz kod transakcji SPRO.
  2. Kliknij SAP Reference IMG (SAP Reference IMG).
  3. Kliknij ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration (ABAP SDK for Google Cloud > Narzędzia > Sprawdź konfigurację uwierzytelniania).
  4. Wpisz nazwę klucza klienta jako ABAP_SDK_DEMO.
  5. Kliknij Wykonaj, aby sprawdzić, czy cały proces został prawidłowo skonfigurowany.
  6. Zielony znacznik wyboru w kolumnie Wynik oznacza, że wszystkie kroki konfiguracji zostały wykonane.

d7285e64e22c25b6.png

9. Analizowanie danych opinii o produktach

Wersja próbna platformy ABAP jest wstępnie zainstalowana z SAP Enterprise Procurement Model (EPM), czyli kompleksową aplikacją dostarczoną przez SAP do celów demonstracyjnych i testowych. Opinie o produktach, które będą wykorzystywane do analizy sentymentu, są przechowywane w tabeli SNWD_REV_ITEM.

Dane tabeli możesz wyświetlić za pomocą kodu T: SE16. Użyjemy przykładowego tekstu z pola „RATING_TEXT”.

2bae72d437ea639.png

Opcjonalnie możesz też wyświetlić dane, otwierając aplikację „Zarządzaj produktami” w Fiori Launchpad (TCode: /UI2/FLP).

f9792a91ef9f0736.png

Na zrzucie ekranu poniżej widać listę produktów.

f822f9ab71d37a9.png

Kliknij produkt, aby wyświetlić jego ocenę i przykładowe opinie.

69fe380d5ca7b276.png

W następnej sekcji użyjemy tych przykładowych opinii o produktach, aby przeanalizować nastawienie za pomocą modelu LLM od Google.

10. Analizowanie nastawienia za pomocą Vertex AI Studio

  1. Otwórz panel Vertex AI i w sekcji Vertex AI Studio wybierz Język.
  2. Utwórz nowy prompt tekstowy.

8ce4c928c75174d7.png

  1. Potwierdź wybór modelu Gemini Pro.
  2. W edytorze wpisz ten prompt, aby poprosić model o analizę opinii klientów w recenzji produktu.
  3. Kliknij Prześlij, aby wygenerować odpowiedź modelu.

Prompt:

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

Dane opinii z tabeli „SNWD_REV_ITEM” można wykorzystać do testowania modelu za pomocą dodatkowych promptów.

11. Tworzenie programu raportu do wywoływania modelu Gemini Pro

W tym kroku wywołamy model Gemini Pro z ABAP, aby przeprowadzić analizę sentymentu opinii o produktach. Na potrzeby demonstracji program wybierze maksymalnie 10 opinii o produktach i użyje pakietu ABAP SDK, aby wywołać model Gemini Pro w celu określenia nastroju w każdej opinii. Na podstawie analizy model może zwracać wartości takie jak „Pozytywne”, „Negatywne”, „Neutralne” lub „Mieszane”.

  1. Zaloguj się w systemie SAP.
  2. Otwórz kod transakcji SE38 i utwórz program raportu o nazwie ZSENTIMENT_ANALYSIS.
  3. W wyświetlonym okienku podaj szczegóły zgodnie z poniższymi instrukcjami i kliknij Zapisz.

a2158523ec8ef3c7.png

  1. W wyskakującym okienku wybierz Local Object (Obiekt lokalny) lub podaj nazwę pakietu.
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. Uruchom program, aby zobaczyć analizę nastawienia w tekście opinii.

4d869f1b8436b9ca.png

12. Gratulacje

Gratulacje! Udało Ci się opracować przykładowy program do przeprowadzania analizy nastawienia za pomocą AI Gemini Pro z ABAP SDK for Google Cloud.

13. Czyszczenie danych

Jeśli nie chcesz kontynuować pracy z dodatkowymi ćwiczeniami dotyczącymi pakietu ABAP SDK do Google Cloud, przejdź do sekcji czyszczenia.

Usuwanie projektu

  • Usuń projekt Google Cloud:
gcloud projects delete abap-sdk-poc

Usuwanie poszczególnych zasobów

  1. Usuń wpisy konfiguracji klucza klienta, klikając kolejno IMG > Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
  2. Usuń wpisy konfiguracji mapowania usług, otwierając IMG > Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
  3. Usuń miejsca docelowe RFC ZGOOG_IAMCREDENTIALSZGOOG_VERTEX_AI.
  4. Usuwanie programu raportowania ZSENTIMENT_ANALYSIS.
  5. Usuń konto usługi.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com