Sentimentanalyse mit Gemini AI und ABAP SDK

Sentimentanalyse mit Gemini AI und dem ABAP SDK

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juli 30, 2025
account_circleVerfasst von Ameya Suvarna

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. In diesem Abschnitt wird beschrieben, wie Sie die Authentifizierung für den Zugriff auf die Google Cloud Vertex AI API mithilfe von Tokens einrichten, wenn Ihr SAP-System auf einer Compute Engine-VM-Instanz gehostet wird.

Folgende Dienste werden verwendet:

  • Compute Engine
  • Netzwerkdienste
  • Cloud Shell
  • Vertex AI

Aufgaben

Sie führen folgende Schritte aus:

  • Konfigurieren Sie das im SAP-System installierte ABAP SDK so, dass es eine Verbindung zu Google APIs herstellt.
  • Erstellen Sie ein Beispielprogramm für Berichte, um Gemini AI 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 90‑Tage-Testkonto für die Google Cloud Platform.
  • SAP GUI (Windows oder Java) ist auf Ihrem System installiert. Wenn die SAP-GUI bereits auf Ihrem System installiert ist, stellen Sie eine Verbindung zu SAP her und verwenden Sie dabei die externe IP-Adresse der VM als IP-Adresse des Anwendungsservers. Wenn Sie einen Mac verwenden, können Sie auch die SAP GUI für Java installieren, die über diesen Link verfügbar ist.

3. Hinweis

  • Wählen Sie dazu in der Google Cloud Console auf der Projektauswahlseite 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 90‑Tage-Testkonto 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:
  • 6757b2fb50ddcc2d.png
  • Achten Sie darauf, dass alle erforderlichen APIs (IAM 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 die Zone us-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

4. Dienstkonto erstellen und Vertex AI-Nutzerrolle festlegen

  1. 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"
  1. Führen Sie den folgenden Befehl aus, um die Rolle Vertex AI-Nutzer 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 Google Cloud Platform installieren und ABAP SDK installieren) bereitgestellt wird, verwenden Sie den standardmäßig bereitgestellten Nutzernamen und das Passwort für die Anmeldung.

  1. Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
  4. Klicken Sie auf Neue Einträge.
  5. 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.

c72e71da6fd75b29.png

6. RFC-Ziel erstellen

Erstellen Sie mit dem Transaktionscode SM59 ein RFC-Ziel für IAM-Anmeldedaten und die Vertex AI API. Bei Bedarf finden Sie hier eine detaillierte Anleitung zum Erstellen eines RFC-Ziels.

Name des RFC-Ziels

Zielhost (API-Endpunkt)

Hinweise

ZGOOG_IAMCREDENTIALS

  • Host: iamcredentials.googleapis.com
  • Pfad: Präfix: /v1/
  • Port: 443
  • SSL: Aktiv

Dieses RFC-Ziel zielt auf die IAM API ab.

ZGOOG_VERTEX_AI

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

Dieses RFC-Ziel zielt auf den Vertex AI API-Endpunkt „us-central1“ ab.

  • Geben Sie auf dem Tab Technische Einstellungen die folgenden Details für das Ziel ZGOOG_IAMCREDENTIALS ein.

e670c6a91acba40f.png

  • Geben Sie auf dem Tab Technische Einstellungen die folgenden Details für das Ziel ZGOOG_VERTEX_AI ein.

5c584aaed5c110f2.png

  • Für das Feld SSL-Zertifikat muss die Option DEFAULT-SSL-Client (Standard) für beide RFC-Ziele ausgewählt sein.

b6370d12bd332318.png

7. Dienstzuordnung konfigurieren

So konfigurieren Sie die Dienstzuordnungstabelle für die IAM API und die Vertex AI API:

  1. Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.
  4. Klicken Sie für IAM-Anmeldedaten und die Vertex AI API auf New Entries (Neue Einträge) und aktualisieren Sie die RFC-Ziele wie unten dargestellt.

e7cc1429a4fe3a04.png

8. Konfiguration validieren

Führen Sie die folgenden Schritte aus, um die Authentifizierungskonfiguration zu validieren:

  1. Geben Sie in der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Authentifizierungskonfiguration validieren.
  4. Geben Sie den Namen des Clientschlüssels als ABAP_SDK_DEMO ein.
  5. Klicken Sie auf Ausführen, um zu prüfen, ob der gesamte Ablauf erfolgreich konfiguriert wurde.
  6. Ein grünes Häkchen in der Spalte „Ergebnis“ zeigt an, dass alle Konfigurationsschritte erfolgreich abgeschlossen wurden.

