Informationen zu diesem Codelab
1. Einführung
In diesem Codelab verwenden Sie das Gemini Pro-Modell, um mit dem ABAP SDK for Google Cloud eine Sentimentanalyse von Produktrezensionen durchzuführen. Wir gehen die Schritte durch, um die Authentifizierung für den Zugriff auf die Google Cloud Vertex AI API mithilfe von Tokens einzurichten, wenn Ihr SAP-System auf einer Compute Engine-VM-Instanz gehostet wird.
Die Liste der verwendeten Dienste:
- Compute Engine
- Netzwerkdienste
- Cloud Shell
- Vertex AI
Aufgaben
Sie führen folgende Schritte aus:
- Konfigurieren Sie das im SAP-System installierte ABAP SDK für die Verbindung zu Google APIs.
- Erstellen Sie ein Beispielprogramm für Berichte, um die Gemini-KI aufzurufen und eine Sentimentanalyse von Produktrezensionen durchzuführen.
2. Voraussetzungen
- Ein Browser, z. B. Chrome oder Firefox.
- Ein Google Cloud-Projekt mit aktivierter Abrechnung oder ein kostenloses Testkonto für 90 Tage für die Google Cloud Platform erstellen
- SAP GUI (Windows oder Java) auf Ihrem System installiert Wenn die SAP-GUI bereits auf Ihrem System installiert ist, stellen Sie eine Verbindung zu SAP her, indem Sie die externe IP-Adresse der VM als IP-Adresse des Anwendungsservers verwenden. Wenn Sie einen Mac verwenden, können Sie auch die SAP GUI for Java installieren, die über diesen Link verfügbar ist.
3. Hinweis
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie ein solches Projekt (z. B.
abap-sdk-poc).
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist Überspringen Sie diesen Schritt, wenn Sie das Konto mit 90-tägigem kostenlosen Testzeitraum verwenden.
- Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Klicken Sie in der Cloud Console rechts oben auf Cloud Shell aktivieren:
- Achten Sie darauf, dass alle erforderlichen APIs (AM Service Account Credentials API, Vertex AI API) aktiviert sind.
- Führen Sie die folgenden Befehle aus, um sich für Ihr Konto zu authentifizieren und das Standardprojekt auf
abap-sdk-poc
festzulegen. Als Beispiel wird Zoneus-west4-b
verwendet. Ändern Sie bei Bedarf das Projekt und die Zone in den folgenden Befehlen entsprechend Ihren Anforderungen.
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
- Sie benötigen Zugriff auf ein SAP-System mit installiertem ABAP SDK for Google Cloud und SAP EPM-Daten.
- Im Codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (ABAP-Plattform-Testversion auf der Google Cloud-Plattform installieren und ABAP SDK installieren) erfahren Sie, wie Sie ein neues System einrichten.
4. Dienstkonto erstellen und Vertex AI-Nutzerrolle festlegen
- Führen Sie den folgenden Befehl aus, um ein Dienstkonto zu erstellen, falls noch nicht geschehen.
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Führen Sie den folgenden Befehl aus, um die Rolle Vertex AI User festzulegen.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-codelabs@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/aiplatform.user
5. Clientschlüssel konfigurieren
Melden Sie sich im SAP-System an. Wenn Sie das System verwenden, das im Codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (ABAP-Plattform-Testversion auf der Google Cloud-Plattform installieren und ABAP SDK installieren) bereitgestellt wurde, verwenden Sie zum Anmelden den standardmäßig bereitgestellten Nutzernamen und das standardmäßig bereitgestellte Passwort.
- Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Klicken Sie auf Neue Einträge.
- Geben Sie Werte für die folgenden Felder ein:
Feld | Beschreibung |
Google Cloud-Schlüsselname | ABAP_SDK_DEMO |
Name des Google Cloud-Dienstkontos | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Google Cloud-Bereich | https://www.googleapis.com/auth/cloud-platform |
Google Cloud-Projekt-ID | abap-sdk-poc |
Autorisierungsklasse | /GOOG/CL_AUTH_GOOGLE. |
Lassen Sie die anderen Felder leer.
6. RFC-Ziel erstellen
Erstellen Sie mit dem Transaktionscode SM59 ein RFC-Ziel für IAM-Anmeldedaten und die Vertex AI API. Eine detaillierte Anleitung zum Erstellen eines RFC-Ziels finden Sie hier.
Name des RFC-Ziels | Zielhost (API-Endpunkt) | Hinweise |
ZGOOG_IAMCREDENTIALS |
| Dieses RFC-Ziel zielt auf die IAM API ab. |
ZGOOG_VERTEX_AI |
| Dieses RFC-Ziel zielt auf den Endpunkt „us-central1“ der Vertex AI API ab. |
- Geben Sie auf dem Tab Technische Einstellungen die folgenden Details für das Ziel „ZGOOG_IAMCREDENTIALS“ ein.
- Geben Sie auf dem Tab Technische Einstellungen die folgenden Details für das Ziel „ZGOOG_VERTEX_AI“ ein.
- Für das Feld SSL-Zertifikat muss die Option DEFAULT-SSL-Client (Standard) für beide RFC-Ziele ausgewählt sein.
7. Dienstzuordnung konfigurieren
So konfigurieren Sie die Dienstzuordnungstabelle für die IAM API und die Vertex AI API:
- Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.
- Klicken Sie für IAM-Anmeldedaten und Vertex AI API auf Neue Einträge und aktualisieren Sie die RFC-Ziele wie unten dargestellt.
8. Konfiguration validieren
Führen Sie die folgenden Schritte aus, um die Authentifizierungskonfiguration zu validieren:
- Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Authentifizierungskonfiguration validieren.
- Geben Sie den Namen des Clientschlüssels als
ABAP_SDK_DEMO
ein. - Klicken Sie auf Ausführen, um zu prüfen, ob der gesamte Ablauf erfolgreich konfiguriert wurde.
- Ein grünes Häkchen in der Spalte „Ergebnis“ zeigt an, dass alle Konfigurationsschritte erfolgreich abgeschlossen wurden.
9. Rezensionsdaten analysieren
Die ABAP-Plattform-Testversion ist mit dem SAP Enterprise Procurement Model (EPM) vorinstalliert. Das ist eine End-to-End-Anwendung, die von SAP zu Demonstrations- und Testzwecken bereitgestellt wird. Die Rezensionen, die für die Sentimentanalyse verwendet werden, werden in der Tabelle „SNWD_REV_ITEM“ gespeichert.
Sie können die Tabellendaten mit dem T-Code SE16 aufrufen. Wir verwenden den Beispieltext aus dem Feld „RATING_TEXT“.
Alternativ können Sie die Daten auch aufrufen, indem Sie über das Fiori Launchpad (T-Code: /UI2/FLP) auf die Anwendung „Manager Products“ zugreifen.
Der folgende Screenshot zeigt die Liste der Produkte.
Klicken Sie auf das Produkt, um die Produktbewertung und Beispielrezensionen aufzurufen.
Im nächsten Abschnitt analysieren wir anhand dieser Beispielrezensionen die Stimmung mithilfe des LLM von Google.
10. Mit Vertex AI Studio den Ton analysieren
- Öffnen Sie das Vertex AI-Dashboard und wählen Sie unter „Vertex AI Studio“ die Option Language (Sprache) aus.
- Erstellen Sie einen neuen Textprompt.
- Bestätigen Sie die Auswahl des Modells Gemini Pro.
- Geben Sie im Editor den folgenden Prompt ein, um das Modell anzuweisen, die Kundenstimmung in der Produktrezension zu analysieren.
- Klicken Sie auf Senden, um die Antwort des Modells zu generieren.
Aufgabe:
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.
Die Rezensionsdaten aus der Tabelle „SNWD_REV_ITEM“ können zum Testen des Modells mit zusätzlichen Prompts verwendet werden.
11. Berichtsprogramm zum Aufrufen des Gemini Pro-Modells erstellen
In diesem Schritt rufen wir das Gemini Pro-Modell aus ABAP auf, um die Sentimentanalyse von Produktrezensionen durchzuführen. Für Demonstrationszwecke werden bis zu 10 Produktrezensionen ausgewählt und das Gemini Pro-Modell wird über das ABAP SDK aufgerufen, um das Sentiment pro Rezension zu bestimmen. Basierend auf der Analyse kann das Modell Werte wie „Positiv“, „Negativ“, „Neutral“ oder „Gemischt“ zurückgeben.
- Melden Sie sich in Ihrem SAP-System an.
- Rufen Sie den Transaktionscode SE38 auf und erstellen Sie ein Berichtsprogramm mit dem Namen ZSENTIMENT_ANALYSIS.
- Geben Sie im Pop-up-Fenster die Details wie unten gezeigt ein und klicken Sie auf Speichern.
- Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt aus oder geben Sie einen Paketnamen an.
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.
- Führen Sie das Programm aus, um die Sentimentanalyse für den Rezensionstext aufzurufen.
12. Glückwunsch
Glückwunsch! Sie haben erfolgreich ein Beispielprogramm entwickelt, um eine Sentimentanalyse mit Gemini Pro AI und dem ABAP SDK for Google Cloud durchzuführen.
13. Bereinigen
Wenn Sie nicht mit den zusätzlichen Codelabs zum ABAP SDK for Google Cloud fortfahren möchten, fahren Sie mit der Bereinigung fort.
Projekt löschen
- So löschen Sie das Google Cloud-Projekt:
gcloud projects delete abap-sdk-poc
Einzelne Ressourcen löschen
- Löschen Sie die Konfigurationseinträge für den Clientschlüssel unter IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Löschen Sie die Konfigurationseinträge für die Dienstzuordnung. Rufen Sie dazu IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren auf.
- Löschen Sie die RFC-Ziele ZGOOG_IAMCREDENTIALS und ZGOOG_VERTEX_AI.
- Löschen Sie das Berichtsprogramm
ZSENTIMENT_ANALYSIS
.
. - Löschen Sie das Dienstkonto.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com