Una Tienda Online Multilingüe de Prestashop Utilizando ChatGPT

Tienda Online Multilingüe en Prestashop con ChatGPT

Hoy vamos a ver el ejemplo del motor gratuito Prestashop para traducir contenido utilizando la red neuronal generativa ChatGPT4.

Para el ejemplo, utilizaremos la versión 1.7.8.6 de Prestashop.

Primero, en el directorio /modules/ , crearemos un directorio con el nombre de nuestro módulo; yo le llamaré “productlocal.”

En este directorio, crearemos un archivo .php con el nombre de nuestro módulo. En mi caso, es: productlocal.php.

En este archivo, crearemos la clase del módulo:

Esta es una clase de plantilla para un módulo de PrestaShop. En el constructor de la clase, añadimos los parámetros “api_key” y “model,” donde se almacenarán la clave de API de OpenAI y la versión del modelo ChatGPT elegido. Si tienes acceso a ChatGPT 4, establece el valor de la variable $this->model = "gpt-4". Si no tienes acceso, utiliza el modelo “gpt-3.5-turbo“. También traduce bien el texto y es mucho más económico.

Precios:

GPT-3.5-turbo $0.002/1,000 tokens

GPT-4 $0.06/1,000 tokens de comandos $0.12/1,000 tokens de respuesta

Para obtener una clave de API, necesitas ir a este enlace y registrarte.

Después del registro, necesitas crear una nueva clave de API y guardarla. Esto se especificará en la configuración del futuro módulo.

Después de crear la clave, puedes cargar saldo en tu cuenta de OpenAI. Si estás utilizando el modelo GPT-3.5-turbo, $5 deberían ser suficientes para traducir alrededor de 600-1,000 productos, dependiendo de la longitud de la descripción.

Para realizar una solicitud a la API, necesitamos enviar una solicitud POST en formato JSON a la siguiente URL del siguiente tipo:

Volvamos a escribir el módulo. Lo haremos de manera que puedas traducir la descripción directamente mientras editas el producto.

Para probar nuestro módulo, añadiré varios idiomas a mi Prestashop. Para ello, iré al menú “Internacional->Localización->India” y luego hacer clic en el botón “Importar“.

Después de eso, se agregarán los idiomas Tamil, Hindi y Bengalí a tu sistema.

Ahora, al editar un producto, tienes la opción de varios idiomas:

Ahora necesitamos añadir un botón a la interfaz de edición del producto. Cuando se presione este botón, nuestro módulo enviará una solicitud a la API de OpenAI. Primero, diseñemos nuestro botón. En el directorio con tu módulo, crea un archivo de plantilla .tpl. Lo llamaré translate_button.tpl.

Después de eso, añade el siguiente código:

Este es un botón simple que, al presionarlo, envía una solicitud a la dirección (controlador) del controlador con el ID del producto y el idioma seleccionado, después de lo cual el controlador proporciona una respuesta. Aún no tenemos un controlador; lo crearemos un poco más adelante. Tomará el id_product y el language_code, enviará la descripción del producto a ChatGPT, luego guardará los datos recibidos y proporcionará una respuesta.

Ahora, para que este botón aparezca en la página de edición del producto, necesitamos agregar un gancho a nuestra clase de módulo que se llamará al abrir la página de edición del producto.

Para esto, en el archivo productlocal.php, en la clase productlocal , agrega el siguiente método:

Pero eso no es suficiente. Para establecer correctamente los derechos de acceso a nuestro módulo para diferentes usuarios, necesitamos crear una nueva pestaña (elemento de menú en el panel de administración) para nuestro módulo, y no es necesario que esta pestaña se muestre.

Para crear una nueva pestaña al instalar el módulo, necesitas agregar los siguientes métodos a la clase productlocal :

También ahora necesitamos modificar los métodos de instalación y desinstalación:

Ahora, después de instalar nuestro módulo, en la página de edición del producto, deberíamos ver el gancho de nuestro módulo:

Haz clic en el botón “configurar” y después de eso, se mostrará nuestro botón:

Genial, ya tenemos el botón. Al hacer clic, JS envía una solicitud al controlador. Ahora necesitamos crear el controlador. Si estuviste atento, habrás notado al principio del artículo que en el código del constructor de nuestra clase de módulo, creé un parámetro:

