Integrando la API de Open AI en PHP

  • Autor Autor cholemon
  • Fecha de inicio Fecha de inicio
cholemon

cholemon

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Hola betas.

Antes de finalizar este 2.023 les quiero compartir una función PHP para consultar la API de Open AI.

Es sólo consulta, ustedes deben adaptarla de acuerdo a sus necesidades. Está comentado para que sea más fácil entender.

PHP:
function consulta_api($prompt){
        
    $request_data = array(
        "model"         => "text-davinci-003",
        "prompt"         => $prompt,
        "max_tokens"     => 1000
    );

    // Convierte el contenido de la solicitud en una cadena JSON
    $request_data_json = json_encode($request_data);

    // Inicializa la sesión cURL
    $ch = curl_init("https://api.openai.com/v1/completions");

    // Establece las opciones de la solicitud cURL
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request_data_json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-Type: application/json",
        "Content-Length: " . strlen($request_data_json),
        "Authorization: Bearer " . API_KEY_GPT
    ));

    // Ejecuta la solicitud cURL
    $response = curl_exec($ch);

    // Cierra la sesión cURL
    curl_close($ch);

    // Procesa la respuesta de la API
    return json_decode($response, true);   
}


Vamos por un 2.024 lleno de Bendiciones, nuevos proyectos y mucho código..!!! 💪💻
 
Ahí das por hecho que se creó una variable global llamada API_KEY_GPT
Hoy en día prefiero trabajar con Laravel como Framework de PHP

PHP:
use Illuminate\Support\Facades\Http;

class ApiController extends Controller
{
    public function consultaApi($prompt)
    {
        $request_data = [
            'model' => 'text-davinci-003',
            'prompt' => $prompt,
            'max_tokens' => 1000
        ];

        $response = Http::withHeaders([
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . env('API_KEY_GPT')
        ])->post('https://api.openai.com/v1/completions', $request_data);

        return $response->json();
    }
}
 
Ahí das por hecho que se creó una variable global llamada API_KEY_GPT
Hoy en día prefiero trabajar con Laravel como Framework de PHP

PHP:
use Illuminate\Support\Facades\Http;

class ApiController extends Controller
{
    public function consultaApi($prompt)
    {
        $request_data = [
            'model' => 'text-davinci-003',
            'prompt' => $prompt,
            'max_tokens' => 1000
        ];

        $response = Http::withHeaders([
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer ' . env('API_KEY_GPT')
        ])->post('https://api.openai.com/v1/completions', $request_data);

        return $response->json();
    }
}

En realidad API_KEY_GPT es una constante....

Si, es un código nativo... Hay casos que ameritan hacerlo así.

Y como todo, depende del contexto del proyecto que se esté trabajando. En tu caso es un Controller que acepta una solicitud HTTP, pero hay casos que se necesitan hacer procesos BATCH o cosas por el estilo...

Gracias por tu aporte.!
 

Temas similares

Jonathan JZ
Respuestas
2
Visitas
229
Jonathan JZ
Jonathan JZ
Atrás
Arriba