Explorando la Interacción con OpenAI en PHP: Generación de Texto Potenciada por la IA

PHP, OpenAI, Generación de texto, Inteligencia artificial, API, Desarrollo web, Procesamiento de lenguaje natural (NLP), Chatbots, Automatización, Programación avanzada.


Estas funciones están diseñadas para interactuar con la API de OpenAI en php y obtener respuestas generadas por modelos de lenguaje de OpenAI. Aquí tienes una descripción detallada de cada una de estas funciones:

  1. promt_chat($txt):
  • Esta función toma un texto ($txt) como entrada y utiliza el modelo de lenguaje GPT-4 de OpenAI para generar una respuesta de chat.
  • La función crea un arreglo de datos ($data) que incluye el modelo ("gpt-4"), un mensaje de sistema («You are a helpful assistant»), y el mensaje del usuario ($txt).
  • También establece parámetros como la temperatura (0.7), el límite máximo de tokens (256), y penalidades de frecuencia y presencia en cero.
  • Luego, convierte los datos en formato JSON y realiza una solicitud a la API de OpenAI utilizando la función consulta_api.
  • Finalmente, devuelve la respuesta generada por el modelo de lenguaje.
  • Mas información en https://platform.openai.com/docs/guides/gpt?lang=python
function promt_chat($txt)
    {
	    $url_openai = "https://api.openai.com/v1/chat/completions";
	 
        $data = array(
            "model"  =>  "gpt-4",
            "messages" => array(
                array(
                    "role" => "system",
                    "content" => "You are a helpful assistant."
                ),
                array(
                    "role" => "user",
                    "content" => $txt
                )
            ),
            "temperature" => 0.7,
            "max_tokens" => 256,
            "top_p" => 1,
            "frequency_penalty" => 0,
            "presence_penalty" => 0,
        );
    
        $data = json_encode($data);
        $response = consulta_api($data);
        
        return $response;
    }
  1. promt($txt):
  • Esta función toma un texto ($txt) como entrada y utiliza el modelo de lenguaje «text-davinci-003» de OpenAI para generar una respuesta.
  • Al igual que la función anterior, crea un arreglo de datos ($data) con el modelo ("text-davinci-003"), el texto de la solicitud ($txt), y otros parámetros como temperatura, límite de tokens y penalidades.
  • Luego, convierte los datos en formato JSON y realiza una solicitud a la API de OpenAI utilizando la función consulta_api.
  • Finalmente, devuelve la respuesta generada por el modelo de lenguaje.
function promt($txt)
  {
  
  $url_openai="https://api.openai.com/v1/completions"

    $data = array(
      "model"  =>  "text-davinci-003",
      "prompt" =>   $txt,
      "temperature" => 0.7,
      "max_tokens" => 256,
      "top_p" => 1,
      "frequency_penalty" => 0,
      "presence_penalty" => 0,

    );
    
    $data = json_encode($data);
    $response = consulta_api($data);
 
    return  $response;
  }
  1. consulta_api($data):
  • Esta función se encarga de hacer la llamada a la API de OpenAI.
  • Toma los datos en formato JSON ($data) como entrada, que incluye toda la información necesaria para la solicitud, como el modelo, la temperatura, etc.
  • Configura las cabeceras de la solicitud, que incluyen el tipo de contenido y la clave de API de OpenAI.
  • Luego, utiliza cURL para realizar la solicitud POST a la URL de la API de OpenAI con los datos proporcionados.
  • Maneja la respuesta de la API, decodifica la respuesta JSON y devuelve el contenido generado por el modelo de lenguaje, así como el costo de uso si la solicitud fue exitosa. Si la solicitud no fue exitosa, devuelve la respuesta de error.
  function consulta_api($data)
    {
        $openaiApiKey = 'numero de tu apiKaey';
	 
        $headers = array(
            "Content-Type: application/json",
            "Authorization: Bearer " . $openaiApiKey . ""
        );
    
        // Inicializa una sesión curl
        $ch = curl_init();
    
        // Configura las opciones de la solicitud
        curl_setopt($ch, CURLOPT_URL, $url_openai);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
        // Realiza la solicitud a la API de OpenAI
        $response = curl_exec($ch);
        $result = json_decode($response, true);
    
        // Maneja la respuesta de la API
        if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) {
	
      if (isset($result["choices"][0]["text"])) {
      //en el caso de v1/completions
        $rs["texto"] = $result["choices"][0]["text"];
        $rs["coste"] = $result["usage"];
        //  echo "Respuesta de OpenAI: " . $completion;
      } else if (isset($result["choices"][0]["message"])) {
          //en el caso de v1/chat/completions
        $rs["texto"] = $result["choices"][0]["message"]['content'];
        $rs["coste"] = $result["usage"];
      }

            return $rs;
        } else {
            return $result;
        }
    
        // Cierra la sesión curl
        curl_close($ch);
    }
	
	

Ten en cuenta que debes reemplazar "numero de tu apiKaey" con tu clave de API real de OpenAI para que estas funciones funcionen correctamente. Además, verifica que la variable $url_openai esté definida correctamente en las funciones promt_chat y promt.

Para usar estas funciones solo debemos llamar a promt(«texto a enviar a OpenAi»);