Sigue este blog vía RSS, en el Fediverso en @acambronero@www.blogpocket.com, o vía email.

You don’t speak Spanish? Explore a selection of Blogpocket posts in English

Introducción al uso de ChatGPT en PHP

You can also read this post In English

Resumen del post, generado mediante IA (función experimental)

USO-CHATGPT-PHP-1024x576 Introducción al uso de ChatGPT en PHP

Las emisiones digitales de esta publicación se estiman entre 0,011 gr. y 0,240 gr. de CO2 por página vista.

Descubre cómo hacer uso de ChatGPT en PHP para mantener conversaciones en lenguaje natural y generar respuestas coherentes. Te mostramos cómo hacer solicitudes a este programa de inteligencia artificial y cómo autenticarte con la API de OpenAI.

Según el propio ChatGPT, ChatGPT es un modelo de lenguaje desarrollado por OpenAI basado en la arquitectura GPT. GPT significa «Generative Pre-trained Transformer», lo que se traduce como «Transformador Generativo Preentrenado». Es un tipo de modelo de inteligencia artificial diseñado para comprender y generar texto de manera coherente y contextual.

chatgpt-1-1-1024x725 Introducción al uso de ChatGPT en PHP
Captura de una de las consultas a ChatGPT, desde la consola del sistema

Tanto la definición anterior como la siguiente introducción, se obtuvieron escribiendo la pregunta ¿Qué es ChatGPT? en la consola de chat.openai.com (ver imagen que precede a estas líneas).

En esencia, ChatGPT es un programa de inteligencia artificial capaz de mantener conversaciones en lenguaje natural con los usuarios. Ha sido entrenado en una amplia variedad de textos y puede generar respuestas coherentes y relevantes en función de las instrucciones y preguntas que recibe. ChatGPT puede utilizarse en una amplia gama de aplicaciones, como asistencia al cliente, generación de contenido, respuesta a preguntas y muchas otras tareas que involucren la interacción con el lenguaje humano.

Es importante tener en cuenta que, aunque ChatGPT es muy avanzado y puede generar respuestas que parecen naturales, no posee comprensión ni conocimiento verdadero. Sus respuestas se basan en patrones aprendidos durante su entrenamiento en grandes cantidades de texto, pero no tiene una comprensión real del mundo o de los conceptos más allá de esos patrones.

Parte de la respuesta de ChatGPT a la pregunta ¿Qué es ChatGPT?

Modelos de ChatGPT

Actualmente, se puede trabajar con ChatGPT registrándote sin coste en chat.openai.com/auth/login. Tu cuenta gratuita de ChatGPT te permitirá operar, a nivel de consola (escribiendo tú las preguntas), con GPT-3.5, el modelo restringido pero con todas las capacidades habilitadas para ayudarte en el día a día. El modelo GPT-4 es más avanzado pero es de pago.

Hay dos tipos de suscripción para usar la consola de ChatGPT:

  • Plan gratuito. Acceso al modelo GPT-3.5, velocidad de respuesta estándar y actualización del modelo a ritmo normal.
  • Plan de pago ChatGPT Plus (20 $/mes). Acceso a GTP-4, alta velocidad de respuesta y acceso exclusivo a las características beta.
  • Para más información, acude a la documentación oficial, sección Modelos.

API de ChatGPT

Más allá del trabajo con ChatGPT, a través de su consola, escribiendo nosotros las preguntas, es posible operar con el sistema mediante una API Key. El objetivo es hacer uso de ChatGPT en PHP o en cualquier otro lenguaje de progamación.

Una clave de interfaz de programación de aplicaciones (API Key) es un identificador único que se utiliza para autenticar y autorizar a un usuario, desarrollador o programa de llamada a una API.

Para usar la API de ChatGPT cada cuenta de OpenAI posee una cantidad de créditos gratuitos pero una vez superada dicha cantidad es preciso cargar el saldo para poder utilizarla. En esta página se puede añadir dinero al saldo acreedor o cancelar el plan. Y esta otra, encontrar un resumen de tu uso de la API.

Puedes interactuar con la API de ChatGPT a través de solicitudes HTTP desde cualquier lenguaje de programación, a través de los enlaces oficiales de Python, la biblioteca oficial Node.js o una biblioteca mantenida por la comunidad. Más información aquí y aquí.

