Explorando la Interacción con OpenAI en PHP: Generación de Texto Potenciada por la IA - Iespai
Categorías: Cosas de PHP

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



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»);

Oscar Lastera Sanchez

Entradas recientes

Redefiniendo la Ética de las Máquinas: Asimov y Kant Frente a la Inteligencia Artificial

La ciencia ficción ha sido, a lo largo del tiempo, un campo fértil para la…

1 semana hace

Di adéu a les notificacions! Assegura’t que els teus certificats TLS es renovin automàticament

Let's Encrypt ha estat una peça clau en la seguretat web en oferir certificats TLS…

2 semanas hace

Guía para Instalar una Máquina Virtual en VirtualBox y Configurar un Servidor LAMP

En esta guía te explicaremos paso a paso cómo instalar una máquina virtual en VirtualBox…

2 semanas hace

¡Los Bloqueadores Están Declarando la Guerra a Bit.ly! Descubre Por Qué Tus Enlaces Están en Peligro

Los acortadores de URL, como bit.ly, se han convertido en herramientas esenciales para simplificar y…

2 semanas hace

Guía Completa para el Mantenimiento de Postfix

Postfix es uno de los servidores de correo más populares y robustos en el mundo…

2 meses hace

¿Por qué las herramientas de SEO como SEMrush no reflejan la realidad de mi negocio?

En el mundo del marketing digital, las herramientas de SEO como SEMrush, Ahrefs, Moz y…

3 meses hace

Esta web usa cookies.