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

Prengues el control remot: Explorant el Poder Ocult de les Webshells

La webshell és una tècnica utilitzada per obtenir control remot de servidors web compromesos en…

3 meses hace

Protección de Seguridad en PHP mediante la Desactivación de Funciones Peligrosas en php.ini

Deshabilitar funciones peligrosas en PHP mediante `php.ini` mejora la seguridad del entorno de producción.

3 meses hace

Els Deu Manaments de l’Ètica Informàtica: Una guia per a l’ús ètic de la tecnologia

L'ètica informàtica és un camp essencial en la nostra societat contemporània, on la tecnologia té…

3 meses hace

Guía Completa para el Uso de Nmap en Auditorías de Seguridad y Análisis de Red

Guía práctica sobre el uso de Nmap para escaneo de puertos y detección de servicios…

4 meses hace

La importància de comprendre la segmentació de xarxes en l’hacking ètic

L'hacking ètic, també conegut com a prova de penetració o pentesting, és una pràctica fonamental…

4 meses hace

La Necessitat de l’Encaminament: Perspectiva d’un Hacker

L'enrutament és essencial per dirigir el trànsit de paquets de dades entre dispositius en xarxes…

4 meses hace

Esta web usa cookies.