1. Introducción
En este codelab, usarás el modelo Gemini Pro para realizar un análisis de opiniones sobre productos con el SDK de ABAP para Google Cloud. Analizaremos los pasos para configurar la autenticación para acceder a la API de Google Cloud Vertex AI con tokens cuando tu sistema SAP se aloje en una instancia de VM de Compute Engine.
La lista de servicios utilizados es la siguiente:
- Compute Engine
- Servicios de red
- Cloud Shell
- Vertex AI
Qué compilarás
Realizarás las siguientes acciones:
- Configura el SDK de ABAP instalado en el sistema SAP para conectarte a las APIs de Google.
- Crea un programa de informes de ejemplo para llamar a la IA de Gemini y realizar un análisis de opiniones sobre productos.
2. Requisitos
- Un navegador, como Chrome o Firefox
- Un proyecto de Google Cloud con la facturación habilitada o crea una cuenta de prueba gratuita de 90 días para Google Cloud Platform.
- GUI de SAP (Windows o Java) instalada en tu sistema Si la GUI de SAP ya está instalada en tu sistema, conéctate a SAP con la dirección IP externa de la VM como la IP del servidor de aplicaciones. Si usas Mac, también puedes instalar la GUI de SAP para Java disponible en este vínculo.
3. Antes de comenzar
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud (por ejemplo,
abap-sdk-poc).
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto. Omite este paso si usas la cuenta de prueba gratuita de 90 días.
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud. En la consola de Cloud, haz clic en Activar Cloud Shell en la esquina superior derecha:
- Asegúrate de que todas las APIs necesarias (API de credenciales de la cuenta de servicio de AM, API de Vertex AI) estén habilitadas.
- Ejecuta los siguientes comandos para autenticar tu cuenta y establecer el proyecto predeterminado en
abap-sdk-poc
. Se usa la zonaus-west4-b
como ejemplo. Si es necesario, cambia el proyecto y la zona en los siguientes comandos según tus preferencias.
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
- Asegúrate de tener acceso a un sistema SAP con el SDK de ABAP para Google Cloud instalado con datos de SAP EPM.
- Puedes consultar el codelab "Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK" para configurar un sistema nuevo.
4. Crea una cuenta de servicio y establece el rol de usuario de Vertex AI
- Ejecuta el siguiente comando para crear una cuenta de servicio (si aún no lo hiciste).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Ejecuta el siguiente comando para establecer el rol de Usuario de 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 la clave de cliente
Accede al sistema SAP. Si usas el sistema aprovisionado por el codelab "Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK", usa el nombre de usuario y la contraseña predeterminados aprovisionados para acceder.
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.
- Haz clic en Entradas nuevas.
- Ingresa los valores para los siguientes campos:
Campo | Descripción |
Nombre de la clave de Google Cloud | ABAP_SDK_DEMO |
Nombre de la cuenta de servicio de Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Permiso de Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identificador de proyecto de Google Cloud | abap-sdk-poc |
Clase de autorización | /GOOG/CL_AUTH_GOOGLE. |
Deja los otros campos en blanco
6. Crea un destino de RFC
Crea un destino de RFC para la credencial de IAM y la API de Vertex AI con el código de transacción SM59. Si es necesario, consulta aquí para obtener pasos detallados sobre cómo crear un destino de RFC.
Nombre del destino de RFC | Host del destino (extremo de API) | Notas |
ZGOOG_IAMCREDENTIALS |
| Este destino de RFC se orienta a la API de IAM. |
ZGOOG_VERTEX_AI |
| Este destino de RFC se orienta al extremo us-central1 de la API de Vertex AI. |
- En la pestaña Configuración técnica, ingresa los siguientes detalles para el destino ZGOOG_IAMCREDENTIALS.
- En la pestaña Configuración técnica, ingresa los siguientes detalles para el destino ZGOOG_VERTEX_AI.
- En el campo Certificado SSL, asegúrate de que la opción Cliente SSL predeterminado (estándar) esté seleccionada para ambos destinos de RFC.
7. Configura la asignación de servicios
Para configurar la tabla de asignación de servicios para la API de IAM y la API de Vertex AI, sigue estos pasos:
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.
- Haz clic en New Entries para la credencial de IAM y la API de Vertex AI, y actualiza los destinos de RFC como se muestra a continuación.
8. Valida la configuración
Para validar la configuración de autenticación, sigue estos pasos:
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en SDK de ABAP para Google Cloud > Utilidades > Validar configuración de autenticación.
- Ingresa el nombre de la clave de cliente como
ABAP_SDK_DEMO
. - Haz clic en Ejecutar para verificar si el flujo general se configuró correctamente.
- Una marca de verificación verde en la columna Resultado indica que todos los pasos de configuración se completaron correctamente.
9. Estudia los datos de opiniones sobre productos
La prueba de ABAP Platform se preinstala con el modelo de adquisición empresarial (EPM) de SAP, una aplicación de extremo a extremo que proporciona SAP para demostraciones y pruebas. Las opiniones sobre productos que se usarán para el análisis de opiniones se almacenan en la tabla SNWD_REV_ITEM.
Puedes ver los datos de la tabla con el código T: SE16. Usaremos el texto de muestra del campo "RATING_TEXT".
De manera opcional, también puedes ver los datos si accedes a la aplicación "Manager Products" desde el Fiori Launchpad (código de transacción: /UI2/FLP).
En la siguiente captura de pantalla, se muestra la lista de productos.
Haz clic en el producto para ver su calificación y ejemplos de opiniones.
En la siguiente sección, usaremos estas opiniones de productos de muestra para analizar el sentimiento con el LLM de Google.
10. Analiza el sentimiento con Vertex AI Studio
- Abre el panel de Vertex AI y selecciona Lenguaje en Vertex AI Studio.
- Crea una nueva instrucción de texto.
- Confirma la selección del modelo Gemini Pro.
- En el editor, ingresa la siguiente instrucción para indicarle al modelo que analice la opinión de los clientes en la opinión sobre el producto.
- Haz clic en Enviar para generar la respuesta del modelo.
Consigna:
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.
Los datos de revisión de la tabla "SNWD_REV_ITEM" se pueden usar para probar el modelo con instrucciones adicionales.
11. Crea un programa de informes para llamar al modelo de Gemini Pro
En este paso, llamaremos al modelo de Gemini Pro desde ABAP para realizar el análisis de opiniones sobre productos. A modo de demostración, el programa seleccionará hasta 10 opiniones sobre productos y usará el SDK de ABAP para llamar al modelo Gemini Pro y determinar el sentimiento por opinión. En función de su análisis, el modelo puede mostrar valores como "Positivo", "Negativo", "Neutral" o "Mixto".
- Accede a tu sistema SAP.
- Ve al código de transacción SE38 y crea un programa de informes con el nombre ZSENTIMENT_ANALYSIS.
- En la ventana emergente que se abre, proporciona los detalles como se muestra a continuación y haz clic en Guardar.
- En la siguiente ventana emergente, selecciona Objeto local o proporciona un nombre de paquete según corresponda.
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.
- Ejecuta el programa para ver el análisis de opiniones del texto de la reseña.
12. ¡Felicitaciones!
¡Felicitaciones! Desarrollaste correctamente un programa de muestra para realizar un análisis de opiniones con la IA de Gemini Pro con el SDK de ABAP para Google Cloud.
13. Limpia
Si no deseas continuar con los codelabs adicionales relacionados con el SDK de ABAP para Google Cloud, continúa con la limpieza.
Borra el proyecto
- Borra el proyecto de Google Cloud:
gcloud projects delete abap-sdk-poc
Cómo borrar recursos individuales
- Para borrar las entradas de configuración de la clave de cliente, ve a IMG > Google Cloud > Configuración básica > Configurar clave de cliente.
- Para borrar las entradas de configuración de la asignación de servicios, ve a IMG > Google Cloud > Configuración básica > Configurar clave de cliente.
- Borra los destinos de RFC ZGOOG_IAMCREDENTIALS y ZGOOG_VERTEX_AI.
- Borra el programa de informes
ZSENTIMENT_ANALYSIS
.
- Borra la cuenta de servicio.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com