1. Wprowadzenie
W ramach tego ćwiczenia w Codelabs wykorzystasz model Gemini Pro, aby przeprowadzić analizę nastawienia w przypadku opinii o produktach za pomocą pakietu SDK ABAP dla Google Cloud. Przeprowadzimy kroki konfiguracji uwierzytelniania umożliwiającego dostęp do interfejsu Google Cloud Vertex AI API za pomocą tokenów, gdy Twój system SAP jest hostowany w instancji maszyny wirtualnej Compute Engine.
Lista wykorzystywanych usług:
- Compute Engine
- Usługi sieciowe
- Cloud Shell
- Vertex AI
Co utworzysz
Wykonaj te czynności:
- Skonfiguruj pakiet SDK ABAP zainstalowany w systemie SAP, aby połączyć się z interfejsami API Google.
- Utwórz przykładowy program raportów, aby wywoływać Gemini AI i przeprowadzać analizę nastawienia w przypadku opinii o produktach.
2. Wymagania
- Przeglądarka, na przykład Chrome lub Firefox.
- Projekt Google Cloud z włączonymi płatnościami lub utwórz bezpłatne konto próbne na 90 dni dla Google Cloud Platform.
- zainstalowanego w systemie SAP GUI (Windows lub Java). Jeśli 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 również zainstalować interfejs SAP GUI dla języka Java dostępny tutaj.
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 są włączone płatności. Pomiń ten krok, jeśli używasz 90-dniowego bezpłatnego konta próbnego.
- Użyjesz Cloud Shell – środowiska wiersza poleceń działającego w Google Cloud. W konsoli Cloud kliknij Aktywuj Cloud Shell w prawym górnym rogu:
- Upewnij się, że wszystkie niezbędne interfejsy API (AM Service Account Credentials API i Vertex AI API) są włączone.
- Uruchom te polecenia, aby uwierzytelnić się na swoim koncie i ustawić projekt domyślny na
abap-sdk-poc
. Przykładem jest strefaus-west4-b
. W razie potrzeby zmień projekt i strefę w poniższych poleceniach.
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
- Sprawdź, czy masz dostęp do systemu SAP z zainstalowanym pakietem ABAP SDK dla Google Cloud z danymi SAP EPM.
- Możesz skorzystać z ćwiczeń w Codelabs „ Zainstaluj wersję próbną platformy ABAP w Google Cloud Platform i zainstaluj pakiet ABAP SDK aby skonfigurować nowy system.
4. Utwórz konto usługi i ustaw rolę użytkownika Vertex AI
- Uruchom to polecenie, aby utworzyć konto usługi (jeśli nie zostało jeszcze utworzone).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- 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. Skonfiguruj klucz klienta
Zaloguj się w systemie SAP. Jeśli używasz systemu udostępnionego w ramach ćwiczeń z programowania „ Zainstaluj wersję próbną platformy ABAP w Google Cloud Platform i zainstaluj pakiet ABAP SDK”, a następnie użyj domyślnej obsługiwanej nazwy użytkownika i hasła, aby się zalogować.
- W GUI SAP wpisz kod transakcji SPRO.
- Kliknij Plik referencyjny usługi SAP.
- Kliknij 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 |
Pozostaw inne pola puste
6. Utwórz miejsce docelowe RFC
Utwórz miejsce docelowe RFC dla danych logowania uprawnień 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 API) | Uwagi |
ZGOOG_IAMCREDENTIALS |
| To miejsce docelowe RFC jest kierowane na interfejs IAM API. |
ZGOOG_VERTEX_AI |
| To miejsce docelowe RFC jest kierowane na punkt końcowy us-central1 interfejsu Vertex AI API. |
- Na karcie Technical Settings (Ustawienia techniczne) wpisz poniższe szczegóły dotyczące miejsca docelowego ZGOOG_IAMCREDENTIALS.
- Na karcie Technical Settings (Ustawienia techniczne) wpisz następujące szczegóły dotyczące miejsca docelowego ZGOOG_VERTEX_AI.
- Upewnij się, że w polu SSL Certificate (Certyfikat SSL) jest wybrana opcja DEFAULT SSL Client (Standard) (Domyślny klient SSL (standardowy)) w przypadku obu miejsc docelowych RFC.
7. Skonfiguruj mapowanie usług
Aby skonfigurować tabelę mapowania usług na potrzeby interfejsów IAM API i Vertex AI API, wykonaj te czynności:
- W GUI SAP wpisz kod transakcji SPRO.
- Kliknij Plik referencyjny usługi SAP.
- Kliknij ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj mapowanie usług.
- Kliknij Nowe wpisy w polach IAM Credentials API i Vertex AI API, a następnie zaktualizuj miejsca docelowe RFC, jak pokazano poniżej.
8. Zweryfikuj konfigurację
Aby sprawdzić konfigurację uwierzytelniania, wykonaj te czynności:
- W GUI SAP wpisz kod transakcji SPRO.
- Kliknij Plik referencyjny usługi SAP.
- Kliknij ABAP SDK for Google Cloud > Narzędzia > Validate Authentication Configuration (Zweryfikuj konfigurację uwierzytelniania).
- Jako nazwę klucza klienta wpisz
ABAP_SDK_DEMO
. - Kliknij Wykonaj, aby sprawdzić, czy ogólny przepływ został skonfigurowany.
- Zielony znacznik wyboru w kolumnie „Wynik” oznacza, że wszystkie kroki konfiguracji zostały wykonane.
9. Analizowanie danych z opinii o produktach
Wersja próbna platformy ABAP jest wstępnie zainstalowana z kompleksową aplikacją SAP Enterprise Procurement Model (EPM) dostarczoną przez SAP do celów demonstracyjnych i testowych. Opinie o produktach, które zostaną użyte do analizy nastawienia, są przechowywane w tabeli SNWD_REV_ITEM.
Dane w tabeli można wyświetlić za pomocą kodu Tcode: SE16. Użyjemy przykładowego tekstu z pola „RATING_TEXT”.
Opcjonalnie dane można też wyświetlić w aplikacji „Usługi menedżera” z aplikacji Fiori Launchpad (TCode: /UI2/FLP).
Poniższy zrzut ekranu przedstawia listę produktów.
Kliknij produkt, aby wyświetlić jego ocenę i przykładowe opinie.
W następnej sekcji wykorzystamy te przykładowe opinie o produktach, aby przeanalizować nastroje z wykorzystaniem modelu LLM Google.
10. Analizowanie nastawienia przy użyciu 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 poniższy prompt, aby polecić modelowi analizę nastawienia klientów w opinii o produkcie.
- Kliknij Prześlij, aby wygenerować odpowiedź na podstawie 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.
Dane opinii z tabeli „SNWD_REV_ITEM” może posłużyć do testowania modelu z dodatkowymi promptami.
11. Utwórz program generowania raportów, aby wywoływać model Gemini Pro
W tym kroku wywołamy model Gemini Pro z ABAP, aby przeprowadzić analizę nastawienia w opiniach o produktach. Na potrzeby wersji demonstracyjnej program wybierze maksymalnie 10 opinii o produktach i użyje pakietu SDK ABAP do wywoływania modelu Gemini Pro do określenia nastawienia na opinię. Na podstawie przeprowadzonej analizy model może zwracać wartości takie jak „dodatnia”, „ujemna”, „neutralna” lub „Mieszana”.
- Zaloguj się w systemie SAP.
- Przejdź do kodu transakcji SE38 i utwórz program raportów o nazwie ZSENTIMENT_ANALYSIS.
- W wyskakującym okienku podaj szczegóły zgodnie z poniższymi instrukcjami i kliknij Zapisz.
- W następnym wyskakującym okienku wybierz Obiekt lokalny lub wpisz odpowiednią 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 zobaczyć analizę nastawienia w przypadku tekstu opinii.
12. Gratulacje
Gratulacje! Udało Ci się opracować przykładowy program do przeprowadzania analizy nastawienia z użyciem Gemini Pro AI i pakietu SDK ABAP dla Google Cloud.
13. Czyszczenie danych
Jeśli nie chcesz wykonywać dodatkowych ćwiczeń z programowania związanych z pakietem SDK ABAP dla Google Cloud, możesz kontynuować czyszczenie.
Usuwanie projektu
- Usuń projekt Google Cloud:
gcloud projects delete abap-sdk-poc
Usuwanie poszczególnych zasobów
- Usuń wpisy konfiguracji klucza klienta, przechodząc do IMG > Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
- Usuń wpisy konfiguracji mapowania usług, przechodząc do IMG > Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
- Usuń miejsca docelowe RFC ZGOOG_IAMCREDENTIALS i ZGOOG_VERTEX_AI.
- Usuń program do tworzenia raportów
ZSENTIMENT_ANALYSIS
.
- Usuń konto usługi.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com