OpenAI API Script mit PHP (ChatGPT mit PHP einbinden)

OpenAI API Script mit PHP

OpenAI-API & PHP

Warum habe ich mich für PHP entschieden, anstatt Python zu verwenden? Das ist eine berechtigte Frage, denn Python wird oft mit KI- und ML-Anwendungen in Verbindung gebracht, und ich selbst tendiere normalerweise auch zu Python. Allerdings ist PHP eine weit verbreitete und benutzerfreundliche Skriptsprache, die in vielen Webanwendungen Verwendung findet.

Meine Entscheidung für PHP basiert darauf, eine leichtgewichtige Lösung für Programmierer anzubieten, die bereits Erfahrung mit PHP haben und schnell erste Erfolge erzielen möchten. Mit PHP können sie die Funktion zur Textgenerierung nahtlos in ihre bestehenden PHP-basierten Webseiten und Anwendungen integrieren, ohne die Notwendigkeit eines Sprachenwechsels. Das ermöglicht eine unkomplizierte Integration und eröffnet die Möglichkeit, Textgenerierungsfunktionen in ihre Webprojekte zu integrieren, ohne von ihrer vertrauten Entwicklungsplattform abzuweichen. Ich werde in naher Zukunft sicher noch einige Python-relevante Tipps veröffentlichen.

Bevor du den Code ausführst beachte folgendes:

OpenAI-API Key

Füge in Zeile 19 deinen OpenAI API-Key ein. Diesen kannst du unter https://platform.openai.com/account/api-keys erstellen.

ChatGPT Model

Siehe Zeile 43: Statt „gpt-3.5-turbo“ kann auch „gtp-4“ genutzt werden. Das verursacht jedoch signifikant höhere Kosten.

PHP-Code für einen OpenAI API Call mit Feedback

<!DOCTYPE html>
<html>
<head>
    <title>OpenAI API Aufruf und Feedback</title>
</head>
<body>
    <h1>OpenAI API Aufruf und Feedback</h1>

    <form method="post">
        <label for="prompt">Geben Sie Ihren Prompt ein:</label><br>
        <textarea id="prompt" name="prompt" rows="4" cols="50"></textarea><br><br>
        <input type="submit" value="Generieren">
    </form>

    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $prompt = $_POST["prompt"];
        if (!empty($prompt)) {
            $api_key = "xx-XXXXXXXXXXX"; // Ihren OpenAI API-Schlüssel hier einfügen
            $endpoint = "https://api.openai.com/v1/chat/completions";
            $response = getAPIResponse($prompt, $endpoint, $api_key);
            echo "<h2>Antwort</h2>";
            echo $response;
        } else {
            echo "Bitte geben Sie einen Prompt ein.";
        }
    }

    function getAPIResponse($prompt, $endpoint, $api_key) {
        // Initialisiere die cURL-Sitzung
        $ch = curl_init($endpoint);
    
        // Setze cURL-Optionen
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "Authorization: Bearer $api_key",
            "Content-Type: application/json"
        ));
    
        // Nutzlast für den Chat-Eingang unter Verwendung der Nachrichtenstruktur
        $data = array(
            'model' => 'gpt-3.5-turbo',
            'messages' => array(
                array('role' => 'system', 'content' => 'Sie sind ein hilfreicher Assistent.'),
                array('role' => 'user', 'content' => $prompt)
            )
        );
        $data_string = json_encode($data);
    
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    
        // Führe die cURL-Sitzung aus
        $response = curl_exec($ch);
    
        // Überprüfe auf cURL-Fehler
        if(curl_errno($ch)){
            echo 'Curl-Fehler: ' . curl_error($ch);
            exit;
        }
    
        // Dekodiere die Antwort
        $response_data = json_decode($response, true);
    
        // Überprüfe, ob der Schlüssel 'choices' in der Antwort vorhanden ist und ob der Nachrichteninhalt vorhanden ist
        if (!isset($response_data['choices']) || !isset($response_data['choices'][0]['message']['content'])) {
            echo "Fehler: Unerwartete API-Antwort.<br>";
            echo "Vollständige Antwort:<br>";
            print_r($response_data);
            exit;
        }
    
        // Hole die Antwort aus der API-Antwort
        $answer = $response_data['choices'][0]['message']['content'];
    
        // Schließe die cURL-Sitzung
        curl_close($ch);
    
        return $answer;
    }
    
    ?>
