L'API Generative Language de Google permet de créer des prototypes fluides à l'aide des modèles Gemini. Il vous permet de tester et d'explorer les fonctionnalités des modèles Gemini sans avoir à configurer une infrastructure complexe ni à gérer le déploiement des modèles. L'outil de prototypage intégré au navigateur de Google, Google AI Studio, utilise l'API Generative Language pour permettre le prototypage intégré au navigateur avec des modèles génératifs.
Avec le SDK Vertex AI pour ABAP, vous pouvez utiliser l'API de langage génératif (API Gemini) pour commencer votre parcours de prototypage, directement depuis votre environnement ABAP. Vous avez besoin d'une clé API générée à partir de Google AI Studio pour accéder aux modèles Gemini. Vous ne devez générer cette clé API qu'une seule fois.
Générer une clé API
La clé API que vous générez à partir de Google AI Studio vous permet de vous authentifier facilement auprès de l'API Gemini.
Pour générer une clé API, procédez comme suit:
Dans Google AI Studio, ouvrez la page Clés API.
Cliquez sur Créer une clé API.
Si c'est le cas, lisez et acceptez l'avis juridique, puis cliquez sur Continuer.
Si la valeur est renseignée, lisez et confirmez le rappel sur les paramètres de sécurité.
Dans la boîte de dialogue Créer une clé API, sélectionnez l'une des options suivantes, selon le cas:
- Créer une clé API dans un nouveau projet
- Créer une clé API dans un projet existant
Copiez votre chaîne de clé et conservez-la à un emplacement sécurisé. Vous avez besoin de cette clé API pour configurer l'authentification auprès de l'API Gemini.
Copiez le numéro de projet du projet Google Cloud dans lequel la clé API est générée. Vous en aurez besoin plus tard.
Configurer l'authentification
Pour vous authentifier auprès de l'API Gemini à l'aide d'une clé API, appliquez l'une des méthodes suivantes:
- Pour l'édition sur site ou toute édition cloud du SDK ABAP pour Google Cloud :
- Pour l'édition SAP BTP du SDK ABAP pour Google Cloud :
S'authentifier à l'aide d'une clé API stockée dans SAP SSF
Pour sécuriser votre clé API, vous pouvez la stocker dans SAP SSF et configurer une clé client avec la classe d'authentification SSF. Vous pouvez utiliser cette clé cliente pour accéder à l'API Gemini. Pour en savoir plus, consultez les pages suivantes :
S'authentifier à l'aide d'une clé API via une classe d'authentification personnalisée
Vous pouvez également créer une classe d'authentification personnalisée pour conserver votre clé API et configurer une clé client avec la classe d'authentification personnalisée.
Sur site ou dans n'importe quelle édition cloud
Dans votre système SAP, créez une classe
Z
en implémentant l'interface/GOOG/IF_AUTH
fournie avec le SDK ABAP pour Google Cloud:- Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction
SE24
. - Dans le champ Type d'objet, saisissez un nom (par exemple,
Z_TEST_GEMINI_API
), puis cliquez sur Créer. - Assurez-vous que le type d'objet est Classe, puis cliquez sur OK.
- Dans le champ Description, indiquez une description de la classe, par exemple
Class for authentication to Google AI Studio
, puis enregistrez la classe en tant qu'objet local ou dans une requête de transport. - Ouvrez l'onglet Interfaces, ajoutez l'interface
/GOOG/IF_AUTH
, puis appuyez sur Entrée. - Ouvrez l'onglet Méthodes. Les méthodes de l'interface
/GOOG/IF_AUTH
sont automatiquement implémentées dans la classeZ
. - Double-cliquez sur la méthode
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
. Dans la méthode
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
, ajoutez le code suivant:ev_auth_type = /goog/if_auth=>c_auth_type_apik_ssf. cv_token = 'API_KEY'. GET TIME STAMP FIELD ev_logtime.
Remplacez
API_KEY
par la clé API que vous avez générée dans Google AI Studio.Activez votre classe
Z
.
- Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction
Dans le système SAP, créez une configuration de clé client:
Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction
/GOOG/SDK_IMG
.Vous pouvez également exécuter le code de transaction
SPRO
, puis cliquer sur SAP Reference IMG (IMG de référence SAP).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 Spécifiez un nom de configuration de clé client, par exemple TEST_GEMINI_API
.Nom du compte de service Google Cloud Laissez ce champ vide. Champ d'application Google Cloud Laissez ce champ vide. Identifiant de projet Google Cloud Spécifiez le numéro de projet du projet Google Cloud dans lequel la clé API est stockée. Nom de la commande Laissez ce champ vide. Classe d'autorisation Indiquez la classe Z
que vous avez créée à l'étape précédente, par exempleZ_TEST_GEMINI_API
.Mise en cache des jetons Laissez ce champ vide.
Secondes avant actualisation du jeton Laissez ce champ vide. Paramètre d'autorisation 1 Laissez ce champ vide. Paramètre d'autorisation 2 Laissez ce champ vide. - Enregistrez la nouvelle entrée.
Notez la clé client. Vous utilisez cette clé client pour l'authentification.
Édition SAP BTP
Dans votre environnement SAP BTP, ABAP, créez une classe en héritant de la classe
/GOOG/CL_AUTH_BASE
fournie avec le SDK ABAP pour Google Cloud:- Dans la plate-forme Eclipse, effectuez un clic droit sur le package dans lequel vous souhaitez créer une classe, puis cliquez sur New > ABAP Class (Nouveau > Classe ABAP).
- Dans le champ Nom, saisissez
ZCL_TEST_GEMINI_API
. - Dans le champ Description, saisissez
Authentication Class for testing Gemini API
. - Dans le champ Superclasse, saisissez
/GOOG/CL_AUTH_BASE
. - Cliquez sur Suivant.
- Sélectionnez une requête de transport ou créez-en une.
- Cliquez sur Terminer.
Dans l'éditeur, remplacez le code existant par le code suivant:
CLASS zcl_test_gemini_api DEFINITION PUBLIC INHERITING FROM /goog/cl_auth_base FINAL CREATE PUBLIC. PUBLIC SECTION. CONSTANTS: BEGIN OF c_com_scn_sdk, wif TYPE /goog/comm_scenario VALUE '/GOOG/COM_SDK_WIF', apik_sm TYPE /goog/comm_scenario VALUE '/GOOG/COM_SDK_APIKSM', END OF c_com_scn_sdk. METHODS get_access_token REDEFINITION. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_test_gemini_api IMPLEMENTATION. METHOD get_access_token. ev_auth_type = CONV #( apikey_sm ). ev_token = API_KEY. ENDMETHOD. ENDCLASS.
Remplacez
API_KEY
par la clé API que vous avez générée dans Google AI Studio.Activez votre classe
Z
.Accédez aux propriétés de cette classe, accédez à l'onglet État de l'API, puis publiez l'API avec l'état du contrat
C1
.Pour en savoir plus sur l'état de l'API, consultez la section Libérer des objets de développement.
Accéder à la plate-forme de lancement SAP Fiori du système BTP ABAP dans lequel le SDK ABAP pour Google Cloud est installé.
Accédez à l'application SDK Google: configuration principale, puis procédez comme suit:
- Cliquez sur Créer.
Dans la boîte de dialogue Create new entry (Créer une entrée), saisissez des valeurs pour les champs suivants:
Champ Description Nom de la clé Google Cloud Spécifiez un nom de configuration de clé client, par exemple GEMINI_QUICK_TEST
.Nom du compte de service Google Cloud Laissez ce champ vide. Champ d'application Google Cloud Laissez ce champ vide. Identifiant de projet Google Cloud Spécifiez l'ID du projet Google Cloud dans lequel vous avez créé la clé API. Numéro de projet Google Cloud Spécifiez le numéro de projet du projet Google Cloud dans lequel vous avez créé la clé API. Type d'authentification Sélectionnez Z
.Classe d'authentification Sélectionnez la classe ZCL_TEST_GEMINI_API
que vous avez créée à l'étape précédente.Enregistrez la nouvelle entrée.
Notez la clé client. Vous utilisez cette clé client pour l'authentification.
Exécuter un exemple de code
Sur site ou dans n'importe quelle édition cloud
Vous pouvez explorer les fonctionnalités de l'API Gemini à l'aide de la démonstration AI Studio fournie avec le SDK Vertex AI pour ABAP.
Pour exécuter la démonstration d'AI Studio, procédez comme suit:
Dans l'interface utilisateur graphique de SAP, exécutez le code de transaction
/GOOG/SDK_IMG
.Vous pouvez également exécuter le code de transaction
SPRO
, puis cliquer sur SAP Reference IMG (IMG de référence SAP).Accédez à SDK ABAP pour Google Cloud > Démonstrations.
Ouvrez SDK Vertex AI: Démo: prototypage avec l'API de langage génératif.
Dans le champ Clé client, saisissez la clé client que vous avez créée dans la section Configurer l'authentification.
Dans le champ ID du modèle, saisissez l'ID du modèle LLM que vous souhaitez utiliser, par exemple
gemini-1.5-flash
. Pour en savoir plus sur les modèles disponibles, consultez la section Variantes de modèle.Vous pouvez éventuellement fournir les paramètres de génération suivants, le cas échéant:
- Nombre maximal de jetons de sortie
- Type MIME de la réponse
- Température
- TopK
- TopP
Pour en savoir plus sur ces paramètres de génération de modèles, consultez la section Tester les valeurs de paramètres.
Dans le champ Saisir les instructions système, indiquez une instruction système.
Dans le champ Saisir la requête, indiquez votre requête.
Exécutez le programme. La zone Réponse du LLM affiche la sortie générée.
Édition SAP BTP
Vous pouvez explorer les fonctionnalités de l'API Gemini en exécutant l'exemple de code suivant:
Dans la plate-forme Eclipse, effectuez un clic droit sur le package dans lequel vous souhaitez créer une classe, puis cliquez sur New > ABAP Class (Nouveau > Classe ABAP).
Dans le champ Nom, saisissez
ZCL_INVOKE_LLM
.Dans le champ Description, saisissez
Sample class for testing Gemini API
.Cliquez sur Suivant.
Sélectionnez une demande de transport ou créez-en une.
Cliquez sur Terminer.
Dans l'éditeur, remplacez le code existant par le code suivant:
CLASS zcl_invoke_llm DEFINITION PUBLIC FINAL CREATE PUBLIC. PUBLIC SECTION. INTERFACES if_oo_adt_classrun. ENDCLASS. CLASS zcl_invoke_llm IMPLEMENTATION. METHOD if_oo_adt_classrun~main. DATA lv_sys_instruction TYPE string. DATA lv_client_key TYPE /goog/keyname. DATA lv_model_id TYPE string. DATA lv_max_tokens TYPE int4. DATA lv_resp_mime_type TYPE string. DATA lv_prompt TYPE string. DATA lv_temperature TYPE /goog/num_float. DATA lv_top_k TYPE int4. DATA lv_top_p TYPE /goog/num_float. DATA ls_input TYPE /goog/cl_generativelang_v1beta=>ty_045. DATA ls_output TYPE /goog/cl_generativelang_v1beta=>ty_046. DATA ls_part TYPE /goog/cl_generativelang_v1beta=>ty_068. DATA lt_parts TYPE /goog/cl_generativelang_v1beta=>ty_t_068. DATA ls_content TYPE /goog/cl_generativelang_v1beta=>ty_018. DATA lv_msg TYPE string. DATA ls_raw TYPE string. DATA lv_err_msg TYPE string. DATA lo_cx_sdk TYPE REF TO /goog/cx_sdk. " TODO Developer: Set values for Mandatory Fields lv_model_id = 'gemini-1.5-flash'. " You can also change the Model ID of your choosing lv_client_key = 'GEMINI_QUICK_TEST'. " Client key configured " TODO Developer: Set values for Optional Fields, if required " lv_temperature = " lv_top_k = " lv_top_p = " lv_max_tokens = " TODO Developer: (Optional) Set the System Instruction lv_sys_instruction = 'You are an Italian Chef in a 5 Star Restaurant'. " TODO Developer: (Mandatory) Set the Prompt lv_prompt = 'Give me a recipe to make Margarita Pizza'. IF lv_temperature IS NOT INITIAL. ls_input-generation_config-temperature = lv_temperature. ENDIF. IF lv_top_k IS NOT INITIAL. ls_input-generation_config-top_k = lv_top_k. ENDIF. IF lv_top_p IS NOT INITIAL. ls_input-generation_config-top_p = lv_top_p. ENDIF. IF lv_max_tokens IS NOT INITIAL. ls_input-generation_config-max_output_tokens = lv_max_tokens. ENDIF. IF lv_sys_instruction IS NOT INITIAL. ls_input-system_instruction-role = 'system'. ls_part-text = lv_sys_instruction. APPEND ls_part TO ls_input-system_instruction-parts. CLEAR ls_part. ENDIF. ls_content-role = 'user'. IF lv_prompt IS NOT INITIAL. ls_part-text = lv_prompt. APPEND ls_part TO ls_content-parts. CLEAR ls_part. ENDIF. APPEND ls_content TO ls_input-contents. CLEAR ls_content. TRY. DATA(lo_llm_invoker) = NEW /goog/cl_generativelang_v1beta( iv_key_name = lv_client_key ). CATCH /goog/cx_sdk INTO lo_cx_sdk. lv_err_msg = lo_cx_sdk->get_text( ). out->write( |Exception occurred, reason: { lv_err_msg }| ). ENDTRY. TRY. lo_llm_invoker->generate_content_models( EXPORTING iv_p_models_id = lv_model_id is_input = ls_input IMPORTING es_raw = ls_raw es_output = ls_output ev_ret_code = DATA(lv_ret_code) ev_err_text = DATA(lv_err_text) es_err_resp = DATA(ls_err_resp) ). CATCH /goog/cx_sdk INTO lo_cx_sdk. lv_err_msg = lo_cx_sdk->get_text( ). out->write( |Exception occurred, reason: { lv_err_msg }| ). RETURN. ENDTRY. IF lo_llm_invoker->is_success( lv_ret_code ) = abap_true. ASSIGN ls_output-candidates[ 1 ] TO FIELD-SYMBOL(<ls_candidate>). IF sy-subrc = 0. lt_parts = <ls_candidate>-content-parts. ASSIGN lt_parts[ 1 ] TO FIELD-SYMBOL(<ls_part>). IF sy-subrc = 0. DATA(lv_response) = <ls_part>-text. out->write( lv_response ). ELSE. out->write( |Model stopped generating response due to finish reason: { <ls_candidate>-finish_reason }| ). out->write( |Read more about finish reason in the below link:| ). out->write( |https://cloud.google.com/vertex-ai/docs/reference/rest/v1/GenerateContentResponse#FinishReason| ). ENDIF. ENDIF. ELSE. out->write( |Error occurred, reason: { lv_ret_code }:{ lv_err_text }| ). ENDIF. ENDMETHOD. ENDCLASS.
Activez votre cours.
Exécutez le code ABAP.
Créer des prototypes de cas d'utilisation de l'IA à l'aide d'ABAP
Vous pouvez créer des prototypes d'applications SAP à l'aide des classes /GOOG/CL_GENERATIVELANGUAGE_V1
et /GOOG/CL_GENERATIVELANG_V1BETA
fournies avec le SDK. Vous pouvez appeler ces classes à partir de votre environnement ABAP à l'aide de la clé client que vous avez créée dans la section Configurer l'authentification.
Étape suivante
- Découvrez comment installer et configurer le SDK Vertex AI pour ABAP.
- Découvrez les programmes de démonstration d'IA générative intégrés pour SAP.
- Découvrez l'IA générative sur Vertex AI pour SAP.
- Posez vos questions et discutez du SDK Vertex AI pour ABAP avec la communauté sur les forums Cloud.