L'API Generative Language di Google consente di creare prototipi senza problemi utilizzando i modelli Gemini. Ti consente di testare ed esplorare le funzionalità dei modelli Gemini senza dover configurare un'infrastruttura complessa o gestire il deployment dei modelli. Lo strumento di prototipazione basato su browser di Google Google AI Studio utilizza l'API Generative Language per abilitare la prototipazione basata su browser con modelli generativi.
Con l'SDK Vertex AI per ABAP, puoi utilizzare l'API di linguaggio generativo (API Gemini) per iniziare il tuo percorso di prototipazione direttamente dall'ambiente ABAP. Per accedere ai modelli Gemini, hai bisogno di una chiave API generata da Google AI Studio. Devi generare questa chiave API una sola volta.
Genera una chiave API
La chiave API generata da Google AI Studio offre un modo pratico per eseguire l'autenticazione nell'API Gemini.
Per generare una chiave API, svolgi i seguenti passaggi:
In Google AI Studio, apri la pagina Chiavi API.
Fai clic su Crea chiave API.
Se sono stati compilati, leggi e accetta l'avviso legale, poi fai clic su Continua.
Se compilato, leggi e conferma il promemoria relativo all'impostazione di sicurezza.
Nella finestra di dialogo Crea chiave API, seleziona una delle seguenti opzioni, come appropriato:
- Crea chiave API nel nuovo progetto
- Creare una chiave API in un progetto esistente
Copia la stringa della chiave e tienila al sicuro. Questa chiave API è necessaria per configurare l'autenticazione all'API Gemini.
Copia il numero del progetto Google Cloud in cui viene generata la chiave API. Servirà in un secondo momento.
Configura l'autenticazione
Per eseguire l'autenticazione nell'API Gemini utilizzando una chiave API, utilizza uno dei seguenti metodi:
- Per la versione on-premise o qualsiasi versione cloud di ABAP SDK for Google Cloud:
- Per la versione SAP BTP di ABAP SDK for Google Cloud:
Esegui l'autenticazione utilizzando una chiave API archiviata in SAP SSF
Per proteggere la chiave API, puoi archiviarla in SAP SSF e configurare una chiave client con la classe di autenticazione SSF. Puoi utilizzare questa chiave client per accedere all'API Gemini. Per ulteriori informazioni, vedi:
Esegui l'autenticazione utilizzando una chiave API tramite una classe di autenticazione personalizzata
In alternativa, puoi creare una classe di autenticazione personalizzata per conservare la chiave API e configurare una chiave client con la classe di autenticazione personalizzata.
Versione on-premise o qualsiasi versione cloud
Nel sistema SAP, crea una classe
Z
implementando l'interfaccia/GOOG/IF_AUTH
fornita con l'SDK ABAP per Google Cloud:- In SAP GUI, esegui il codice transazione
SE24
. - Nel campo Tipo di oggetto, digita un nome, ad esempio
Z_TEST_GEMINI_API
, quindi fai clic su Crea. - Assicurati che Tipo di oggetto sia Classe e poi fai clic su OK.
- Nel campo Descrizione, fornisci una descrizione della classe, ad esempio
Class for authentication to Google AI Studio
, quindi salvala come Oggetto locale o in una Richiesta di trasporto. - Apri la scheda Interfacce, aggiungi l'interfaccia
/GOOG/IF_AUTH
e premi Invio. - Apri la scheda Metodi. I metodi dell'interfaccia
/GOOG/IF_AUTH
vengono implementati automaticamente nella classeZ
. - Fai doppio clic sul metodo
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
. Nel metodo
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
, aggiungi il seguente codice:ev_auth_type = /goog/if_auth=>c_auth_type_apik_ssf. cv_token = 'API_KEY'. GET TIME STAMP FIELD ev_logtime.
Sostituisci
API_KEY
con la chiave API generata in Google AI Studio.Attiva il tuo corso
Z
.
- In SAP GUI, esegui il codice transazione
Nel sistema SAP, crea una configurazione della chiave client:
In SAP GUI, esegui il codice transazione
/GOOG/SDK_IMG
.In alternativa, esegui il codice transazione
SPRO
e poi fai clic su Immagine di riferimento SAP.Fai clic su ABAP SDK for Google Cloud > Impostazioni di base > Configura chiave client.
Fai clic su Nuove voci.
Inserisci i valori per i seguenti campi:
Campo Descrizione Nome della chiave Google Cloud Specifica un nome per la configurazione della chiave client, ad esempio TEST_GEMINI_API
.Nome dell'account di servizio Google Cloud Lascia vuoto questo campo. Ambito Google Cloud Lascia vuoto questo campo. Identificatore progetto Google Cloud Specifica il numero del progetto Google Cloud in cui è archiviata la chiave API. Nome comando Lascia vuoto questo campo. Classe di autorizzazione Specifica la classe Z
che hai creato nel passaggio precedente, ad esempioZ_TEST_GEMINI_API
.Memorizzazione nella cache dei token Lascia vuoto questo campo.
Secondi di aggiornamento token Lascia vuoto questo campo. Parametro di autorizzazione 1 Lascia vuoto questo campo. Parametro di autorizzazione 2 Lascia vuoto questo campo. - Salva la nuova voce.
Prendi nota della chiave client. Utilizza questa chiave client per l'autenticazione.
Versione SAP BTP
Nell'ambiente ABAP di SAP BTP, crea una nuova classe ereditando la classe
/GOOG/CL_AUTH_BASE
fornita con l'SDK ABAP per Google Cloud:- Nella piattaforma Eclipse, fai clic con il tasto destro del mouse sul pacchetto in cui vuoi creare una classe, quindi fai clic su Nuovo > Classe ABAP.
- Nel campo Nome, inserisci
ZCL_TEST_GEMINI_API
. - Nel campo Descrizione, inserisci
Authentication Class for testing Gemini API
. - Nel campo Superclass (Superclasse), inserisci
/GOOG/CL_AUTH_BASE
. - Fai clic su Avanti.
- Seleziona una Richiesta di trasporto o creane una nuova.
- Fai clic su Fine.
Nell'editor, sostituisci il codice esistente con il seguente:
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.
Sostituisci
API_KEY
con la chiave API che hai generato in Google AI Studio.Attiva il tuo corso
Z
.Vai alle proprietà di questa classe, vai alla scheda Stato API e poi rilascia l'API con lo stato del contratto
C1
.Per ulteriori informazioni sullo stato dell'API, consulta Releasing Development Objects.
Accedi al launchpad SAP Fiori del sistema ABAP BTP in cui è installato l'SDK ABAP per Google Cloud.
Accedi all'app Google SDK: Main Configuration (SDK Google: configurazione principale) ed esegui i seguenti passaggi:
- Fai clic su Crea.
Nella finestra di dialogo Crea nuova voce, inserisci i valori per i seguenti campi:
Campo Descrizione Nome della chiave Google Cloud Specifica un nome per la configurazione della chiave client, ad esempio GEMINI_QUICK_TEST
.Nome dell'account di servizio Google Cloud Lascia vuoto questo campo. Ambito Google Cloud Lascia vuoto questo campo. Identificatore progetto Google Cloud Specifica l'ID progetto del progetto Google Cloud in cui hai creato la chiave API. Numero del progetto Google Cloud Specifica il numero del progetto Google Cloud in cui hai creato la chiave API. Tipo di autenticazione Seleziona Z
.Authentication Class Seleziona il corso ZCL_TEST_GEMINI_API
che hai creato in un passaggio precedente.Salva la nuova voce.
Prendi nota della chiave client. Utilizza questa chiave client per l'autenticazione.
Esegui il codice campione
Versione on-premise o qualsiasi versione cloud
Puoi esplorare le funzionalità dell'API Gemini utilizzando la demo di AI Studio fornita con l'SDK Vertex AI per ABAP.
Per eseguire la demo di AI Studio, segui questi passaggi:
In SAP GUI, esegui il codice transazione
/GOOG/SDK_IMG
.In alternativa, esegui il codice transazione
SPRO
e poi fai clic su Immagine di riferimento SAP.Vai ad ABAP SDK for Google Cloud > Demo.
Apri SDK Vertex AI: demo: prototipazione con l'API di linguaggio generativo.
Nel campo Chiave client, inserisci la chiave client che hai creato nella sezione Configurare l'autenticazione.
Nel campo Model ID, inserisci l'ID del modello LLM che vuoi utilizzare, ad esempio
gemini-1.5-flash
. Per informazioni sui modelli disponibili, consulta Varianti del modello.Se vuoi, specifica i seguenti parametri di generazione, a seconda dei casi:
- Numero massimo di token di output
- Tipo MIME di risposta
- Temperatura
- TopK
- TopP
Per informazioni su questi parametri di generazione del modello, consulta Eseguire esperimenti con i valori dei parametri.
Nel campo Inserisci istruzioni di sistema, fornisci un'istruzione di sistema.
Nel campo Inserisci prompt, fornisci il prompt di input.
Esegui il programma. L'area Risposta dall'LLM mostra l'output generato.
Versione SAP BTP
Puoi esplorare le funzionalità dell'API Gemini eseguendo il seguente codice campione:
Nella piattaforma Eclipse, fai clic con il tasto destro del mouse sul pacchetto in cui vuoi creare una classe, quindi fai clic su Nuovo > Classe ABAP.
Nel campo Nome, inserisci
ZCL_INVOKE_LLM
.Nel campo Descrizione, inserisci
Sample class for testing Gemini API
.Fai clic su Avanti.
Seleziona una richiesta di trasporto o creane una nuova.
Fai clic su Fine.
Nell'editor, sostituisci il codice esistente con il seguente:
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.
Attiva il corso.
Esegui il codice ABAP.
Creare prototipi di casi d'uso dell'IA utilizzando ABAP
Puoi creare prototipi di applicazioni SAP utilizzando le classi /GOOG/CL_GENERATIVELANGUAGE_V1
e /GOOG/CL_GENERATIVELANG_V1BETA
fornite con l'SDK. Puoi richiamare queste classi dal tuo ambiente ABAP utilizzando la chiave client che hai creato nella sezione Configurare l'autenticazione.
Passaggi successivi
- Scopri come installare e configurare l'SDK Vertex AI per ABAP.
- Esplora i programmi di demo di IA generativa integrati per SAP.
- Scopri di più sull'IA generativa su Vertex AI per SAP.
- Poni le tue domande e discuti dell'SDK Vertex AI per ABAP con la community nei forum di Cloud.