diciembre 20, 2022 Rafa Villaplana

Automatizar las descripciones de los productos en un ecommerce

Automatizar las descripciones de los productos en un ecommerce

Si tienes un ecommerce, uno de los puntos más importantes es detallar las características de los productos para que los usuarios tengan toda la información sobre dicho producto y puedan elegir el que mejor se adapte a sus necesidades.

Para un ecommerce pequeño, rellenar esas características de los productos puede que no te lleve mucho tiempo, pero para ecommerce con miles de productos es inviable poder rellenar todas estas características de forma manual. Si, además, se suma que tienes un feed de productos con detalles que el fabricante comparte con más proveedores, te encuentras con montón de información que va a estar duplicada en Google, y seguramente no llegue a indexar en los buscadores.

Así que lo mejor que puedes hacer es automatizar estos detalles de productos, para que mediante un script puedas generar un resumen sobre cada producto y un listado de características.

Para ello, he creado un script en Python que mediante la librería de OpenAI vaya generando un resumen de cada producto junto con un listado de características. De esta forma estarás generando contenido único, que seguramente te ayude a indexar y dejarás de perder tiempo rellenando estas características de forma manual.

Este mismo script se podría usar también para automatizar la generación de las metadescription o cualquier campo que necesitemos a nivel de SEO.

import os
import openai
import time
import openpyxl
from openpyxl import *
from random import randrange, choice


def load_api():
    path = 'C:\\Users\\rafavillaplana\\Downloads\\products_description\\api_key_openai.txt'
    archivo = open(path,'r')
    api_key = archivo.read()
    return api_key


def summarize_description(producto):
    prompt = "Escribe un resumen sobre las característica del producto \"" + producto +"\""

    response = openai.Completion.create(
        engine="text-curie-001",
        prompt=prompt,
        temperature=1,
        max_tokens=750,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )
    return response.choices[0].text

def list_features_description(producto):
    prompt = "Escribe un listado de las característica del producto \"" + producto +"\""

    response = openai.Completion.create(
        engine="text-curie-001",
        prompt=prompt,
        temperature=1,
        max_tokens=500,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )
    return response.choices[0].text


if __name__ == "__main__":
    api_key = load_api()
    openai.api_key = api_key
    

    print ('Abriendo archivo de productos')
    path = 'C:\\Users\\rafavillaplana\\Downloads\\products_description\\datafeed_productos.xlsx'
    wb = openpyxl.load_workbook(filename = path)
    
    print ('Seleccionar pestaña de productos')
    sheet_ranges = wb["datafeed_products"]

    #Recorrer listado de productos
    for i in range(2, 1000):
        print ('Leyendo nombre del producto')
        product_name = sheet_ranges[i][1]
        estado = sheet_ranges[i][15]
        if estado.value == "FINAL":
            break
        else:
            print('+++Generando resumen del producto:' + str(product_name.value))
            generated_description = summarize_description(product_name.value)
            generated_list_features=list_features_description(product_name.value)
            product_description=generated_description + generated_list_features
                        
            print('+++Guardando el resumen')
            sheet_ranges.cell(row=i, column=3, value=product_description.lstrip())
            #Guardar en el excel
            wb.save(path)

En el fichero api_key_openai.txt tendréis que guardar vuestra API de OpenAI para poder realizar las peticiones al modelo. En las 2 funciones summarize_description y list_features_description se puede modificar la variable prompt con la consulta que queráis hacer a la API de OpenAI. Los parámetros engine, temperature y max_tokens son los más importantes, ya que podemos definir el modelo a usar, la precisión de los textos generados y la longitud. Lo mejor es ir probando valores para encontrar la configuración que se ajuste a tus necesidades.

Los precios de los tokens según el modelo de inteligencia artificial que elijas son los siguientes:

  • Ada ($0.0004  / 1K tokens)
  • Babbage ($0.0005  / 1K tokens)
  • Curie ($0.0020  / 1K tokens)
  • Davinci ($0.0200  / 1K tokens)

Teniendo en cuenta que 1000 tokens son alrededor de 750 palabras, puedes apreciar que el precio de generar textos con algunos modelos es muy barato.

El resto del código simplemente abre un fichero .xlsx, recorre los productos del feed y va generando el resumen junto con un listado de características para terminar guardando los datos.

Si te ha parecido interesante para automatizar las características de los productos, comparte con tus compañeros y si tenéis alguna idea de mejora para el script os leo en los comentarios.

Deja una respuesta

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