d7285e64e22c25b6.png

9. Daten zu Produktrezensionen analysieren

Die ABAP-Plattform-Testversion ist mit dem SAP Enterprise Procurement Model (EPM) vorinstalliert, einer End-to-End-Anwendung, die von SAP zu Demonstrations- und Testzwecken bereitgestellt wird. Die für die Sentimentanalyse verwendeten Produktrezensionen werden in der Tabelle SNWD_REV_ITEM gespeichert.

Sie können die Tabellendaten mit dem Transaktionscode SE16 aufrufen. Wir verwenden den Beispieltext aus dem Feld „RATING_TEXT“.

2bae72d437ea639.png

Optional können Sie die Daten auch aufrufen, indem Sie im Fiori Launchpad (Transaktionscode: /UI2/FLP) auf die Anwendung „Manager Products“ (Produkte verwalten) zugreifen.

f9792a91ef9f0736.png

Der folgende Screenshot zeigt die Liste der Produkte.

f822f9ab71d37a9.png

Klicken Sie auf das Produkt, um die Produktbewertung und Beispielrezensionen aufzurufen.

69fe380d5ca7b276.png

Im nächsten Abschnitt verwenden wir diese Beispielrezensionen, um die Stimmung mit Google LLM zu analysieren.

10. Stimmungsanalyse mit Vertex AI Studio

  1. Öffnen Sie das Vertex AI-Dashboard und wählen Sie unter Vertex AI Studio die Option Sprache aus.
  2. Erstellen Sie einen neuen Text-Prompt.

8ce4c928c75174d7.png

  1. Bestätigen Sie die Auswahl des Modells Gemini Pro.
  2. Geben Sie im Editor den folgenden Prompt ein, um das Modell anzuweisen, die Kundenstimmung in der Produktrezension zu analysieren.
  3. Klicken Sie auf Senden, um die Antwort vom Modell generieren zu lassen.

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

Die Prüfdaten aus der Tabelle „SNWD_REV_ITEM“ können verwendet werden, um das Modell mit zusätzlichen Prompts zu testen.

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. Zu Demozwecken wählt das Programm bis zu 10 Produktrezensionen aus und ruft mit dem ABAP SDK das Gemini Pro-Modell auf, um die Stimmung pro Rezension zu ermitteln. Basierend auf der Analyse kann das Modell Werte wie „Positiv“, „Negativ“, „Neutral“ oder „Gemischt“ zurückgeben.

  1. Melden Sie sich in Ihrem SAP-System an.
  2. Rufen Sie den Transaktionscode SE38 auf und erstellen Sie ein Berichtsprogramm mit dem Namen ZSENTIMENT_ANALYSIS.
  3. Geben Sie im Pop-up-Fenster, das sich öffnet, die unten gezeigten Details ein und klicken Sie auf Speichern.

a2158523ec8ef3c7.png

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

  1. Führen Sie das Programm aus, um die Sentimentanalyse für den Rezensionstext zu sehen.

4d869f1b8436b9ca.png

12. Glückwunsch

Glückwunsch! Sie haben erfolgreich ein Beispielprogramm entwickelt, um mit Gemini Pro AI und dem ABAP SDK for Google Cloud eine Sentimentanalyse durchzuführen.

13. Bereinigen

Wenn Sie nicht mit den zusätzlichen Codelabs zum ABAP SDK for Google Cloud fortfahren möchten, fahren Sie mit dem Bereinigen fort.

Projekt löschen

  • Google Cloud-Projekt löschen:
gcloud projects delete abap-sdk-poc

Einzelne Ressourcen löschen

  1. Löschen Sie die Einträge für die Clientschlüsselkonfiguration unter IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
  2. Löschen Sie die Konfigurationseinträge für die Dienstzuordnung unter IMG > Google Cloud > Grundeinstellungen > Clientschlüssel konfigurieren.
  3. Löschen Sie die RFC-Ziele ZGOOG_IAMCREDENTIALS und ZGOOG_VERTEX_AI.
  4. Löschen Sie das Berichtsprogramm ZSENTIMENT_ANALYSIS..
  5. Löschen Sie das Dienstkonto.
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com