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, in base alle esigenze:
- 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:
- Eseguire l'autenticazione utilizzando una chiave API tramite una classe di autenticazione personalizzata
- Eseguire l'autenticazione utilizzando una chiave API memorizzata in Secret Manager
Esegui l'autenticazione utilizzando una chiave API tramite una classe di autenticazione personalizzata
Puoi creare una classe di autenticazione personalizzata per conservare la tua chiave API e configurare una chiave client con la classe di autenticazione personalizzata.
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 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 di esempio
Puoi esplorare le funzionalità dell'API Gemini eseguendo il seguente codice di esempio:
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.
- 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.