1. Wprowadzenie
W tym ćwiczeniu w Google Cloud za pomocą pakietu ABAP SDK użyjesz modelu Gemini Pro do przeprowadzenia analizy nastawienia opinii o produktach. Przeprowadzimy Cię przez proces konfigurowania uwierzytelniania, aby uzyskać dostęp do interfejsu Vertex AI Google Cloud za pomocą tokenów, gdy system SAP jest hostowany w instancji maszyny wirtualnej Compute Engine.
Lista używanych usług:
- Compute Engine
- Usługi sieciowe
- Cloud Shell
- Vertex AI
Co utworzysz
Wykonaj te czynności:
- Skonfiguruj pakiet ABAP SDK zainstalowany w systemie SAP, aby połączyć się z interfejsami API Google.
- Utwórz przykładowy program raportowania, który wywołuje Gemini AI i wykonuje analizę nastroju w opiniach o produktach.
2. Wymagania
- przeglądarkę, np. Chrome lub Firefox;
- Projekt Google Cloud z włączonymi płatnościami lub utwórz konto na 90-dniowy okres próbny w Google Cloud Platform.
- interfejs graficzny SAP (wersja na system Windows lub Java) zainstalowany w systemie; Jeśli interfejs graficzny SAP jest już zainstalowany w systemie, połącz się z SAP, używając adresu IP maszyny wirtualnej jako adresu IP serwera aplikacji. Jeśli używasz komputera Mac, możesz też zainstalować interfejs SAP GUI for Java dostępny pod tym linkiem.
3. Zanim zaczniesz
- W konsoli Google Cloud na stronie selektora projektu wybierz lub utwórz projekt Google Cloud (na przykład:
abap-sdk-poc).
- Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie są włączone płatności. Pomiń ten krok, jeśli korzystasz z konta w ramach 90-dniowego okresu próbnego.
- Użyjesz Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud. W Cloud Console w prawym górnym rogu kliknij Aktywuj Cloud Shell:
- Upewnij się, że wszystkie niezbędne interfejsy API (AM Service Account Credentials API, Vertex AI API) są włączone.
- Uruchom te polecenia, aby uwierzytelnić swoje konto i ustawić projekt domyślny jako
abap-sdk-poc
. W tym przykładzie użyto strefyus-west4-b
. W razie potrzeby zmień projekt i strefę w poniższych 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
- Upewnij się, że masz dostęp do systemu SAP z zainstalowanym pakietem ABAP SDK for Google Cloud z danymi SAP EPM.
- Aby skonfigurować nowy system, możesz skorzystać z laboratorium kodu „Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK”.
4. Tworzenie konta usługi i ustawianie roli użytkownika Vertex AI
- 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"
- Aby ustawić rolę Użytkownik Vertex AI, uruchom podane niżej polecenie.
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 używasz systemu udostępnionego przez Codelab „Testowanie platformy ABAP w Google Cloud Platform i instalowanie pakietu ABAP SDK”, zaloguj się, używając domyślnej nazwy użytkownika i hasła.
- W interfejsie graficznym SAP wpisz kod transakcji SPRO.
- Kliknij SAP Reference IMG (Referencyjny obraz SAP).
- Kliknij ABAP SDK for Google Cloud > Basic Settings > Configure Client Key (ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta).
- Kliknij Nowe wpisy.
- 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. |
Pozostałe pola pozostaw puste
6. Tworzenie miejsca docelowego RFC
Utwórz miejsce docelowe RFC dla uprawnień 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 w zgłoszeniu RFC | Host docelowy (punkt końcowy interfejsu API) | Uwagi |
ZGOOG_IAMCREDENTIALS |
| To miejsce docelowe RFC jest kierowane na interfejs IAM API. |
ZGOOG_VERTEX_AI |
| Ten adres docelowy RFC kieruje na punkt końcowy Vertex AI API us-central1. |
- Na karcie Ustawienia techniczne wpisz te informacje dotyczące miejsca docelowego ZGOOG_IAMCREDENTIALS:
- Na karcie Ustawienia techniczne wpisz te informacje dotyczące miejsca docelowego ZGOOG_VERTEX_AI.
- W polu Certyfikat SSL sprawdź, czy w przypadku obu miejsc docelowych RFC wybrana jest opcja DOTYCZYWY KLIENT SSL (standardowy).
7. Konfigurowanie mapowania usług
Aby skonfigurować tabelę mapowania usług dla interfejsu IAM API i Vertex AI API, wykonaj te czynności:
- W interfejsie graficznym SAP wpisz kod transakcji SPRO.
- Kliknij SAP Reference IMG (Referencyjny obraz SAP).
- Kliknij ABAP SDK for Google Cloud > Basic Settings > Configure Service Mapping (ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj mapowanie usługi).
- Kliknij Nowe wpisy dla danych logowania w IAM i interfejsu Vertex AI API, a następnie zaktualizuj miejsca docelowe RFC, jak pokazano poniżej.
8. Weryfikacja konfiguracji
Aby sprawdzić konfigurację uwierzytelniania:
- W interfejsie graficznym SAP wpisz kod transakcji SPRO.
- Kliknij SAP Reference IMG (Referencyjny obraz SAP).
- Kliknij ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration (ABAP SDK for Google Cloud > Narzędzia > Sprawdź konfigurację uwierzytelniania).
- Wpisz nazwę klucza klienta jako
ABAP_SDK_DEMO
. - Aby sprawdzić, czy cały proces został prawidłowo skonfigurowany, kliknij Wykonaj.
- Zielony znacznik wyboru w kolumnie Wynik oznacza, że wszystkie kroki konfiguracji zostały wykonane.
9. Przeanalizuj dane z opinii o produktach.
Wersja próbna platformy ABAP jest wstępnie zainstalowana w SAP Enterprise Procurement Model (EPM), kompleksowej aplikacji dostarczanej przez SAP do celów demonstracyjnych i testowych. Opinie o produktach, które będą wykorzystywane do analizy nastroju, są przechowywane w tabeli SNWD_REV_ITEM.
Dane w tabeli możesz wyświetlić za pomocą kodu T: SE16. Użyjemy przykładowego tekstu z pola „RATING_TEXT”.
Opcjonalnie możesz też wyświetlić dane, otwierając aplikację „Manager produktów” w panelu Fiori (TCode: /UI2/FLP).
Na poniższym zrzucie ekranu widać listę produktów.
Kliknij produkt, aby wyświetlić jego ocenę i przykładowe opinie.
W następnej sekcji użyjemy tych przykładowych opinii o produktach do przeanalizowania nastroju za pomocą modelu LLM Google.
10. Analizowanie nastawienia za pomocą Vertex AI Studio
- Otwórz panel Vertex AI i w sekcji Vertex AI Studio wybierz Język.
- Utwórz nowy prompt tekstowy.
- Potwierdź wybór modelu Gemini Pro.
- W edytorze wpisz ten prompt, aby polecić modelowi analizowanie nastroju klientów w opinii o produkcie.
- Aby wygenerować odpowiedź modelu, kliknij Prześlij.
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.
Dane z tabeli „SNWD_REV_ITEM” można wykorzystać do testowania modelu za pomocą dodatkowych promptów.
11. Tworzenie programu raportowania wywołującego model Gemini Pro
W tym kroku wywołamy model Gemini Pro z ABAP, aby przeprowadzić analizę nastroju opinii o produktach. Na potrzeby demonstracji program wybierze maksymalnie 10 recenzji produktów i wykorzysta pakiet ABAP SDK, aby wywołać model Gemini Pro w celu określenia nastroju w poszczególnych recenzjach. Na podstawie analizy model może zwrócić wartości takie jak „Pozytywne”, „Negatywne”, „Neutralne” lub „Zróżnicowane”.
- Zaloguj się w systemie SAP.
- Otwórz kod transakcji SE38 i utwórz program raportowania o nazwie ZSENTIMENT_ANALYSIS.
- W wyświetlonym okienku podaj informacje widoczne poniżej i kliknij Zapisz.
- W wyskakującym okienku wybierz 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.
- Uruchom program, aby wyświetlić analizę nastawienia w przypadku tekstu opinii.
12. Gratulacje
Gratulacje! Udało Ci się utworzyć 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ć dodatkowych samouczków związanych z pakietem ABAP SDK dla Google Cloud, przejdź do czyszczenia.
Usuwanie projektu
- Usuń projekt Google Cloud:
gcloud projects delete abap-sdk-poc
Usuwanie poszczególnych zasobów
- Aby usunąć wpisy konfiguracji klucza klienta, otwórz IMG > Google Cloud > Basic Settings > Configure Client Key (IMG > Google Cloud > Basic Settings > Configure Client Key).
- Aby usunąć wpisy konfiguracji mapowania usługi, otwórz IMG > Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
- Usuń miejsca docelowe RFC ZGOOG_IAMCREDENTIALS i ZGOOG_VERTEX_AI.
- Usuwanie programu raportowania
ZSENTIMENT_ANALYSIS
.
- Usuń konto usługi.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com