AdminProductlocal será el nombre de nuestro controlador. También especificé este controlador en el código al crear la pestaña.

Para crear un nuevo controlador para el panel de administración, necesitamos crear un directorio controllers/admin/ en el directorio con nuestro módulo.

En este directorio, creamos un archivo con el nombre de nuestro controlador, AdminProductlocalController.php. Ten en cuenta que el archivo del controlador debe tener el mismo nombre que el nombre del controlador, pero con la palabra “Controller” agregada al final.

El código para nuestro controlador será:

Ahora, en nuestra clase de módulo, lo único que queda es crear el método translateDescription , que tomará los parámetros de entrada id_product y language_code , traducirá la descripción del producto y devolverá la respuesta.

Pero primero, creemos un método que intercambie datos con la API de OpenAI. Hagamos que este método tome el texto, el tipo de texto y el idioma para traducirlo en entradas y devuelva el texto traducido como salida.

Para traducir el nombre del producto, utilizaremos la siguiente solicitud de indicación a ChatGPT:

Y para traducir la descripción corta y completa del producto, utilizaremos la siguiente solicitud de indicación a ChatGPT:

Especificamos específicamente a ChatGPT que responda con {not-found} o {already-done} en caso de errores para que sea más fácil procesar respuestas incorrectas más adelante.

Ahora nuestro método toma el texto y el idioma como entrada y, según el tipo de texto, construye una indicación y envía una solicitud a la API. Luego devuelve el texto traducido.

Es hora del método final y principal al que hace referencia nuestro controlador, es decir, translateDescription.

Este método tomará el id_product del producto editado y el idioma, enviará solicitudes de traducción para el nombre del producto y las descripciones corta y completa utilizando el método requestTranslateToChatGPT , luego reemplazará el nombre, guardará el producto y proporcionará un resultado de su operación a nuestro controlador. Alternativamente, devolverá un error como respuesta.

El código para el método translateDescription en nuestro caso se verá algo así:

Nuestro módulo está listo para funcionar.

Queda un toque pequeño pero opcional: podemos agregar la capacidad de configurar y cambiar los parámetros de nuestro módulo a través del panel de administración, específicamente el api_key y el model. Para hacer esto, necesitamos agregar un par de métodos a nuestro módulo: displayForm — que muestra el formulario para editar los parámetros y el método getContent , que guarda los parámetros al editarlos.

Ahora, como prueba, instalemos nuestro módulo, seleccionemos el idioma hindi y hagamos clic en el botón “Traducir descripción“. Después de una larga espera, verás el mensaje “Producto traducido correctamente“.

Ahora debes actualizar la página. Y después de actualizarla, verás la descripción traducida.

Si no quieres actualizar la página manualmente cada vez, puedes agregar el código JS para actualizar, location.reload();, al archivo translate_button.tpl.

Eso es todo. Y como siempre, puedes ampliar la funcionalidad de tu módulo, por ejemplo, haciendo que ChatGPT verifique tu texto en busca de errores o cambiando la descripción para que sea más corta o más larga. Para esto, solo necesitas modificar las solicitudes de indicación.

Puedes ver el código completo del módulo en el repositorio de GitHub.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Nueva herramienta para construir y reparar carreteras y puentes Inteligencia Artificial

En Pennsylvania y en otros lugares, se está aplicando la inteligencia artificial a la infraestructura envejecida del ...

Inteligencia Artificial

Completado de nubes de puntos con modelos de difusión preentrenados de texto a imagen

¿Alguna vez has oído el término nube de puntos? Es una representación fundamental de datos en 3D, que consiste en pun...

Inteligencia Artificial

4 gigantes tecnológicos - OpenAI, Google, Microsoft y Anthropic se unen para la IA segura

En un movimiento histórico, cuatro de los nombres más importantes en el mundo de la inteligencia artificial se unen p...

Inteligencia Artificial

Una técnica de mapeo de posturas podría evaluar de forma remota a pacientes con parálisis cerebral

El método de aprendizaje automático funciona en la mayoría de los dispositivos móviles y podría ampliarse para evalua...