1. Introduction
Dans cet atelier de programmation, vous allez utiliser le modèle Gemini Pro pour effectuer une analyse du sentiment sur les avis sur les produits avec le SDK ABAP pour Google Cloud. Nous allons vous expliquer comment configurer l'authentification pour accéder à l'API Google Cloud Vertex AI à l'aide de jetons lorsque votre système SAP est hébergé sur une instance de VM Compute Engine.
Voici la liste des services utilisés:
- Compute Engine
- Services réseau
- Cloud Shell
- Vertex AI
Ce que vous allez faire
Vous allez effectuer les opérations suivantes:
- Configurez le SDK ABAP installé sur le système SAP pour vous connecter aux API Google.
- Créez un exemple de programme de rapport pour appeler Gemini AI et effectuer une analyse des sentiments sur les avis sur les produits.
2. Conditions requises
- Un navigateur (Chrome ou Firefox, par exemple)
- Un projet Google Cloud pour lequel la facturation est activée ou créez un compte d'essai sans frais de 90 jours pour Google Cloud Platform.
- Interface utilisateur graphique SAP (Windows ou Java) installée sur votre système. Si l'IUG SAP est déjà installée sur votre système, connectez-vous à SAP à l'aide de l'adresse IP externe de la VM comme adresse du serveur d'applications. Si vous utilisez un Mac, vous pouvez également installer la GUI SAP pour Java disponible sur ce lien.
3. Avant de commencer
- Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud (par exemple:
abap-sdk-poc).
- Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet. Ignorez cette étape si vous utilisez un compte avec essai sans frais de 90 jours.
- Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud. Dans la console Cloud, cliquez sur Activer Cloud Shell en haut à droite:
- Assurez-vous que toutes les API nécessaires (API Service Account Credentials AM, API Vertex AI) sont activées.
- Exécutez les commandes suivantes pour vous authentifier pour votre compte et définir le projet par défaut sur
abap-sdk-poc
. La zoneus-west4-b
est utilisée comme exemple. Si nécessaire, veuillez modifier le projet et la zone dans les commandes suivantes en fonction de vos préférences.
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
- Assurez-vous d'avoir accès à un système SAP avec le SDK ABAP pour Google Cloud installé avec des données SAP EPM.
- Vous pouvez consulter l'atelier de programmation Installer la version d'essai de la plate-forme ABAP sur Google Cloud Platform et installer le SDK ABAP pour configurer un nouveau système.
4. Créer un compte de service et définir le rôle d'utilisateur Vertex AI
- Exécutez la commande suivante pour créer un compte de service (s'il n'a pas déjà été créé).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Exécutez la commande suivante pour définir le rôle Utilisateur 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. Configurer la clé client
Connectez-vous au système SAP. Si vous utilisez le système provisionné par l'atelier de programmation Installer la version d'essai de la plate-forme ABAP sur Google Cloud Platform et installer le SDK ABAP, utilisez le nom d'utilisateur et le mot de passe provisionnés par défaut pour vous connecter.
- Dans l'IUG de SAP, saisissez le code de transaction SPRO.
- Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer la clé client.
- Cliquez sur Nouvelles entrées.
- Renseignez les champs suivants :
Champ | Description |
Nom de la clé Google Cloud | ABAP_SDK_DEMO |
Nom du compte de service Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Champ d'application Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identifiant de projet Google Cloud | abap-sdk-poc |
Classe d'autorisation | /GOOG/CL_AUTH_GOOGLE. |
Laissez les autres champs vides.
6. Créer une destination RFC
Créez une destination RFC pour les identifiants IAM et l'API Vertex AI à l'aide du code de transaction SM59. Si nécessaire, consultez cette page pour connaître la procédure détaillée de création d'une destination RFC.
Nom de la destination RFC | Hôte cible (point de terminaison de l'API) | Remarques |
ZGOOG_IAMCREDENTIALS |
| Cette destination RFC cible l'API Cloud IAM. |
ZGOOG_VERTEX_AI |
| Cette destination RFC cible le point de terminaison us-central1 de l'API Vertex AI. |
- Dans l'onglet Paramètres techniques, saisissez les informations suivantes pour la destination ZGOOG_IAMCREDENTIALS.
- Dans l'onglet Paramètres techniques, saisissez les informations suivantes pour la destination ZGOOG_VERTEX_AI.
- Pour le champ Certificat SSL, assurez-vous que l'option Client SSL par défaut (standard) est sélectionnée pour les deux destinations RFC.
7. Configurer le mappage de service
Pour configurer la table de mappage des services pour l'API IAM et l'API Vertex AI, procédez comme suit:
- Dans l'IUG de SAP, saisissez le code de transaction SPRO.
- Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.
- Cliquez sur Nouvelles entrées pour les identifiants IAM et l'API Vertex AI, puis mettez à jour les destinations RFC comme indiqué ci-dessous.
8. Valider la configuration
Pour valider la configuration d'authentification, procédez comme suit :
- Dans l'IUG de SAP, saisissez le code de transaction SPRO.
- Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > Valider la configuration de l'authentification.
- Saisissez
ABAP_SDK_DEMO
comme nom de clé client. - Cliquez sur Exécuter pour vérifier si le flux global est correctement configuré.
- Une coche verte dans la colonne "Résultat" indique que toutes les étapes de configuration ont été effectuées.
9. Étudier les données des avis sur les produits
La version d'essai de la plate-forme ABAP est préinstallée avec le modèle d'approvisionnement d'entreprise (EPM) SAP, une application de bout en bout fournie par SAP à des fins de démonstration et de test. Les avis sur les produits qui seront utilisés pour l'analyse des sentiments sont stockés dans la table SNWD_REV_ITEM.
Vous pouvez afficher les données de la table à l'aide du code SE16. Nous utiliserons l'exemple de texte du champ "RATING_TEXT".
Vous pouvez également afficher les données en accédant à l'application "Gérer les produits" depuis le lanceur d'applications Fiori (code T: /UI2/FLP).
La capture d'écran suivante montre la liste des produits.
Cliquez sur le produit pour afficher son évaluation et des exemples d'avis.
Dans la section suivante, nous allons utiliser ces exemples d'avis sur des produits pour analyser le sentiment à l'aide du LLM de Google.
10. Analyser l'opinion à l'aide de Vertex AI Studio
- Ouvrez le tableau de bord Vertex AI, puis sélectionnez Langage sous Vertex AI Studio.
- Créez une requête textuelle.
- Confirmez la sélection du modèle Gemini Pro.
- Dans l'éditeur, saisissez l'invite suivante pour demander au modèle d'analyser le sentiment des clients dans l'avis sur le produit.
- Cliquez sur Envoyer pour générer la réponse du modèle.
Requête:
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.
Les données d'avis de la table "SNWD_REV_ITEM" peuvent être utilisées pour tester le modèle avec des invites supplémentaires.
11. Créer un programme de rapport pour appeler le modèle Gemini Pro
À cette étape, nous allons appeler le modèle Gemini Pro à partir d'ABAP pour effectuer l'analyse du sentiment des avis sur les produits. À des fins de démonstration, le programme sélectionnera jusqu'à 10 avis sur un produit et utilisera le SDK ABAP pour appeler le modèle Gemini Pro afin de déterminer le sentiment exprimé par chaque avis. Sur la base de son analyse, le modèle peut renvoyer des valeurs telles que "Positif", "Négatif", "Neutre" ou "Mixte".
- Connectez-vous à votre système SAP.
- Accédez au code de transaction SE38 et créez un programme de rapport nommé ZSENTIMENT_ANALYSIS.
- Dans le pop-up qui s'affiche, fournissez les informations indiquées ci-dessous, puis cliquez sur Enregistrer.
- Dans le pop-up suivant, sélectionnez Objet local ou indiquez un nom de package, le cas échéant.
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.
- Exécutez le programme pour afficher l'analyse des sentiments du texte de l'avis.
12. Félicitations
Félicitations ! Vous avez développé un exemple de programme pour effectuer une analyse du sentiment à l'aide de l'IA Gemini Pro avec le SDK ABAP pour Google Cloud.
13. Effectuer un nettoyage
Si vous ne souhaitez pas poursuivre les ateliers de programmation supplémentaires liés au SDK ABAP pour Google Cloud, veuillez procéder au nettoyage.
Supprimer le projet
- Supprimez le projet Google Cloud:
gcloud projects delete abap-sdk-poc
Supprimer des ressources individuelles
- Supprimez les entrées de configuration de la clé client en accédant à IMG > Google Cloud > Paramètres de base > Configurer la clé client.
- Supprimez les entrées de configuration du mappage des services en accédant à IMG > Google Cloud > Paramètres de base > Configurer la clé client.
- Supprimez les destinations RFC ZGOOG_IAMCREDENTIALS et ZGOOG_VERTEX_AI.
- Supprimer le programme de rapport
ZSENTIMENT_ANALYSIS
.
- Supprimez le compte de service.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com