1. Introdução
Neste codelab, você vai usar o modelo Gemini Pro para realizar análises de sentimento em avaliações de produtos com o SDK ABAP para Google Cloud. Vamos mostrar as etapas para configurar a autenticação para acessar a API Google Cloud Vertex AI usando tokens quando o sistema SAP estiver hospedado em uma instância de VM do Compute Engine.
A lista de serviços usados é a seguinte:
- Compute Engine
- Serviços de rede
- Cloud Shell
- Vertex AI
O que você vai criar
Você vai fazer o seguinte:
- Configure o SDK ABAP instalado no sistema SAP para se conectar às APIs do Google.
- Crie um programa de exemplo para chamar a IA Gemini e realizar a análise de sentimento nas avaliações de produtos.
2. Requisitos
- Um navegador, como o Chrome ou o Firefox
- Um projeto do Google Cloud com o faturamento ativado ou Crie uma conta de teste sem custo financeiro de 90 dias para o Google Cloud Platform.
- GUI do SAP (Windows ou Java) instalado no sistema. Se a SAP GUI já estiver instalada no seu sistema, conecte-se ao SAP usando o endereço IP externo da VM como o IP do servidor de aplicativos. Se você estiver usando um Mac, também poderá instalar a GUI do SAP para Java disponível neste link.
3. Antes de começar
- No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud. Por exemplo:
abap-sdk-poc).
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto. Pule esta etapa se você estiver usando a conta de teste sem custo financeiro de 90 dias.
- Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud. No console do Cloud, clique em Ativar o Cloud Shell no canto superior direito:
- Verifique se todas as APIs necessárias (API Service Account Credentials do IAM e API Vertex AI) estão ativas.
- Execute os comandos a seguir para fazer a autenticação da sua conta e definir o projeto padrão como
abap-sdk-poc
. A zonaus-west4-b
é usada como exemplo. Se necessário, mude o projeto e a zona nos comandos a seguir de acordo com sua preferência.
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
- Verifique se você tem acesso a um sistema SAP com o ABAP SDK for Google Cloud instalado com dados do SAP EPM.
- Consulte o codelab Instalar o teste da plataforma ABAP no Google Cloud Platform e instalar o SDK ABAP para configurar um novo sistema.
4. Criar uma conta de serviço e definir o papel do usuário da Vertex AI
- Execute o comando a seguir para criar uma conta de serviço (se ela ainda não tiver sido criada).
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Execute o comando a seguir para definir a função Usuário da 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. Configurar chave do cliente
Faça login no sistema SAP. Se você estiver usando o sistema provisionado pelo codelab Instalar o teste da plataforma ABAP no Google Cloud Platform e instalar o SDK ABAP, use o nome de usuário e a senha provisionados padrão para fazer login.
- Na GUI do SAP, insira o código da transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar chave do cliente.
- Clique em Novas entradas.
- Insira valores nos campos a seguir:
Campo | Descrição |
Nome da chave do Google Cloud | ABAP_SDK_DEMO |
Nome da conta de serviço do Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Escopo do Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identificador de projeto do Google Cloud | abap-sdk-poc |
Classe de autorização | /GOOG/CL_AUTH_GOOGLE. |
Deixe os outros campos em branco
6. Criar destino de RFC
Crie um destino RFC para a credencial do IAM e a API Vertex AI usando o código de transação SM59. Se necessário, consulte este link para conferir as etapas detalhadas de criação de um destino RFC.
Nome do destino do RFC | Host de destino (endpoint da API) | Observações |
ZGOOG_IAMCREDENTIALS |
| Este destino do RFC é destinado à API do IAM. |
ZGOOG_VERTEX_AI |
| Este destino do RFC segmenta o endpoint us-central1 da API Vertex AI. |
- Na guia Configurações técnicas, insira os seguintes detalhes para o destino ZGOOG_IAMCREDENTIALS.
- Na guia Configurações técnicas, insira os seguintes detalhes para o destino ZGOOG_VERTEX_AI.
- No campo Certificado SSL, verifique se a opção Cliente SSL PADRÃO (padrão) está selecionada para os dois destinos do RFC.
7. Configurar o mapeamento de serviços
Para configurar a tabela de mapeamento de serviço para a API IAM e a API Vertex AI, siga estas etapas:
- Na GUI do SAP, insira o código da transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar mapeamento de serviços.
- Clique em Novas entradas para a credencial do IAM e a API Vertex AI e atualize os destinos RFC, conforme mostrado abaixo.
8. Validar a configuração
Para validar a configuração da autenticação, execute as seguintes etapas:
- Na GUI do SAP, insira o código da transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
- Insira o nome da chave do cliente como
ABAP_SDK_DEMO
. - Clique em Executar para verificar se o fluxo geral foi configurado.
- Uma marca de seleção verde na coluna "Resultado" indica que todas as etapas de configuração foram concluídas.
9. Estudar os dados de avaliações do produto
O teste da plataforma ABAP vem pré-instalado com o modelo de compras corporativas (EPM, na sigla em inglês) da SAP, um aplicativo completo fornecido pela SAP para fins de demonstração e teste. As avaliações de produtos que serão usadas para a análise de sentimento são armazenadas na tabela SNWD_REV_ITEM.
Você pode conferir os dados da tabela usando o código T: SE16. Vamos usar o texto de exemplo do campo "RATING_TEXT".
Como alternativa, você também pode acessar os dados acessando o aplicativo "Manager Products" no Fiori Launchpad (TCode: /UI2/FLP).
A captura de tela a seguir mostra a lista de produtos.
Clique no produto para conferir a classificação e exemplos de avaliações.
Na próxima seção, vamos usar esses exemplos de avaliações de produtos para analisar o sentimento usando o LLM do Google.
10. Analisar o sentimento usando o Vertex AI Studio
- Abra o Painel da Vertex AI e selecione Idioma no Vertex AI Studio.
- Crie um novo comando de texto.
- Confirme a seleção do modelo Gemini Pro.
- No editor, insira o seguinte comando para instruir o modelo a analisar o sentimento do cliente na avaliação do produto.
- Clique em Enviar para gerar a resposta do modelo.
Comando:
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.
Os dados de revisão da tabela "SNWD_REV_ITEM" podem ser usados para testar o modelo com outras instruções.
11. Criar um programa de relatório para chamar o modelo Gemini Pro
Nesta etapa, vamos chamar o modelo Gemini Pro do ABAP para realizar a análise de sentimento das avaliações do produto. Para fins de demonstração, o programa vai selecionar até 10 avaliações de produtos e usar o SDK ABAP para chamar o modelo Gemini Pro e determinar o sentimento por avaliação. Com base na análise, o modelo pode retornar valores como "Positivo", "Negativo", "Neutro" ou "Misto".
- Faça login no sistema SAP.
- Acesse o código de transação SE38 e crie um programa de relatórios com o nome ZSENTIMENT_ANALYSIS.
- No pop-up que abrir, forneça os detalhes conforme mostrado abaixo e clique em Salvar.
- No próximo pop-up, selecione Objeto local ou informe um nome de pacote, conforme apropriado.
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.
- Execute o programa para conferir a análise de sentimento do texto da avaliação.
12. Parabéns
Parabéns! Você desenvolveu um programa de exemplo para realizar análises de sentimento usando a IA Gemini Pro com o SDK ABAP for Google Cloud.
13. Limpar
Se você não quiser continuar com os outros codelabs relacionados ao SDK ABAP para Google Cloud, prossiga com a limpeza.
Excluir o projeto
- Exclua o projeto do Google Cloud:
gcloud projects delete abap-sdk-poc
Excluir recursos individuais
- Exclua as entradas de configuração da chave do cliente em IMG > Google Cloud > Configurações básicas > Configurar chave do cliente.
- Exclua as entradas de configuração do mapeamento de serviços em IMG > Google Cloud > Configurações básicas > Configurar chave do cliente.
- Exclua os destinos RFC ZGOOG_IAMCREDENTIALS e ZGOOG_VERTEX_AI.
- Excluir o programa de relatório
ZSENTIMENT_ANALYSIS
.
- Exclua a conta de serviço.
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com