</body>
</html>


Warum PHP und nicht Python?

Nun, ohne Vorbedingungen und Anforderungen zu kennen würde ich tendenziell dazu raten, eine OpenAI-API Integration mit Python zu realisieren. Die Verwendung von PHP ermöglicht es jedoch Webentwicklern, die OpenAI API in ihre vorhandenen PHP-Projekte einzufügen, ohne die Notwendigkeit eines Sprachenwechsels. Der Ansatz bietet so eine nahtlose Integration und eröffnet die Möglichkeit, auf einfache Weise Textgenerierungsfunktionen in Webanwendungen zu integrieren.

Erklärung des Codes:

  1. HTML-Formular: Zuerst erstellen wir ein einfaches HTML-Formular, in dem Benutzer einen Text (Prompt) eingeben können.
  2. PHP-Verarbeitung: Wenn der Benutzer das Formular absendet, wird der eingegebene Text an die OpenAI API gesendet. Der API-Schlüssel und der Endpunkt werden ebenfalls im PHP-Skript angegeben.
  3. cURL für die API-Anfrage: Wir verwenden die cURL-Bibliothek, um eine HTTP-Anfrage an die API zu senden. Die API-Anfrage enthält den eingegebenen Text und weitere Informationen, wie das verwendete Modell (GPT-3.5-Turbo) und die Rollen (System und Benutzer).
  4. API-Antwort verarbeiten: Nachdem die API geantwortet hat, verarbeiten wir die Antwort und extrahieren den generierten Text. Wir überprüfen auch auf Fehler in der API-Antwort.
  5. Anzeige der generierten Antwort: Schließlich zeigen wir die generierte Antwort auf der Webseite an, damit der Benutzer das Ergebnis sehen kann.

Wie führe ich den PHP-Code aus?

Um PHP-Code auszuführen, benötigst du eine Webserver- oder PHP-Entwicklungsumgebung. Das geht so:

  1. Installation eines Webservers (z.B., Apache oder Nginx):
    • Du kannst einen lokalen Webserver wie XAMPP, WAMP oder MAMP installieren, um PHP auf deinem Computer auszuführen.
    • Oder du kannst PHP auf einem Webhosting-Server verwenden, wenn du eine Website online veröffentlichen möchtest.
    • Am einfachsten ist es XAMPP zu installieren, den Apache Server zu starten, die PHP-Datei in htdocs abzulegen und localhost aufzurufen. Siehe: https://www.youtube.com/watch?v=NYDJ95_DALg
  2. PHP-Dateien erstellen:
    • Schreibe deinen PHP-Code in eine Datei mit der Erweiterung „.php“. Zum Beispiel: meincode.php.
  3. Webserver starten (nur lokal):
    • Wenn du einen lokalen Webserver verwendest, starte ihn. Die meisten Installationspakete (wie XAMPP) bieten eine einfache Möglichkeit, den Server zu starten und zu stoppen.
  4. PHP-Datei im Webserver-Verzeichnis platzieren:
    • Wenn du lokal arbeitest, lege deine PHP-Datei in das Verzeichnis deines lokalen Webservers (z.B., htdocs in XAMPP) oder in das Verzeichnis deiner Website auf dem Webhosting-Server.
  5. Webbrowser öffnen:
    • Starte deinen Webbrowser und rufe die URL auf, unter der deine PHP-Datei erreichbar ist. Zum Beispiel: http://localhost/meincode.php (lokal) oder http://deine-website.com/meincode.php (online).
  6. PHP-Code ausführen:
    • Der Webserver interpretiert und führt den PHP-Code aus, und das Ergebnis wird im Browser angezeigt.

Das ist im Wesentlichen der Vorgang, um PHP-Code auszuführen. Du schreibst den Code in PHP-Dateien, platzierst sie auf einem Webserver und rufst sie im Webbrowser auf, um die Ergebnisse zu sehen.

Scroll to Top