Se requieren los siguientes pasos para conectarse a la interfaz de ChatGPT:
-
Instale la extensión Swoole y la extensión PHP cURL.
-
Introducir en el proyecto
composer require guzzlehttp/guzzle
para instalar el cliente HTTP Guzzle. -
Escriba el código de solicitud HTTP para llamar a la interfaz de ChatGPT, el código de muestra es el siguiente:
$client = new \GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.openai.com/v1/engines/davinci-codex/completions', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $your_api_key,
],
'json' => [
'prompt' => 'Hello,',
'temperature' => 0.5,
'max_tokens' => 60,
'n' => 1,
'stop' => '.',
],
]);
if ($res->getStatusCode() == 200) {
$response = json_decode($res->getBody(), true);
echo $response['choices'][0]['text'];
}
En este código de muestra, usamos la biblioteca de cliente HTTP Guzzle para enviar solicitudes HTTP. El encabezado de la solicitud incluye el tipo de contenido (Content-Type) y su clave API. El cuerpo de la solicitud incluye el indicador especificado (indicador) y otros parámetros como la temperatura (temperatura), el número máximo de tokens (tokens máximos) y los tokens de parada (tokens de parada). Podemos usar la respuesta devuelta para obtener el texto generado.
- Integre el código anterior en el proyecto Swoole para activar una solicitud HTTP para que ChatGPT genere texto y envíe la respuesta al cliente.
El código de ejemplo es el siguiente:
$server = new Swoole\HTTP\Server("127.0.0.1", 9501);
$server->on("request", function ($req, $res) {
$client = new \GuzzleHttp\Client();
$res = $client->request('POST', 'https://api.openai.com/v1/engines/davinci-codex/completions', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $your_api_key,
],
'json' => [
'prompt' => 'Hello,',
'temperature' => 0.5,
'max_tokens' => 60,
'n' => 1,
'stop' => '.',
],
]);
if ($res->getStatusCode() == 200) {
$response = json_decode($res->getBody(), true);
$generated_text = $response['choices'][0]['text'];
$res->end($generated_text);
} else {
$res->end("Error: " . $res->getStatusCode());
}
});
$server->start();
En este código de muestra, creamos un servidor HTTP Swoole y enviamos la solicitud HTTP en el controlador de eventos "solicitud". Obtenemos el texto generado de la respuesta y enviamos el texto al cliente. Si la solicitud falla, se envía un mensaje de error al cliente.
Los anteriores son los pasos para usar la integración de la interfaz Swoole y ChatGPT en PHP.