Interactuar con la API de ChatGPT desde PHP

Entre dichos lenguajes de programación, se encuentra PHP y a continuación, describiré un ejemplo de uso de ChatGPT en PHP.

La API de ChatGPT te permite interactuar con el modelo de lenguaje GPT-3.5, como el que puedes experimentar mediante la consola escribiendo tú mismo las preguntas, a través de llamadas de API. A continuación, una guía básica sobre cómo usarla desde PHP:

  1. Acceso a la API. Antes de comenzar, necesitas acceso a la API de GPT-3.5. Necesitas una clave de API proporcionada por OpenAI para utilizar sus servicios. Si aún no tienes una cuenta en OpenAI, ve al sitio web oficial y regístrate. Después, accede a su panel de control y en la gestión de la cuenta, acude a la sección API Keys para crear una nueva clave.
  2. Hacer una solicitud API Una vez tengas acceso a la API, puedes hacer llamadas a la API para obtener respuestas del modelo. Las solicitudes se hacen a través de HTTP POST.

Supongamos que deseamos realizar una solicitud a la API de ChatGPT para que nos cuente un chiste, utilizando PHP y la función curl. El código sería algo parecido al siguiente:

<?php
$api_key = "TU_CLAVE_DE_API";
$url = "https://api.openai.com/v1/chat/completions";
$headers = array(
    "Content-Type: application/json",
    "Authorization: Bearer $api_key"
);
$data = array(
    "model" => "gpt-3.5-turbo",
    "messages" => array(
        array("role" => "system", "content" => "Tú eres un asistente que habla español."),
        array("role" => "user", "content" => "Cuéntame un chiste.")
    )
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
//
curl_close($ch);
$result = json_decode($response, true);
echo $result['choices'][0]['message']['content'];
?>

Asegúrate de reemplazar "TU_CLAVE_DE_API" con tu clave de API proporcionada por OpenAI. Este código realiza una solicitud HTTP POST a la API de ChatGPT y luego procesa la respuesta JSON para mostrar el contenido del mensaje del asistente en la conversación.

Recuerda consultar la documentación oficial de OpenAI para obtener información actualizada sobre el uso de la API, ya que los detalles técnicos podrían cambiar con el tiempo.

¿Qué es «Bearer»?

«Bearer» es un tipo de token de acceso utilizado en autenticación HTTP para identificar y autorizar a los usuarios o aplicaciones que realizan solicitudes a un servicio web. En el contexto de la API de OpenAI (y en muchos otros servicios), «Bearer» se utiliza para autenticar tus solicitudes API.

Cuando haces una solicitud a una API que requiere autenticación mediante un token de acceso, normalmente debes incluir el token en la cabecera de la solicitud HTTP. La cabecera de autenticación se ve así:

Authorization: Bearer <TU_TOKEN_DE_ACCESO>

En este caso, <TU_TOKEN_DE_ACCESO> es el token que has obtenido al registrarte en el servicio y crear una clave de API. Al incluir esta cabecera en tu solicitud, estás proporcionando una forma segura de identificarte ante el servicio y obtener acceso autorizado.

El uso de tokens «Bearer» es una práctica común en la autenticación en línea, ya que es una forma segura de transmitir la información de autenticación sin exponerla directamente en la URL o en el cuerpo de la solicitud.

En el ejemplo que te proporcioné anteriormente, al utilizar la cabecera «Authorization: Bearer» en las solicitudes API, estás enviando tu clave de API como token de acceso para autenticarte con la API de OpenAI y obtener respuestas del modelo.

¿Se debe instalar cURL en el servidor?

Sí, para poder utilizar la función curl en PHP y realizar solicitudes HTTP, necesitas tener la extensión cURL habilitada en tu servidor. La mayoría de los servidores PHP vienen con cURL preinstalado y habilitado por defecto, pero en algunos casos podría ser necesario habilitarlo manualmente.

Si no estás seguro si cURL está habilitado en tu servidor, puedes verificarlo ejecutando el siguiente código en un archivo PHP y accediendo a ese archivo en tu navegador:

if (function_exists('curl_version')) {
    echo "cURL está habilitado en este servidor.<br /><br />";
} else {
    echo "cURL no está habilitado en este servidor.<br /><br />";
}

Si ves el mensaje «cURL está habilitado en este servidor.», significa que cURL está disponible y puedes utilizarlo en tus scripts PHP. Si ves el mensaje «cURL no está habilitado en este servidor.», tendrás que habilitarlo siguiendo las instrucciones proporcionadas por tu proveedor de hosting o administrador de sistemas.

En caso de que no puedas habilitar cURL en tu servidor, también puedes considerar el uso de bibliotecas alternativas para realizar solicitudes HTTP, como file_get_contents() o bibliotecas externas como Guzzle. Sin embargo, cURL es una de las opciones más comunes y versátiles para realizar solicitudes HTTP en PHP.

¿Se necesita el gestor de dependencias Composer?

No, no necesitas Composer específicamente para utilizar la función curl en PHP y realizar solicitudes HTTP, con el fin de hacer uso de ChatGPT en PHP.

Composer es una herramienta de gestión de dependencias para PHP que se utiliza principalmente para administrar las bibliotecas y paquetes que se utilizan en proyectos PHP más grandes. Te permite declarar las bibliotecas de las que depende tu proyecto y las administrará (instalará/actualizará) por ti.

La función curl es parte del núcleo de PHP y se utiliza para realizar solicitudes HTTP sin necesidad de instalar paquetes adicionales. Si solo estás interesado en realizar solicitudes HTTP básicas utilizando cURL en PHP, no necesitas Composer para ese propósito.

Sin embargo, si estás trabajando en un proyecto PHP más grande y deseas utilizar bibliotecas externas para manejar solicitudes HTTP de una manera más avanzada, podrías considerar utilizar Composer para gestionar esas dependencias. Composer facilita la instalación y actualización de bibliotecas externas y paquetes en tu proyecto.

En resumen, si solo necesitas utilizar la función curl para realizar solicitudes HTTP básicas en PHP, no necesitas Composer. Pero si estás planeando construir un proyecto más complejo que involucre muchas dependencias externas, Composer podría ser útil para administrar esas dependencias de manera eficiente.

¿Cómo mostrar posibles errores en la respuesta de la API?

La sentencia que puedes usar para mostrar posibles errores en la respuesta de la API utilizando la función curl_error() es:

$response = curl_exec($ch);

if ($response === false) {
    echo "Error en la solicitud: " . curl_error($ch);
} else {
    //echo $response;
}

curl_close($ch);

Cuéntame un chiste

El pequeño programa en PHP que he desarrollado en este artículo, accede a ChatGPT mediante una clave de API, para que nos cuente un chiste.

Por supuesto, puedes añadir al principio del código, la instrucción siguiente:

echo "ChatGPT, cuéntame un chiste<br /><br />";

Una vez, implementado en tu servidor, puedes ejecutarlo desde la barra de direcciones de tu navegador, obteniendo chistes (tan malos) como el siguiente 😉 :

chatgpt-2-1-1024x404 Introducción al uso de ChatGPT en PHP
Captura de una salida de la ejecución del programa PHP que interactúa con ChatGPT

Conclusiones

Sirva este artículo como introducción al uso de ChatGPT en PHP. Tras su lectura, habrás descubierto cómo este programa de inteligencia artificial puede mantener conversaciones en lenguaje natural y generar respuestas coherentes, ejecutando un script PHP desde tu propio servidor.

El ejemplo mostrado es muy sencillo y su único propósito es enseñar el modo de interactuar con ChatGPT desde un programa, escrito en lenguaje PHP.

Revisa los diferentes planes de suscripción para aprovechar al máximo las capacidades de ChatGPT y la documentación oficial. Si ejecutas el código mostrado en este artículo, asegúrate de realizar los cambios correspondientes a tu servidor y usa un entorno de pruebas. Necesitarás autenticarte con la API de OpenAI para lo cual debes obtener una clave de API en tu cuenta.

Responder en Mastodon (requiere usuario en esa plataforma)

Puedes usar tu cuenta de Mastodon para responder a este post de acambronero

Copia y pega esta URL (https://www.blogpocket.com/?p=75818) en el campo de búsqueda de la interfaz web de tu servidor Mastodon.

Icono de Mastodon

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Cambronero.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a GreenGeeks que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ir al contenido