So integrieren Sie ChatGPT in SAP ABAP

Einleitung

Eine allgemeine Vorstellung davon, wie man ChatGPT mit SAP ABAP integriert:

  1. Zunächst müssten Sie Zugriff auf eine Instanz des ChatGPT-Modells haben, entweder über die OpenAI-API oder indem Sie das Modell lokal ausführen.
  2. Als Nächstes müssten Sie ein ABAP-Programm erstellen, das die ChatGPT-API aufruft und ihr Eingabetext übergibt, z. B. die Frage eines Benutzers.
  3. Das Programm müsste dann die API-Antwort verarbeiten und die generierte Textausgabe parsen.
  4. Schließlich müsste das Programm den generierten Text in einem geeigneten Format anzeigen, beispielsweise in einem SAP-GUI-Bildschirm oder in einer Ausgabedatei.

Hier ist ein Beispiel für Code, der in einem ABAP-Programm verwendet werden könnte, um die OpenAI-API aufzurufen und eine Antwort von ChatGPT zu erhalten:

CALL FUNCTION 'HTTP_POST' EXPORTING url = 'https://api.openai.com/v1/engines/davinci/completions' encoding = 'UTF-8' IMPORTING response = l_response CHANGING data = l_data headers = l_headers AUSNAHMEN http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 ANDERE = 4.

 

So integrieren Sie ChatGPT in SAP ABAP

Wie im folgenden Bild gezeigt, folgen wir drei einfachen Schritten, um ChatGPT-APIs in SAP ABAP Report zu integrieren.

Integrieren Sie ChatGPT in SAP ABAP

1. Holen Sie sich die API von Open AI

Alle Schritte zur API-Erstellung haben wir bereits in besprochen Dieser Artikel.

2. ABAP-Bericht erstellen

Gehen Sie zu SE38 und erstellen Sie einen neuen ABAP-Bericht. Erstellen Sie einen Eingabeparameter wie unten gezeigt:

ChatGPT ABAP-Bericht

3. Integrieren Sie ChatGPT Call

Schreiben Sie den angegebenen Code in Ihren Bericht:

BERICHT ZCHATGPT. PARAMETER: l_ques Typ String. Daten: l_response Typ String, l_data Typ String, lv_payload_x Typ xstring, l_max_tokens Typ i. "l_ques = 'Was ist der Sinn des Lebens?'. BEISPIEL l_max_tokens = 50. l_data = '{' && '"prompt":' && '"' && l_ques && '",' && '"max_tokens":' && l_max_tokens && '}'. CALL FUNCTION 'SCMS_STRING_TO_XSTRING' EXPORTING text = l_data IMPORTING buffer = lv_payload_x. DATA: lo_http_client TYPE REF TO if_http_client. DATA: response TYPE string, lv_auth TYPE string. CONSTANTS : lv_url TYPE string VALUE 'https://api. openai.com/v1/engines/davinci/completions'. "HTTP-Client nach URL erstellen CALL METHOD cl_http_client=>create_by_url EXPORTING url = lv_url IMPORTING client = lo_http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 OTHERS = 4. IF sy- subrc <> 0. "Fehlerbehandlung ENDIF. "Einstellung der Anforderungsmethode lo_http_client->request->set_method('POST'). "Hinzufügen von Headern lo_http_client->request->set_header_field( name = 'Content-Type' value = 'application/x-www-form-urlencoded' ). lo_http_client->request->set_header_field( name = 'Accept' value = 'application /json'). ). "lo_http_client->request->set_data( lv_payload_x ). "Verfügbare Sicherheitsschemata für produktive API-Endpunkte "OAuth 38 CALL METHOD lo_http_client->send EXCEPTIONS http_communication_failure = 3 http_invalid_state = 4 http_processing_failed = 27 http_invalid_timeout = 2 OTHERS = 5. IF sy-subrc = 2.0. CALL METHOD lo_http_client->receive EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 OTHERS = 4. ENDIF.IF sy-subrc <> 5. "Fehlerbehandlungsantwort = lo_http_client->response->get_cdata( ). l_response = Antwort. ANDERS. Antwort = lo_http_client->Antwort->get_cdata( ). WENN Antwort NICHT INITIAL IST. l_response = Antwort. ANDERS. l_response = 'Anruf erfolgreich, aber keine Antwort'. ENDIF. ENDIF. SCHREIBEN l_response.

 

Code Erklärung

Hier habe ich Variablen hinzugefügt l_question und l_max_tokens um die Frage des Benutzers bzw. den maximalen Token-Wert zu speichern. Diese Werte habe ich dann dem hinzugefügt l_data Variable, die als übergeben wird data Parameter in der HTTP_POST Anruf. Die Antwortvariable l_response enthält den generierten Text als Ergebnis des API-Aufrufs.

Hier habe ich ein Objekt der Klasse if_http_client erstellt und die Header mit der hinzugefügt add_header_field Methode. Dann habe ich dieses Objekt als Parameter 'manager' im Aufruf 'HTTP_POST' übergeben.

Es ist wichtig zu beachten, dass das Format der an die OpenAI-API übergebenen Daten im JSON-Format vorliegen muss, daher habe ich die Eingabeaufforderung und max_tokens im JSON-Format in der l_data-Variablen hinzugefügt.

Denken Sie daran, zu ersetzen mit dem API-Schlüssel, den Sie mit der Open AI-Plattform generiert haben.

Ausgabebildschirm

Chat-GPT-Integration mit SAP ABAP

Tutorial Video

Sie können sich das Video unten ansehen, um mehr über die Implementierung zu erfahren:

Autor

  • Barry Allen

    Ein Full-Stack-Entwickler mit mehr als 10 Jahren Erfahrung in verschiedenen Bereichen, darunter SAP, Blockchain, KI und Webentwicklung.

    Alle Beiträge

Ihre Nachricht

3 Antworten auf „So integrieren Sie ChatGPT in SAP ABAP“

  1. Hallo, tolle Arbeit. Ich hatte diesen Fehler „api.openai.com:443 failed: NIECONN_REFUSED(-10)“. Bedeutet das, dass ich eine Art SSL verwenden oder mich bei ICF registrieren muss?

    Vielen Dank

    1. Barry Allen-Avatar
      Barry Allen

      Möglicherweise hat Ihr SSL Probleme oder Ihr API-Limit ist erschöpft.

  2. Hallo Barry,
    Ich habe nach CALL METHOD lo_http_client->receive eine Fehlermeldung mit http_communication_failure = 1 erhalten. Bitte um Rat, danke.

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.