Este documento apresenta uma visão geral de como usar a chamada de função SAP com Gemini, usando o SDK da Vertex AI para ABAP no seu ambiente SAP BTP, ABAP.
É possível definir funções personalizadas e fornecê-las aos modelos Gemini usando o recurso Chamada de função. Os modelos não invocam diretamente as funções personalizadas, mas geram uma saída de dados estruturados que especifica o nome da função e os argumentos sugeridos. Essa saída permite que você escreva apps que usam a saída estruturada e chamam APIs externas. A saída da API resultante pode ser incorporada a outro comando do modelo, permitindo respostas de consulta mais abrangentes.
O SDK da Vertex AI para ABAP simplifica a chamada de função para desenvolvedores ABAP, oferecendo oportunidades para invocar a lógica personalizada escrita em módulos de função SAP:
- Transmitir o nome do módulo de função da SAP ou do serviço OData (protocolo de dados aberto) para o modelo como declarações de função, descrevendo o nome da função ou do serviço, a finalidade deles e os parâmetros relacionados.
- Definir a invocação automática do módulo de função do SAP ou do serviço OData implicitamente ao invocar o modelo.
Antes de começar
Antes de usar o SDK da Vertex AI para ABAP para chamar funções SAP com o Gemini, verifique se você ou seus administradores concluíram os seguintes pré-requisitos:
- Ativar a API Vertex AI no seu projeto do Google Cloud.
- Instalou o SDK da Vertex AI para ABAP no seu ambiente SAP.
- Configure a autenticação para acessar a API Vertex AI.
- Configurou os parâmetros de geração de modelos.
Enriquecer o contexto do modelo Gemini AI com dados SAP invocando um módulo de função SAP
Esta seção explica como enriquecer o contexto do modelo de IA do Gemini com dados do SAP invocando um módulo de função do SAP.
Confira a seguir a jornada típica de um desenvolvedor ABAP para invocar um módulo de função do SAP:
- O usuário fornece uma solicitação de entrada.
- O SDK transmite o comando de entrada e as declarações de função para o modelo.
- O modelo analisa o comando e as funções declaradas para derivar a função a ser chamada e sugere os valores de parâmetro para chamar a função.
- Se a invocação automática estiver definida, o SDK vai chamar o módulo de função SAP.
- Em seguida, o SDK invoca o modelo com a saída da função chamada.
- O modelo responde com uma resposta confiável para a solicitação final enriquecida com a saída da função chamada.
- O SDK retorna a resposta para o usuário.
Se você optar por não invocar automaticamente os módulos de função do SAP, o SDK permitirá que você use o recurso de chamada de função sem nenhuma invocação de módulo de função do SAP. Nesse caso, siga o fluxo de trabalho típico de chamadas de função para usar ferramentas externas, como APIs e funções.
Criar a classe de invocação multimodal do Gemini
Para invocar a chamada de função no SAP, use a classe /GOOG/CL_GENERATIVE_MODEL
.
Você instancia a classe
transmitindo a chave de modelo configurada nos parâmetros de geração de modelos.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
Substitua MODEL_KEY
pelo nome da chave do modelo, que é configurado
nos parâmetros de geração de modelo.
Criar um módulo de função SAP
Para criar um módulo de função do SAP para invocação automática pelo SDK, siga o esquema fornecido:
Categoria | Nome do parâmetro | Tipo associado |
---|---|---|
Importando | IT_FUNCTION_PARAMETERS |
/GOOG/T_FUNCTION_PARAMETERS |
Exportando | EV_FUNCTION_RESPONSE |
STRING |
Alterando | CV_PROMPT |
STRING |
Exceções | /GOOG/CX_SDK |
Exception Class |
Com base nos parâmetros de importação, escreva sua lógica personalizada no módulo de função,
que pode buscar dados do SAP por meio de consultas SELECT
ou chamar uma API ou um módulo externo
para receber as informações ausentes.
Defina o parâmetro de exportação EV_FUNCTION_RESPONSE
com as informações
para feedback ao contexto do LLM. Também é possível mudar ou modificar o texto do comando
em CV_PROMPT
com base na lógica personalizada e no requisito de negócios para
instruir o LLM com base em diferentes cenários de negócios.
Adicionar declaração de função
Para adicionar uma declaração de função ao contexto da LLM, use o
método ADD_FUNCTION_DECLARATION
. Chame o método ADD_FUNCTION_DECLARATION
sempre que precisar adicionar uma função ao contexto.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
lo_model->add_function_declaration( iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters ).
Substitua:
PARAMETER_NAME
: nome do parâmetro.PARAMETER_TYPE
: o tipo de dados do parâmetro, comostring
,integer
ouboolean
.PARAMETER_DESCRIPTION
: uma explicação clara da finalidade e do formato esperado do parâmetro.PARAMETER_IS_REQUIRED
: se esse parâmetro for obrigatório para a função funcionar, defina o valor comoABAP_TRUE
.FUNCTION_MODULE_NAME
: nome do módulo de função da SAP.FUNCTION_MODULE_DESCRIPTION
: descrição do módulo de função do SAP.
Também é possível declarar uma função sem parâmetros, que pode servir como uma função de substituição ou de backup. Se uma solicitação do usuário não fornecer informações suficientes para chamar uma função específica, você poderá instruir o Gemini a selecionar essa função alternativa.
Definir a invocação automática do módulo de função SAP
Para definir a invocação automática da
função SAP selecionada pelo modelo, use o
método SET_AUTO_INVOKE_SAP_FUNCTION
.
Se ABAP_TRUE
for transmitido no parâmetro de importação IV_AUTO_INVOKE
, o módulo de função será invocado pelo SDK e a resposta dele será
incluída com o contexto do LLM para gerar a resposta final.
Defina o módulo de função seguindo o esquema descrito na seção Criar módulo de função do SAP.
lo_model->set_auto_invoke_sap_function( abap_true ).
Gerar conteúdo com chamadas de função
Para transmitir o texto do comando ao
modelo Gemini, use o método GENERATE_CONTENT
.
Para receber a resposta gerada pelo Gemini com o contexto adicional adicionado do módulo de função SAP por meio de chamadas de função, use o método GET_TEXT
.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
Substitua PROMPT
pelo comando de texto.
Conseguir o nome da função selecionada e os valores do parâmetro
Para receber a função selecionada pelo Gemini
(entre as funções declaradas) e os parâmetros sugeridos,
use o método GET_FUNCTION_CALL
.
DATA(lo_response) = lo_model_key->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text = 'PROMPT' ).
lo_response->get_function_call( IMPORTING ev_function_name = DATA(lv_function_name)
et_function_parameters = DATA(lt_function_parameters) ).
Substitua PROMPT
pelo comando de texto.
É possível conferir o nome da função selecionada do Gemini em
LV_FUNCTION_NAME
e os parâmetros sugeridos em LT_FUNCTION_PARAMETERS
.
Você pode usar essas informações para validar, acompanhar e registrar ações do Gemini
de acordo com as diretrizes de informações de segurança e gerenciamento de eventos da sua empresa.
Exemplo de código
O exemplo de código abaixo ilustra como usar a chamada de função SAP para receber uma resposta final do modelo.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
TRY.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
DATA(lv_response) = lo_model->add_function_declaration(
iv_name = 'FUNCTION_MODULE_NAME'
iv_description = 'FUNCTION_MODULE_DESCRIPTION'
it_parameters = lt_parameters
)->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
IF lv_response IS NOT INITIAL.
cl_demo_output=>display( lv_response ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.
Substitua:
MODEL_KEY
: o nome da chave do modelo, que é configurado nos parâmetros de geração de modelos.PARAMETER_NAME
: nome do parâmetro.PARAMETER_TYPE
: o tipo de dados do parâmetro, comostring
,integer
ouboolean
.PARAMETER_DESCRIPTION
: uma explicação clara da finalidade e do formato esperado do parâmetro.PARAMETER_IS_REQUIRED
: se esse parâmetro for obrigatório para a função funcionar, defina o valor comoABAP_TRUE
.FUNCTION_MODULE_NAME
: nome do módulo de função da SAP.FUNCTION_MODULE_DESCRIPTION
: descrição do módulo de função do SAP.PROMPT
: o texto do comando.
Enriquecer o contexto do modelo Gemini AI com dados SAP invocando um serviço OData
Esta seção explica como enriquecer o contexto do modelo de IA do Gemini com dados da SAP invocando um serviço OData.
Confira a seguir uma jornada típica de um desenvolvedor ABAP para invocar um serviço OData:
- O usuário fornece uma solicitação de entrada.
- O SDK transmite o comando de entrada e as declarações de função para o modelo.
- O modelo analisa o comando e as funções declaradas para derivar a função a ser chamada e sugere os valores de parâmetro para chamar a função.
- Se a invocação automática estiver definida, o SDK vai chamar o serviço OData.
- Em seguida, o SDK invoca o modelo com a saída do serviço OData chamado.
- O modelo responde com uma resposta confiável para a solicitação final enriquecida com a saída do serviço OData chamado.
- O SDK retorna a resposta para o usuário.
Se você optar por não invocar automaticamente os serviços do OData, o SDK vai permitir que você use o recurso de chamada de função sem nenhuma invocação de serviço do OData. Nesse caso, siga o fluxo de trabalho típico de chamadas de função para usar ferramentas externas, como APIs e funções.
Criar um serviço OData
Para criar um serviço OData para invocação automática pelo SDK como uma função, use o seguinte esquema:
{
"UserRequest": "Input Prompt as user request",
"FunctionResponse": null,
"ModifiedUserRequest": null,
"ContextParameters": [
{
"ParameterName": "Parameter 1",
"ParameterValue": "Value 1"
},
{
"ParameterName": "Parameter 2",
"ParameterValue": "Value 2"
}
]
}
A tabela a seguir fornece informações sobre os campos usados neste esquema:
Campo do esquema | Tipo de campo | Modo de entrada/saída | Descrição |
---|---|---|---|
UserRequest |
String |
Somente entrada | O comando de entrada inserido pelo usuário. |
FunctionResponse |
String |
Somente saída. | A saída do serviço OData. Ele pode ser um único valor ou uma string JSON serializada. |
ModifiedUserRequest |
String |
Somente saída. | O UserRequest modificado, que é alimentado ao
Gemini como o comando. |
ContextParameters |
Table of parameters |
Somente entrada | A tabela de parâmetros, que inclui nomes e valores de parâmetros. |
ParameterName |
String |
Somente entrada | Nome do parâmetro da função. |
ParameterValue |
String |
Somente entrada | Valor do parâmetro da função, conforme sugerido pelo Gemini. |
Criar as entidades de serviço OData
Crie uma entidade usando o esquema anterior.
Essa entidade aceita a solicitação do usuário como um comando, a encaminha para o Gemini e é declarada como uma função usando o SDK da Vertex AI para ABAP. Essa entidade também carrega a resposta da função OData do sistema SAP de back-end para o BTP, que é então aumentada para o contexto do modelo Gemini AI.
- Defina um nome apropriado para o novo item.
Defina os valores dos seguintes atributos. Mantenha os valores padrão para todos os outros atributos.
Nome É chave? Tipo de núcleo da EDM Nome do campo ABAP UserRequest
Sim Edm.String
USER_REQUEST FunctionResponse
Não Edm.String
FUNCTION_RESPONSE ModifiedUserRequest
Não Edm.String
MODIFIED_USER_REQUEST
Se você quiser colocar mais entidades no mesmo serviço OData, crie-as usando o mesmo esquema.
Crie outra entidade chamada
ContextParameters
com os seguintes atributos. Mantenha os valores padrão para todos os outros atributos.Essa entidade contém os parâmetros de função e os valores fornecidos pelo modelo Gemini.
Nome É chave? Tipo de núcleo da EDM Nome do campo ABAP ParameterName
Sim Edm.String
PARAMETER_NAME ParameterValue
Sim Edm.String
PARAMETER_VALUE Crie conjuntos de entidades para todas as entidades que você criou como parte das etapas anteriores.
Crie uma associação entre cada entidade criada na etapa 1 e a entidade
ContextParameters
criada na etapa 2 da seguinte maneira:- Defina um nome para a associação.
- No campo Principal Entity, defina o nome da entidade que você criou na etapa 1.
- No campo Cardinalidade da entidade principal, defina
M
. - No campo Entidade dependente, defina
ContextParameters
. - No campo Cardinalidade de entidade dependente, defina
M
. - Salve e gere os artefatos do ambiente de execução do OData.
Adicione o serviço OData criado no SAP Gateway e ative o nó ICF.
Gere o arquivo EDMX para os metadados do OData da seguinte maneira:
- Acesse TCode /iwfnd/maint_services e receba os metadados do serviço OData.
- Formate e salve o XML gerado com a extensão de arquivo
.edmx
.
Escrever a lógica da função OData
Na classe
MPC_EXT
gerada, adicione e ative um tipo de entidade profunda:TYPES: BEGIN OF ts_function_deep_entity, user_request TYPE string, function_response TYPE string, modified_user_request TYPE string, context_parameters TYPE TABLE OF ts_contextparameters WITH DEFAULT KEY, END OF ts_function_deep_entity.
Redefina o método
CREATE_DEEP_ENTITY
da classeDPC_EXT
gerada seguindo estas etapas:- Se você criou mais de uma entidade OData na seção
Criar as entidades de serviço OData,
adicione uma instrução
CASE
para cada entidade OData. - Escreva a lógica ABAP para
get
ouprepare
a resposta para aumentar o contexto do Gemini no aplicativo BTP. - No campo FUNCTION_RESPONSE, defina a resposta.
- No campo MODIFIED_USER_REQUEST, defina o comando modificado.
- Ao usar o método OData
COPY_DATA_TO_REF
, vincule a resposta geral na mensagem.
O snippet a seguir é um exemplo de lógica ABAP:
TRY. DATA: ls_request TYPE <z*_mpc_ext>=>ts_function_deep_entity. CASE io_tech_request_context->get_entity_type_name( ). WHEN <z*_mpc_ext>=>gc_ENTITY_NAME. CALL METHOD io_data_provider->read_entry_data IMPORTING es_data = ls_request. <ABAP logic to formulate OData function response> ls_request-modified_user_request = 'MODIFIED_GEMINI_PROMPT'. ls_request-function_response = 'ODATA_FUNCTION_RESPONSE'. CALL METHOD me->copy_data_to_ref EXPORTING is_data = ls_request CHANGING cr_data = er_deep_entity. ENDCASE. CATCH /iwbep/cx_mgw_busi_exception. CATCH /iwbep/cx_mgw_tech_exception. ENDTRY. ```
- Se você criou mais de uma entidade OData na seção
Criar as entidades de serviço OData,
adicione uma instrução
Substitua:
ENTITY_TYPE
: o nome da entidade OData que você criou na etapa 1 da seção Criar as entidades de serviço OData.MODIFIED_GEMINI_PROMPT
: a solicitação modificada fornecida pelo GeminiODATA_FUNCTION_RESPONSE
: a resposta fornecida pelo serviço OData
Se você tiver mais de um campo ou uma estrutura ou tabela aninhada para ser transmitida como
a resposta da função, será possível serializar o tipo ABAP em uma string
usando o método SERIALIZE_JSON
da classe /GOOG/CL_JSON_UTIL
do SDK.
Definir o serviço OData como um modelo de consumo de serviço no SAP BTP
Depois de criar o serviço OData, você precisa defini-lo como um modelo de consumo de serviço no seu ambiente do SAP BTP. Para isso, crie um modelo de consumo de serviço, um serviço de saída HTTP, um cenário de comunicação e um arranjo de comunicação.
Criar um modelo de consumo de serviço
- No projeto ABAP, abra o menu de contexto e selecione New > Other ABAP Repository Object > Business Services > Service Consumption Model.
- Na janela New Service Consumption Model, siga estas
etapas:
- No campo Package, selecione e faça upload do arquivo EDMX que você gerou anteriormente em uma seção anterior.
- Digite um nome e uma descrição.
- No campo Modo de consumo remoto, selecione OData.
- Clique em Concluir.
Criar um serviço de saída HTTP
- No projeto ABAP, abra o menu de contexto.
- Selecione o pacote e clique em New > Other ABAP Repository Object.
- No campo Tipo de serviço, selecione Serviço HTTP.
No campo Prefixo de caminho padrão, insira o prefixo de caminho do seu serviço OData no sistema SAP de back-end.
Para descobrir o prefixo do caminho OData, acesse o Cliente do gateway SAP. O valor mostrado no campo Request URI é o prefixo do caminho do seu serviço OData.
Clique em Próxima.
Criar um cenário de comunicação
Depois de criar um serviço de saída HTTP, crie um cenário de comunicação e atribua o serviço de saída a ele. Para isso, execute as seguintes etapas:
- No seu projeto ABAP, selecione Cenário de comunicação e clique em Próxima.
- Na janela New Communication Scenario, siga estas etapas:
- Digite um nome e uma descrição.
- Clique em Próxima.
- No campo Communication scenario type, selecione Customer managed.
- Acesse a guia Saída.
- No campo Instâncias permitidas, selecione Uma instância por cenário e sistema de comunicação.
- No campo Métodos de autenticação compatíveis, selecione as seguintes caixas de seleção: Básico, X.509 e OAuth 2.0.
- No campo Tipo de concessão do OAuth 2.0, selecione Declaração de portador do SAML 2.0.
- Na seção Serviços de saída, clique em Adicionar e selecione o serviço de saída que você criou na seção anterior.
- Na seção Serviço de saída, verifique se o Prefixo de caminho padrão está correto. Caso contrário, clique em Sincronizar.
- Salve o cenário de comunicação.
Criar um acordo de comunicação
- Acesse a plataforma de lançamento do SAP Fiori do sistema BTP ABAP em que o ABAP SDK for Google Cloud está instalado.
Abra o app Communication Arrangement.
- Clique em Novo.
Na caixa de diálogo New Communication Arrangement que é exibida, insira um valor para os seguintes campos:
- Cenário: selecione o cenário de comunicação que você criou na seção Criar um cenário de comunicação.
- Nome do acordo: insira um nome para o acordo de comunicação.
Clique em Criar.
Para o acordo de comunicação No campo que é exibido, no campo Sistema de comunicação, selecione o sistema de comunicação que você criou na etapa anterior.
Clique em Salvar.
Instânciar a classe de invocação multimodal do Gemini
Para invocar a chamada de função no SAP, use a classe /GOOG/CL_GENERATIVE_MODEL
.
Para instanciar a classe, transmita a chave de modelo configurada nos
parâmetros de geração de modelos.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
Substitua MODEL_KEY
pelo nome da chave do modelo, que é
configurado nos
parâmetros de geração de modelos.
Adicionar declaração de função
Para adicionar um serviço OData como uma declaração de função ao contexto da LLM, use
o método ADD_FUNCTION_DECLARATION
. Chame o método ADD_FUNCTION_DECLARATION
sempre que precisar adicionar um serviço OData como uma função ao contexto.
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
DATA ls_connection_parameters TYPE /goog/cl_generative_model=>ty_connection_parameters.
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
ls_connection_parameters-connection_type = 'ODATA'.
ls_connection_parameters-comm_scenario = 'COMMUNICATION_SCENARIO'.
ls_connection_parameters-service_id = 'ODATA_SERVICE_ID'.
ls_connection_parameters-proxy_model_id = 'ODATA_SERVICE_CONSUMPTION_MODEL_ID'.
ls_connection_parameters-relative_service_root = 'ODATA_ROOT_URI'.
ls_connection_parameters-entity_set_name = 'ODATA_ENTITY_SET_NAME'.
lo_model->add_function_declaration( iv_name = 'FUNCTION_NAME'
iv_description = 'FUNCTION_DESCRIPTION'
it_parameters = lt_parameters
is_connection_parameters = ls_connection_parameters ).
Substitua:
PARAMETER_NAME
: o nome do parâmetroPARAMETER_TYPE
: o tipo de dados do parâmetro, comostring
,integer
ouboolean
.PARAMETER_DESCRIPTION
: uma explicação clara da finalidade e do formato esperado do parâmetroPARAMETER_IS_REQUIRED
: define o valor comoABAP_TRUE
se esse parâmetro for obrigatório para a função funcionar.COMMUNICATION_SCENARIO
: o ID do cenário de comunicação que você criou.ODATA_SERVICE_ID
: o ID do serviço de saída que você criou para o serviço ODataODATA_SERVICE_CONSUMPTION_MODEL_ID
: o ID do modelo de consumo de serviço que você criou para o serviço OData.ODATA_ROOT_URI
: o URI raiz do serviço OData no back-end do sistema SAPODATA_ENTITY_SET_NAME
: o nome do conjunto de entidades do serviço OData que será declarado como uma funçãoFUNCTION_NAME
: o nome da função que você declarou para o serviço OData que você quer usarFUNCTION_DESCRIPTION
: a descrição da função que você declarou para o serviço OData que quer usar
Definir a invocação automática do serviço OData
Para definir a invocação automática do serviço OData da função SAP selecionado pelo
modelo Gemini, use o método SET_AUTO_INVOKE_SAP_FUNCTION
.
Se ABAP_TRUE
for transmitido no parâmetro de importação IV_AUTO_INVOKE
, o módulo de função será invocado pelo SDK e a resposta dele será
incluída com o contexto do LLM para gerar a resposta final.
Defina o módulo de função seguindo o esquema descrito na seção Criar módulo de função do SAP.
lo_model->set_auto_invoke_sap_function( abap_true ).
Gerar conteúdo com chamadas de função
Para transmitir o texto do comando ao
modelo Gemini, use o método GENERATE_CONTENT
.
Para receber a resposta gerada pelo Gemini com o contexto adicional adicionado do módulo de função SAP por meio de chamadas de função, use o método GET_TEXT
.
DATA(lv_response) = lo_model->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
Substitua PROMPT
pelo comando de texto.
Conseguir o nome da função selecionada e os valores do parâmetro
Para receber a função selecionada pelo Gemini
(entre as funções declaradas) e os parâmetros sugeridos,
use o método GET_FUNCTION_CALL
.
DATA(lo_response) = lo_model_key->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text = 'PROMPT' ).
lo_response->get_function_call( IMPORTING ev_function_name = DATA(lv_function_name)
et_function_parameters = DATA(lt_function_parameters) ).
Exemplo de código
O exemplo de código a seguir ilustra como usar a chamada de função SAP com um serviço OData para receber uma resposta final do modelo:
DATA lt_parameters TYPE /goog/cl_generative_model=>tt_parameter_properties.
DATA ls_connection_parameters TYPE /goog/cl_generative_model=>ty_connection_parameters.
TRY.
DATA(lo_model) = NEW /goog/cl_generative_model( iv_model_key = 'MODEL_KEY' ).
APPEND VALUE #( parameter_name = 'PARAMETER_NAME'
type = 'PARAMETER_TYPE'
description = 'PARAMETER_DESCRIPTION'
is_required = 'PARAMETER_IS_REQUIRED' ) TO lt_parameters.
ls_connection_parameters-connection_type = 'ODATA'.
ls_connection_parameters-comm_scenario = 'COMMUNICATION_SCENARIO'.
ls_connection_parameters-service_id = 'ODATA_SERVICE_ID'.
ls_connection_parameters-proxy_model_id = 'ODATA_SERVICE_CONSUMPTION_MODEL_ID'.
ls_connection_parameters-relative_service_root = 'ODATA_ROOT_URI'.
ls_connection_parameters-entity_set_name = 'ODATA_ENTITY_SET_NAME'.
DATA(lv_response) = lo_model_key->add_function_declaration(
iv_name = 'FUNCTION_NAME'
iv_description = 'FUNCTION_DESCRIPTION'
it_parameters = lt_parameters
is_connection_parameters = ls_connection_parameters
)->set_auto_invoke_sap_function( abap_true
)->generate_content( iv_prompt_text ='PROMPT'
)->get_text( ).
IF lv_response IS NOT INITIAL.
out->write( lv_response ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
out->write( lo_cx_sdk->get_text( ) ).
ENDTRY.
A seguir
- Saiba mais sobre o desenvolvimento de aplicativos com a edição SAP BTP do SDK ABAP for Google Cloud.
- Faça suas perguntas e converse sobre o SDK da Vertex AI para ABAP com a comunidade em Fóruns do Cloud.