En nuestra empresa, que se dedica a la venta en línea de componentes electrónicos, la creación de descripciones de productos es un proceso bastante laborioso, especialmente cuando se trata de algún chip obscuro con poca información disponible o información en idiomas desconocidos.
Después del lanzamiento de Chat GPT-4 por OpenAI, probamos su capacidad para generar descripciones de productos oscuros para tiendas en línea. Nos sorprendió gratamente cuando, en algunos casos, superó a nuestro administrador de contenido y lo hizo mucho más rápido.
Quedó claro que ahora podríamos aumentar la velocidad de agregar nuevas listas de productos a nuestro sitio web y hacerlo de manera mucho más rentable, mientras que los servicios del administrador de contenido seguirían siendo necesarios para crear descripciones de productos desconocidos para Chat GPT-4 y para revisar las respuestas generadas antes de publicarlas.
Resultó que comenzamos a usar PrestaShop desde el inicio de la creación de nuestra empresa, aunque desde entonces nos hemos alejado de este CMS. PrestaShop es un motor de comercio electrónico bastante popular, y pensé que a alguien le podría resultar interesante.
Hoy estaremos creando un módulo para generar descripciones de productos utilizando Chat GPT-4 en una tienda en línea basada en PrestaShop. Esto simplificará la vida del administrador de contenido. El administrador de contenido solo necesitará completar el campo del nombre del producto, y el módulo generará la descripción basada en él.
Demonstraré un ejemplo en la versión 8.0.4 de PrestaShop, pero el mismo método funcionará para la mayoría de las versiones anteriores de PrestaShop y probablemente también para las nuevas. Crear módulos en PrestaShop no es difícil, y creo que no representará ningún desafío, incluso para principiantes.
Para empezar, crea un directorio con el nombre de nuestro módulo en el directorio /modules/, por ejemplo: /gptdescription.
Ahora, en el directorio /modules/gptdescription, crea un archivo con el mismo nombre que nuestro módulo: gptdescription.php.
En este archivo, tendremos todo el código principal del módulo. Crea una clase en él que debería heredar de la clase Module.
class GPTDescription extends Module
{
}
Primero, agreguemos un constructor:
private $api_key;
private $model;
public function __construct()
{
$this->name = ‘gptdescription’;
$this->tab = ‘administration’;
$this->version = ‘0.1’;
$this->author = ‘sinenko’;
$this->need_instance = 0;
$this->ps_versions_compliancy = [‘min’ => ‘8.0.4’, ‘max’ => ‘8.0.4’];
$this->bootstrap = true;
$this->api_key = Configuration::get(‘GPT4INTEGRATION_API_KEY’);
$this->model = Configuration::get(‘GPT4INTEGRATION_MODEL’);
parent::__construct();
$this->displayName = $this->l(‘Generador de descripciones de productos GPT-4’);
$this->description = $this->l(‘Genera automáticamente descripciones de productos utilizando GPT-4.’);
$this->confirmUninstall = $this->l(‘¿Estás seguro de que quieres desinstalar?’);
}
En el constructor, especificamos el nombre, la versión, el autor y la descripción de nuestro módulo, que se mostrarán durante la instalación y desinstalación del módulo. También especificamos dos parámetros, api_key y model, que serán configurables en la configuración del módulo a través del panel de administración.
Ahora creemos un método que generará una descripción basada en el título del producto.
private function generateDescription($productTitle)
{
$api_key = $this->api_key;
$model = $this->model;
}
En este método, utilizaremos CURL para realizar solicitudes a la API de OpenAI y generar nuestra descripción.
Para obtener una clave API, debemos ir al siguiente enlace: https://platform.openai.com/account/api-keys y completar el proceso de registro. Después del registro, es necesario crear una nueva clave API y guardarla. Especificaremos esta clave en la configuración de nuestro futuro módulo.
Ahora vayamos a la documentación y veamos qué modelos están actualmente disponibles para nosotros en https://platform.openai.com/docs/models.
En el momento de escribir este artículo, específicamente en mayo de 2023, los siguientes modelos están disponibles:
GPT-4 (beta limitada a partir de mayo de 2023), y si no tienes acceso al modelo GPT-4, agregaremos la capacidad de cambiar a GPT-3.5 en nuestro módulo:
GPT-4:
– gpt-4
– gpt-4-0314
– gpt-4-32k
– gpt-4-32k-0314
GPT-3.5:
– gpt-3.5-turbo
– gpt-3.5-turbo-0301
– text-davinci-003
– text-davinci-002
– code-davinci-002
Basándonos en mis pequeñas pruebas, utilizaremos gpt-4 y gpt-3.5-turbo, ya que son más adecuados para generar descripciones de productos.
Ahora, según la documentación en https://platform.openai.com/docs/api-reference/chat, para interactuar con el chat, debemos enviar una solicitud POST a la siguiente URL https://api.openai.com/v1/chat/completions en el siguiente formato:
{
«model»: «gpt-4»,
«messages»: [
{
«role»: «assistant»,
«content»: «Por favor, haz una descripción del producto para mí»
}
],
«max_tokens»: 4000,
«n»: 1,
«stop»: [
«\n»
],
«temperature»: 0.1
}
En el parámetro «content», pasaremos nuestra consulta de estímulo al chat para generar la descripción.
«max_tokens» es el límite de tokens para la respuesta. OpenAI cobra por el uso de la API en función del número de tokens utilizados para la solicitud y la respuesta. Por lo tanto, cuanto más corta sea la consulta y la respuesta, más barato será para ti generar la descripción del producto. Si no estás familiarizado con los tokens, puedes pensar que un token equivale aproximadamente a una palabra.
Los precios en el momento de escribir este artículo son los siguientes:
– GPT-3.5-turbo $0.002/1K tokens de todo
– GPT-4 8K $0.03/1K tokens de estímulos $0.06/1K tokens de respuesta
– GPT-4 32K $0.06/1K tokens de estímulos $0.12/1K tokens de respuesta
Cuanto menor sea el parámetro «temperature», más precisa y determinista será la generación de la descripción del producto por parte del chat. Puedes experimentar con la función dependiendo del tipo de productos en tu catálogo. Hagamos una solicitud de prueba a la API y veamos el formato de la respuesta.
«`php
private function generateDescription($productTitle = ’74HC4066N’)
{
$api_key = ‘tu_clave’;
$modelo = ‘gpt-4’;
if (!$api_key || empty($api_key) || !$modelo || empty($modelo)) {
return null;
}
$url = ‘https://api.openai.com/v1/chat/completions’; // URL de la API de GPT-4
$prompt = ‘Haz una descripción del producto para la tienda en línea: ‘;
$prompt .= $productTitle;
$datos = [
‘modelo’ => $modelo, // Modelo GPT seleccionado
‘mensajes’ => [[
‘rol’ => ‘asistente’,
‘contenido’ => $prompt // Texto de la solicitud
]],
‘max_tokens’ => 4000, // Número máximo de tokens en la respuesta
‘n’ => 1, // Número de variantes de texto
‘temperatura’ => 0.1 // Temperatura (componente creativo)
];
$encabezados = [
‘Content-Type: application/json’,
‘Authorization: Bearer ‘ . $api_key
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($datos));
curl_setopt($ch, CURLOPT_HTTPHEADER, $encabezados);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$respuesta = curl_exec($ch);
curl_close($ch);
print_r($respuesta);
}
«`
Después de la solicitud, recibimos la siguiente respuesta:
«`json
{
«id»: «chatcmpl-7EbpN1nlH4PwMQ3YPmVcoMspPNtqy»,
«object»: «chat.completion»,
«created»: 1683716357,
«model»: «gpt-4-32k-0314»,
«usage»: {
«prompt_tokens»: 11,
«completion_tokens»: 219,
«total_tokens»: 230
},
«choices»: [
{
«message»: {
«role»: «assistant»,
«content»: «Título del Producto: 74HC4066N Interruptor Bilateral Cuádruple ….. ¡Añádelo a tu carrito ahora!»
},
«finish_reason»: «stop»,
«index»: 0
}
]
}
«`
Podemos ver que la respuesta incluye el número de tokens utilizados para la solicitud y la respuesta, lo que nos permite analizar la carga del servicio y estimar el costo de generar nuestras descripciones. Los mensajes generados por el chat en respuesta a nuestra solicitud se almacenan en la matriz «choices». Los objetos «message» contienen el parámetro «content», que es la descripción de nuestro producto. Hice una solicitud para generar una descripción del microchip 74HC4066N, y la respuesta completa del chat se ve así:
Título del Producto: 74HC4066N Interruptor Bilateral Cuádruple IC
Descripción del Producto:
El 74HC4066N es un dispositivo CMOS de compuerta Si de alta velocidad, diseñado para proporcionar un rendimiento excepcional en una amplia gama de aplicaciones. Como interruptor bilateral cuádruple, integra cuatro interruptores independientes en un paquete compacto, con cada interruptor teniendo dos terminales de entrada/salida y una entrada de habilitación activa en ALTO.
Características Clave:
1. Interruptor Bilateral Cuádruple: El 74HC4066N alberga cuatro interruptores independientes, lo que permite un uso versátil en diversos circuitos electrónicos.
2. Lógica CMOS de Alta Velocidad: Diseñado para un rendimiento óptimo, el 74HC4066N está construido con lógica CMOS de alta velocidad, garantizando una operación rápida y eficiente.
3. Baja Disipación de Energía: Este dispositivo ofrece baja disipación de energía, haciéndolo ideal para aplicaciones con batería o eficientes en energía.
4. Versatilidad: Cada interruptor en el 74HC4066N puede pasar señales digitales y analógicas, desde CC hasta el rango de MHz, lo que lo hace adecuado para una amplia gama de aplicaciones.
5. Baja Resistencia en el Estado «ON»: El dispositivo ofrece baja resistencia en el estado «ON», asegurando la máxima integridad de la señal.
Aplicaciones:
El 74HC4066N es perfecto para una variedad de aplicaciones, incluyendo conmutación de señal, corte, modulación o demodulación (módem) y multiplexación de señales para sistemas de conversión analógica a digital y digital a analógica.
Información del Paquete:
Este IC viene en un paquete PDIP de 14 pines (Paquete Dual en Línea de Plástico), diseñado para una fácil integración en su placa de circuito.
El 74HC4066N es una opción ideal para diseñadores y aficionados que buscan un interruptor IC versátil y de alto rendimiento. Su rendimiento y fiabilidad consistentes lo convierten en un elemento básico en cualquier caja de herramientas electrónicas.
Por favor, ten en cuenta: Siempre asegúrate de operar este dispositivo dentro de sus especificaciones recomendadas para garantizar su longevidad y rendimiento.
Si buscas un interruptor eficiente y versátil para tus proyectos electrónicos, el 74HC4066N Interruptor Bilateral Cuádruple IC es la elección perfecta. ¡Añádelo a tu carrito ahora!
Como podemos ver, la descripción del producto es muy clara y bien redactada, casi comparable a lo que habría escrito un gestor de contenidos.
Ahora vamos a completar nuestra función y añadir la capacidad de editar y guardar las descripciones de los productos. Además, PrestaShop admite descripciones de productos en formato HTML, por lo que podemos modificar nuestra solicitud para especificar que la descripción del producto debe estar formateada con etiquetas HTML. También podemos notar que ChatGPT sugiere no solo la descripción, sino también el título del producto. Vamos a pedir a GPT que formatee la respuesta e indique dónde está el título del producto y dónde está la descripción breve, y guardaremos esta información en los campos correspondientes en PrestaShop.
La nueva solicitud se verá así:
«`php
$prompt = ‘Proporciona una respuesta: una descripción con especificaciones del producto para una tienda en línea en formato HTML puro (sin clases, estilos e id, da el título del producto id=»product-title», haz un resumen del producto id=»product-summary», haz la descripción del producto y características clave id=»product-description»), si el producto es desconocido para ti, entonces escribe {no-encontrado}: ‘;
«`
Ahora, la descripción del producto se verá así:
«`html
74HC4066N Interruptor Bilateral Cuádruple IC
El 74HC4066N es un dispositivo CMOS de compuerta Si de alta velocidad, que ofrece un rendimiento excepcional en una amplia gama de aplicaciones.
«`
Con estas modificaciones, nuestra función estará lista para generar descripciones de productos en formato HTML con la ayuda de ChatGPT. ¡Esperamos que esta actualización mejore la eficiencia y calidad de tus descripciones de productos! Como un interruptor bilateral cuádruple, integra cuatro interruptores independientes en un solo paquete compacto.
Descripción del producto y características clave
Interruptor bilateral cuádruple: El 74HC4066N alberga cuatro interruptores independientes, lo que permite un uso versátil en diversos circuitos electrónicos.
Lógica CMOS de alta velocidad: Diseñado para un rendimiento óptimo, el 74HC4066N está construido con lógica CMOS de alta velocidad, garantizando un funcionamiento rápido y eficiente.
Disipación de baja potencia: Este dispositivo ofrece una baja disipación de potencia, lo que lo hace ideal para aplicaciones con alimentación por batería o eficientes en energía.
Versatilidad: Cada interruptor en el 74HC4066N puede pasar tanto señales digitales como analógicas, desde CC hasta el rango de MHz, lo que lo hace adecuado para una amplia gama de aplicaciones.
Baja resistencia en ON: El dispositivo ofrece una baja resistencia en ON, asegurando la máxima integridad de la señal.
Este CI viene en un paquete PDIP de 14 pines (Paquete dual en línea de plástico), diseñado para una fácil integración en su placa de circuito. Si buscas un interruptor eficiente y versátil para tus proyectos electrónicos, el CI de interruptor bilateral cuádruple 74HC4066N es la elección perfecta.
Ahora podemos analizar fácilmente esta respuesta en sus componentes si es necesario. Además, si el chat GPT no reconoce dicho producto, devolverá la respuesta {no-encontrado}. Vamos a completar el código que devolverá un array con la descripción del producto listo:
// Comprobando si la respuesta está configurada
if (isset($response_data[‘choices’][0][‘message’])) {
// Comprobando si la respuesta no es {no-encontrado}
if ($response_data[‘choices’][0][‘message’][‘content’] !== ‘{no-encontrado}’) {
$result[‘contenido’] = $response_data[‘choices’][0][‘message’][‘content’];
}
$patrón = ‘/<[^>]*id=»product-title»[^>]*>(.*?)[^>]*>/’;
preg_match($patrón, $response_data[‘choices’][0][‘message’][‘content’], $matches_title);
// Comprobando si el título está configurado
if (!empty($matches_title)) {
$result[‘título’] = $matches_title[1];
}
$patrón = ‘/<[^>]*id=»product-summary»[^>]*>(.*?)[^>]*>/’;
preg_match($patrón, $response_data[‘choices’][0][‘message’][‘content’], $matches_summary);
// Comprobando si el resumen está configurado
if (!empty($matches_summary)) {
$result[‘resumen’] = $matches_summary[1];
}
return $result;
}
Ahora nuestra función recupera el nombre del producto, la descripción corta y la descripción completa de la respuesta del chat GPT y devuelve un array listo para guardar.
Ahora solo necesitamos guardar los datos obtenidos en los campos necesarios de PrestaShop. Para hacer esto, agregaremos un gancho llamado hookActionProductUpdate a nuestro módulo. Este gancho se ejecuta cuando actualizamos (editamos y guardamos) un producto. Por lo tanto, todo el código que especifiquemos en este gancho se ejecutará al presionar el botón «Actualizar» en el panel de edición del producto:
public function hookActionProductUpdate($params)
{
$product = $params[‘product’];
// Comprobando si la descripción ya está generada
if($product->descripción[1] !== ‘{gpt}’ && $product->descripción[1] !== ‘
{gpt}
‘) {
return;
}
$productTitle = $product->nombre[1]; // Obteniendo el nombre del producto
$descripciónGenerada = $this->generarDescripción($productTitle); // Generando la descripción
if ($descripciónGenerada !== null) {
if(!empty($descripciónGenerada[‘título’])) {
$product->nombre[1] = $descripciónGenerada[‘título’];
}
if(!empty($descripciónGenerada[‘resumen’])) {
$product->descripción_corta[1] = $descripciónGenerada[‘resumen’];
}
if(!empty($descripciónGenerada[‘contenido’])) {
$product->descripción[1] = $descripciónGenerada[‘contenido’];
}
}
$product->validarCampos();
}
Aquí especificamos que necesitamos generar una nueva descripción solo si, al presionar el botón Actualizar durante la edición, el texto {gpt} está presente en el campo de descripción. En todos los demás casos, la descripción permanecerá igual que antes de presionar el botón Actualizar.
Nuestro módulo está casi listo; solo necesitamos hacer un pequeño ajuste. No estoy seguro acerca de otras versiones de PrestaShop, pero en la versión 8.0.3, el gancho hookActionProductUpdate se llama en el método Product->update() después de guardar el producto. Por lo tanto, nuestros cambios no se guardarán. Por lo tanto, necesitamos crear un directorio en nuestro módulo llamado override/classes. En este directorio, cree un archivo llamado Product.php y anule el método update(). En este método, debemos colocar las llamadas de gancho antes de guardar el producto.
Nuestro módulo está listo; solo necesitamos agregar la instalación, desinstalación y crear una interfaz para la configuración del módulo, específicamente para ingresar la clave API y seleccionar el modelo. No entraré en detalles sobre esto en el artículo, pero puedes ver el módulo completo en GitHub.
https://github.com/sinenko/gptPrestaProductDescription
Ahora, después de instalar el módulo, vamos a su configuración e ingresamos nuestra clave API. Si no tienes acceso al modelo GPT-4, cambia el modelo a GPT-3.5. También es capaz de generar descripciones de productos, pero lo hace de manera menos efectiva.
Generación de descripciones de productos con inteligencia artificial
En la era digital en la que vivimos, la inteligencia artificial juega un papel fundamental en la automatización de tareas y la generación de contenido. Uno de los campos en los que esta tecnología ha demostrado ser especialmente útil es en la creación de descripciones de productos para sitios web de comercio electrónico. La posibilidad de utilizar modelos de lenguaje como GPT para generar textos descriptivos de manera rápida y eficiente ha revolucionado la forma en que las empresas presentan sus productos en línea.
Beneficios de la generación automática de descripciones de productos
La generación automática de descripciones de productos con inteligencia artificial ofrece una serie de ventajas para las empresas que buscan optimizar sus procesos de creación de contenido. En primer lugar, permite ahorrar tiempo y recursos al automatizar una tarea que solía requerir la intervención humana. Esto significa que los equipos de marketing y ventas pueden centrarse en actividades más estratégicas y creativas, en lugar de tener que dedicar horas a redactar descripciones de productos manualmente.
Mejora de la calidad y consistencia del contenido
Otro beneficio importante de utilizar inteligencia artificial para generar descripciones de productos es la mejora en la calidad y consistencia del contenido. Los modelos de lenguaje como GPT son capaces de producir textos coherentes y bien estructurados, evitando errores gramaticales y de ortografía comunes en las descripciones escritas por humanos. Esto garantiza que la información presentada sea precisa y fácil de entender para los clientes, lo que a su vez puede aumentar la confianza y la satisfacción del usuario.
Aplicaciones adicionales de la generación de contenido automático
Además de la creación de descripciones de productos, la inteligencia artificial también puede utilizarse para otras aplicaciones relacionadas con la generación de contenido en el comercio electrónico. Por ejemplo, es posible desarrollar un módulo que traduzca automáticamente las descripciones de productos a diferentes idiomas, lo que facilita la expansión internacional de una empresa. Asimismo, se pueden implementar herramientas de corrección automática que identifiquen y corrijan errores en las descripciones existentes, mejorando así la precisión y la calidad del contenido en el sitio web.
Innovación en la gestión de contenidos en línea
La automatización de la generación de descripciones de productos abre nuevas posibilidades para la gestión de contenidos en línea. Los sistemas basados en inteligencia artificial pueden ayudar a las empresas a mantener sus catálogos actualizados de manera eficiente, agregando nuevas descripciones y eliminando productos obsoletos de forma automática. Esto no solo ahorra tiempo a los equipos de trabajo, sino que también garantiza que la información presentada a los clientes sea siempre relevante y precisa.
Transformación digital en el comercio electrónico
En resumen, la generación automática de descripciones de productos con inteligencia artificial está revolucionando la forma en que las empresas gestionan su contenido en línea. Esta tecnología no solo mejora la eficiencia y la calidad de las descripciones de productos, sino que también abre nuevas oportunidades para la innovación en el comercio electrónico. Al aprovechar el poder de la inteligencia artificial, las empresas pueden mejorar la experiencia del cliente, aumentar las ventas y mantenerse competitivas en un mercado cada vez más digitalizado.
Por favor, proporciona el contenido que deseas que sea reescrito.
