Die Generative Language API von Google ermöglicht das nahtlose Prototyping mit den Gemini-Modellen. Sie können die Funktionen von Gemini-Modellen testen und erkunden, ohne eine komplexe Infrastruktur einrichten oder eine Modellbereitstellung verwalten zu müssen. Das browserbasierte Prototyping-Tool Google AI Studio von Google nutzt die Generative Language API, um browserbasiertes Prototyping mit generativen Modellen zu ermöglichen.
Mit dem Vertex AI SDK für ABAP können Sie die Generative Language API – Gemini API verwenden, um das Prototyping direkt in Ihrer ABAP-Umgebung zu starten. Sie benötigen einen API-Schlüssel, der in Google AI Studio generiert wurde, um auf die Gemini-Modelle zuzugreifen. Sie müssen diesen API-Schlüssel nur einmal generieren.
API-Schlüssel generieren
Der API-Schlüssel, den Sie in Google AI Studio generieren, bietet eine praktische Möglichkeit, sich bei der Gemini API zu authentifizieren.
So generieren Sie einen API-Schlüssel:
Öffnen Sie in Google AI Studio die Seite API-Schlüssel.
Klicken Sie auf API-Schlüssel erstellen.
Wenn das Feld ausgefüllt ist, lesen Sie den rechtlichen Hinweis und bestätigen ihn. Klicken Sie dann auf Weiter.
Wenn ein Wert angegeben ist, lesen und bestätigen Sie die Erinnerung zu Sicherheitseinstellungen.
Wählen Sie im Dialogfeld API-Schlüssel erstellen eine der folgenden Optionen aus:
- API-Schlüssel in neuem Projekt erstellen
- API-Schlüssel in einem vorhandenen Projekt erstellen
Kopieren Sie den Schlüsselstring und bewahren Sie ihn sicher auf. Sie benötigen diesen API-Schlüssel, um die Authentifizierung bei der Gemini API zu konfigurieren.
Kopieren Sie die Projektnummer des Google Cloud -Projekts, in dem der API-Schlüssel generiert wird. Sie benötigen diese Informationen in einem späteren Schritt.
Authentifizierung einrichten
Verwenden Sie eine der folgenden Methoden, um sich mit einem API-Schlüssel bei der Gemini API zu authentifizieren:
- Für die lokale oder eine beliebige Cloud-Version des ABAP SDK for Google Cloud:
- Für die SAP BTP-Version des ABAP SDK for Google Cloud:
Mit einem in SAP SSF gespeicherten API-Schlüssel authentifizieren
Um Ihren API-Schlüssel zu schützen, können Sie den generierten API-Schlüssel in SAP SSF speichern und einen Clientschlüssel mit der SSF-Authentifizierungsklasse konfigurieren. Sie können diesen Clientschlüssel verwenden, um auf die Gemini API zuzugreifen. Weitere Informationen finden Sie unter:
Mit einem API-Schlüssel über eine benutzerdefinierte Authentifizierungsklasse authentifizieren
Alternativ können Sie eine benutzerdefinierte Authentifizierungsklasse erstellen, um Ihren API-Schlüssel beizubehalten, und einen Clientschlüssel mit der benutzerdefinierten Authentifizierungsklasse konfigurieren.
Lokale oder beliebige Cloud-Version
Erstellen Sie in Ihrem SAP-System eine
Z
-Klasse, indem Sie die Schnittstelle/GOOG/IF_AUTH
implementieren, die mit dem ABAP SDK for Google Cloud geliefert wird:- Führen Sie in der SAP-GUI den Transaktionscode
SE24
aus. - Geben Sie im Feld Objekttyp einen Namen (z. B.
Z_TEST_GEMINI_API
) ein und klicken Sie dann auf Erstellen. - Achten Sie darauf, dass als Objekttyp Klasse ausgewählt ist, und klicken Sie dann auf OK.
- Geben Sie im Feld Beschreibung eine Beschreibung der Klasse ein, z. B.
Class for authentication to Google AI Studio
, und speichern Sie die Klasse als lokales Objekt oder in einer Transportanfrage - Öffnen Sie den Tab Interfaces (Schnittstellen), fügen Sie die Schnittstelle
/GOOG/IF_AUTH
hinzu und drücken Sie die Eingabetaste. - Öffnen Sie den Tab Methoden. Methoden der Schnittstelle
/GOOG/IF_AUTH
werden automatisch in die KlasseZ
implementiert. - Doppelklicken Sie auf die Methode
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
. Fügen Sie in der Methode
/GOOG/IF_AUTH~GET_ACCESS_TOKEN
den folgenden Code hinzu:ev_auth_type = /goog/if_auth=>c_auth_type_apik_ssf. cv_token = 'API_KEY'. GET TIME STAMP FIELD ev_logtime.
Ersetzen Sie
API_KEY
durch den API-Schlüssel, den Sie in Google AI Studio generiert haben.Aktiviere deinen
Z
-Kurs.
- Führen Sie in der SAP-GUI den Transaktionscode
Erstellen Sie im SAP-System eine Clientschlüsselkonfiguration:
Führen Sie in der SAP-GUI den Transaktionscode
/GOOG/SDK_IMG
aus.Alternativ können Sie den Transaktionscode
SPRO
ausführen und dann auf SAP-Referenz-IMG klicken.Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
Klicken Sie auf Neue Einträge.
Geben Sie Werte für die folgenden Felder ein:
Feld Beschreibung Google Cloud-Schlüsselname Geben Sie einen Namen für die Konfiguration des Clientschlüssels an, z. B. TEST_GEMINI_API
.Name des Google Cloud-Dienstkontos Lassen Sie dieses Feld leer. Google Cloud-Bereich Lassen Sie dieses Feld leer. Google Cloud-Projekt-ID Geben Sie die Projektnummer des Google Cloud -Projekts an, in dem der API-Schlüssel gespeichert ist. Befehlsname Lassen Sie dieses Feld leer. Autorisierungsklasse Geben Sie die Klasse Z
an, die Sie im vorherigen Schritt erstellt haben, z. B.Z_TEST_GEMINI_API
.Token-Caching Lassen Sie dieses Feld leer.
Sekunden bis Tokenaktualisierung Lassen Sie dieses Feld leer. Autorisierungsparameter 1 Lassen Sie dieses Feld leer. Autorisierungsparameter 2 Lassen Sie dieses Feld leer. - Speichern Sie den neuen Eintrag.
Notieren Sie sich den Clientschlüssel. Sie verwenden diesen Clientschlüssel für die Authentifizierung.
SAP BTP-Edition
Erstellen Sie in Ihrer SAP BTP-ABAP-Umgebung eine neue Klasse, indem Sie die
/GOOG/CL_AUTH_BASE
-Klasse erben, die mit dem ABAP SDK for Google Cloud geliefert wird:- Klicken Sie in der Eclipse-Plattform mit der rechten Maustaste auf das Paket, in dem Sie eine Klasse erstellen möchten, und dann auf Neu > ABAP-Klasse.
- Geben Sie im Feld Name
ZCL_TEST_GEMINI_API
ein. - Geben Sie im Feld Beschreibung den Wert
Authentication Class for testing Gemini API
ein. - Geben Sie im Feld Superclass (Superklasse) den Wert
/GOOG/CL_AUTH_BASE
ein. - Klicken Sie auf Weiter.
- Wählen Sie eine Transportanfrage aus oder erstellen Sie eine neue.
- Klicken Sie auf Beenden.
Ersetzen Sie im Editor den vorhandenen Code durch den folgenden Code:
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.
Ersetzen Sie
API_KEY
durch den API-Schlüssel, den Sie in Google AI Studio generiert haben.Aktiviere deinen
Z
-Kurs.Rufen Sie die Eigenschaften dieser Klasse auf, gehen Sie zum Tab API-Status und veröffentlichen Sie die API dann mit dem Vertragsstatus
C1
.Weitere Informationen zum API-Status finden Sie unter Entwicklungsobjekte veröffentlichen.
Rufen Sie das SAP Fiori-Start-Dashboard des BTP ABAP-Systems auf, in dem das ABAP SDK for Google Cloud installiert ist.
Rufen Sie die App Google SDK: Hauptkonfiguration auf und führen Sie die folgenden Schritte aus:
- Klicken Sie auf Erstellen.
Geben Sie im Dialogfeld Neuen Eintrag erstellen Werte für die folgenden Felder ein:
Feld Beschreibung Google Cloud-Schlüsselname Geben Sie einen Namen für die Konfiguration des Clientschlüssels an, z. B. GEMINI_QUICK_TEST
.Name des Google Cloud-Dienstkontos Lassen Sie dieses Feld leer. Google Cloud-Bereich Lassen Sie dieses Feld leer. Google Cloud-Projekt-ID Geben Sie die Projekt-ID des Google Cloud -Projekts an, in dem Sie den API-Schlüssel erstellt haben. Google Cloud-Projektnummer Geben Sie die Projektnummer des Google Cloud -Projekts an, in dem Sie den API-Schlüssel erstellt haben. Authentifizierungstyp Wählen Sie Z
aus.Authentifizierungsklasse Wählen Sie die Klasse ZCL_TEST_GEMINI_API
aus, die Sie in einem vorherigen Schritt erstellt haben.Speichern Sie den neuen Eintrag.
Notieren Sie sich den Clientschlüssel. Sie verwenden diesen Clientschlüssel für die Authentifizierung.
Beispielcode ausführen
Lokale oder beliebige Cloud-Version
Sie können die Funktionen der Gemini API mithilfe der AI Studio-Demo ausprobieren, die mit dem Vertex AI SDK für ABAP geliefert wird.
So führen Sie die AI Studio-Demo aus:
Führen Sie in der SAP-GUI den Transaktionscode
/GOOG/SDK_IMG
aus.Alternativ können Sie den Transaktionscode
SPRO
ausführen und dann auf SAP-Referenz-IMG klicken.Gehen Sie zu ABAP SDK for Google Cloud > Demos.
Öffnen Sie Vertex AI SDK: Demo: Prototyping with Generative Language API.
Geben Sie im Feld Clientschlüssel den Clientschlüssel ein, den Sie im Abschnitt Authentifizierung einrichten erstellt haben.
Geben Sie im Feld Modell-ID die ID des LLM-Modells ein, das Sie verwenden möchten, z. B.
gemini-1.5-flash
. Informationen zu den verfügbaren Modellen finden Sie unter Modellvarianten.Geben Sie optional und je nach Bedarf die folgenden Generierungsparameter an:
- Max. Ausgabetokens
- MIME-Typ der Antwort
- Temperatur
- TopK
- TopP
Weitere Informationen zu diesen Parametern für die Modellgenerierung finden Sie unter Mit Parameterwerten experimentieren.
Geben Sie im Feld Systemanweisungen eingeben eine Systemanweisung ein.
Geben Sie im Feld Prompt eingeben Ihren Prompt ein.
Starten Sie das Programm. Im Bereich Antwort vom LLM wird die generierte Ausgabe angezeigt.
SAP BTP-Edition
Sie können die Funktionen der Gemini API ausprobieren, indem Sie den folgenden Beispielcode ausführen:
Klicken Sie in der Eclipse-Plattform mit der rechten Maustaste auf das Paket, in dem Sie eine Klasse erstellen möchten, und dann auf Neu > ABAP-Klasse.
Geben Sie im Feld Name
ZCL_INVOKE_LLM
ein.Geben Sie im Feld Beschreibung den Text
Sample class for testing Gemini API
ein.Klicken Sie auf Weiter.
Wählen Sie eine Transportanfrage aus oder erstellen Sie eine neue.
Klicken Sie auf Beenden.
Ersetzen Sie im Editor den vorhandenen Code durch den folgenden Code:
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.
Aktivieren Sie Ihren Kurs.
Führen Sie den ABAP-Code aus.
KI-Anwendungsfälle mit ABAP prototypisieren
Sie können SAP-Anwendungsprototypen mit den Klassen /GOOG/CL_GENERATIVELANGUAGE_V1
und /GOOG/CL_GENERATIVELANG_V1BETA
erstellen, die mit dem SDK geliefert wurden. Sie können diese Klassen über den Clientschlüssel aufrufen, den Sie im Abschnitt Authentifizierung einrichten erstellt haben.
Nächste Schritte
- Vertex AI SDK für ABAP installieren und konfigurieren.
- Sehen Sie sich die integrierten Demoprogramme für generative KI für SAP an.
- Generative KI in Vertex AI für SAP
- In den Cloud-Foren können Sie Ihre Fragen stellen und über das Vertex AI SDK für ABAP mit der Community sprechen.