1. Introduzione
In questo codelab, utilizzerai il modello Gemini Pro per eseguire l'analisi del sentiment sulle recensioni prodotto con l'SDK ABAP per Google Cloud. Seguiremo i passaggi per configurare l'autenticazione per accedere all'API Vertex AI di Google Cloud utilizzando i token quando il sistema SAP è ospitato su un'istanza VM di Compute Engine.
Ecco l'elenco dei servizi utilizzati:
- Compute Engine
- Servizi di rete
- Cloud Shell
- Vertex AI
Cosa creerai
Eseguirai queste operazioni:
- Configura l'SDK ABAP installato sul sistema SAP per connetterti alle API di Google.
- Crea un programma di report di esempio per chiamare l'IA di Gemini ed eseguire l'analisi del sentiment sulle recensioni prodotto.
2. Requisiti
- Un browser, ad esempio Chrome o Firefox.
- Un progetto Google Cloud con fatturazione abilitata o crea un account di prova senza costi di 90 giorni per Google Cloud Platform.
- GUI SAP (Windows o Java) installata nel sistema. Se la GUI SAP è già installata nel sistema, connettiti utilizzando l'indirizzo IP esterno della VM come IP server delle applicazioni. Se utilizzi Mac, puoi anche installare la GUI di SAP per Java disponibile in questo link.
3. Prima di iniziare
- Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud (ad esempio
abap-sdk-poc).
- Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come controllare se la fatturazione è abilitata per un progetto. Salta questo passaggio se utilizzi l'account di prova senza costi di 90 giorni.
- Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione su Google Cloud. Dalla console Cloud, fai clic su Attiva Cloud Shell nell'angolo in alto a destra:
- Assicurati che tutte le API necessarie (API AM Service Account Credentials, API Vertex AI) siano abilitate.
- Esegui questi comandi per eseguire l'autenticazione per il tuo account e imposta il progetto predefinito su
abap-sdk-poc
. La zonaus-west4-b
viene utilizzata come esempio. Se necessario, modifica il progetto e la zona nei comandi seguenti in base alle tue preferenze.
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
- Assicurati di avere accesso a un sistema SAP con l'SDK ABAP per Google Cloud installato con i dati SAP EPM.
- Puoi fare riferimento al codelab " Installa la versione di prova della piattaforma ABAP su Google Cloud e installa l'SDK ABAP" per configurare un nuovo sistema.
4. Crea un account di servizio e imposta il ruolo utente di Vertex AI
- Esegui questo comando per creare un account di servizio (se non è già stato creato).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Esegui questo comando per impostare il ruolo Utente 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. Configura chiave client
Accedi al sistema SAP. Se utilizzi il sistema di cui è stato eseguito il provisioning dal codelab " Installa la versione di prova della piattaforma ABAP su Google Cloud e installa l'SDK ABAP", quindi utilizza il nome utente e la password di cui hai eseguito il provisioning predefiniti per accedere.
- Nella GUI di SAP, inserisci il codice della transazione SPRO.
- Fai clic su IMG di riferimento SAP.
- Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configura chiave client.
- Fai clic su Nuove voci.
- Inserisci i valori nei seguenti campi:
Campo | Descrizione |
Nome chiave Google Cloud | ABAP_SDK_DEMO |
Nome dell'account di servizio Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Ambito Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identificatore di progetto Google Cloud | abap-sdk-poc |
Classe di autorizzazione | /GOOG/CL_AUTH_GOOGLE. |
Lasciare gli altri campi vuoti
6. Crea destinazione RFC
Crea la destinazione RFC per le credenziali IAM e l'API Vertex AI utilizzando il codice transazione SM59. Se necessario, fai riferimento qui per la procedura dettagliata sulla creazione di una destinazione RFC.
Nome destinazione RFC | Host di destinazione (endpoint API) | Note |
ZGOOG_IAMCREDENTIALS |
| Questa destinazione RFC ha come target l'API IAM. |
ZGOOG_VERTEX_AI |
| Questa destinazione RFC ha come target l'endpoint us-central1 dell'API Vertex AI. |
- Nella scheda Impostazioni tecniche, inserisci i seguenti dettagli per la destinazione ZGOOG_IAMCREDENTIALS.
- Nella scheda Impostazioni tecniche, inserisci i seguenti dettagli per la destinazione ZGOOG_VERTEX_AI.
- Per il campo Certificato SSL, assicurati che sia selezionata l'opzione Client SSL PREDEFINITO (Standard) per entrambe le destinazioni RFC.
7. Configura mappatura servizi
Per configurare la tabella di mappatura dei servizi per l'API IAM e l'API Vertex AI, segui questi passaggi:
- Nella GUI di SAP, inserisci il codice della transazione SPRO.
- Fai clic su IMG di riferimento SAP.
- Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configurare la mappatura dei servizi.
- Fai clic su New Entries (Nuova voce) per la credenziale IAM e l'API Vertex AI e aggiorna le destinazioni RFC come mostrato di seguito.
8. Convalida configurazione
Per convalidare la configurazione dell'autenticazione, segui questi passaggi:
- Nella GUI di SAP, inserisci il codice della transazione SPRO.
- Fai clic su IMG di riferimento SAP.
- Fai clic su SDK ABAP per Google Cloud > Utilità > Convalida configurazione dell'autenticazione.
- Inserisci
ABAP_SDK_DEMO
come nome della chiave client. - Fai clic su Esegui per verificare se il flusso complessivo è configurato correttamente.
- Un segno di spunta verde nella colonna Risultato indica che tutti i passaggi di configurazione sono stati completati correttamente.
9. Esaminare i dati delle recensioni prodotto
Nella prova della piattaforma ABAP è preinstallato il SAP Enterprise Procurement Model (EPM), un'applicazione end-to-end fornita da SAP a scopo dimostrativo e di test. Le recensioni prodotto che verranno utilizzate per l'analisi del sentiment vengono archiviate nella tabella SNWD_REV_ITEM.
Puoi visualizzare i dati della tabella utilizzando Tcode: SE16. Utilizzeremo il testo di esempio del campo "RATING_TEXT".
Facoltativamente, è possibile visualizzare i dati anche accedendo all'applicazione "Manager Products" dal Launchpad Fiori (TCode: /UI2/FLP).
Il seguente screenshot mostra l'elenco dei prodotti.
Fai clic sul prodotto per visualizzare la valutazione del prodotto e recensioni di esempio.
Nella sezione successiva, utilizzeremo queste recensioni prodotto di esempio per analizzare il sentiment mediante i modelli LLM di Google.
10. Analizzare il sentiment con Vertex AI Studio
- Apri la dashboard di Vertex AI, seleziona Lingua in Vertex AI Studio.
- Crea un nuovo prompt di testo.
- Conferma la selezione del modello Gemini Pro.
- Nell'editor, inserisci il seguente prompt per indicare al modello di analizzare il sentiment dei clienti nella recensione del prodotto.
- Fai clic su Invia per generare la risposta dal modello.
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.
I dati della recensione della tabella "SNWD_REV_ITEM" per testare il modello con ulteriori prompt.
11. Crea un programma di report per chiamare il modello Gemini Pro
In questo passaggio, chiameremo il modello Gemini Pro di ABAP per eseguire l'analisi del sentiment delle recensioni prodotto. A scopo dimostrativo, il programma selezionerà fino a 10 recensioni prodotto e utilizzerà l'SDK ABAP per chiamare il modello Gemini Pro al fine di determinare il sentiment per recensione. In base alla sua analisi, il modello può restituire valori quali "Positivo", "Negativo", "Neutrale" o "Misto".
- Accedi al tuo sistema SAP.
- Vai al codice transazione SE38 e crea un programma di report con il nome ZSENTIMENT_ANALYSIS.
- Nel popup che si apre, fornisci i dettagli indicati di seguito e fai clic su Salva.
- Nel popup successivo, seleziona Oggetto locale o fornisci un nome di pacchetto a seconda dei casi.
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.
- Esegui il programma per vedere l'analisi del sentiment per il testo della recensione.
12. Complimenti
Complimenti! Hai sviluppato un programma di esempio per eseguire l'analisi del sentiment utilizzando l'IA di Gemini Pro con l'SDK ABAP per Google Cloud.
13. Esegui la pulizia
Se non vuoi continuare con i codelab aggiuntivi relativi all'SDK ABAP per Google Cloud, procedi con la pulizia.
Elimina il progetto
- Elimina il progetto Google Cloud:
gcloud projects delete abap-sdk-poc
Eliminare singole risorse
- Elimina le voci di configurazione della chiave client da IMG > Google Cloud > Impostazioni di base > Configura chiave client.
- Elimina le voci di configurazione di Service Mapping da IMG > Google Cloud > Impostazioni di base > Configura chiave client.
- Elimina le destinazioni RFC ZGOOG_IAMCREDENTIALS e ZGOOG_VERTEX_AI.
- Eliminare il programma di report
ZSENTIMENT_ANALYSIS
.
- Elimina l'account di servizio.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com