JavaScript, HTML, CSS e... !
2 commenti

Testo creato con l'Intelligenza Artificiale con risparmio di Soldi!

Descrizioni Prodotti E-Commerce in Automatico con GTP3

Con uno script realizzato da Elliott Davidson è possibile scrivere automaticamente le descrizioni dei prodotti e-commerce con Open AI GTP3. Il link al suo articolo con il codice integrale è presente al seguente link.

Si tratta di uno script molto utile sebbene lo strumento non sia preciso al 100%, ma questo non dipende dallo script che invece permette di avere una valida bozza di descrizione dei prodotti, in poco tempo, su cui poter lavorare.

Ho apportato una modifica allo script in questione poiché si basa sulle formule per i Fogli Google che, per loro natura, ad ogni apertura della pagina si aggiornano effettuando una nuova chiamata al servizio. Dal momento che il servizio non è gratuito e il pagamento è in funzione al numero di chiamate, in caso di un numero elevato di prodotti il rischio è quello di spendere molti più soldi del necessario.

descrizione_prodotti_automatica_con_gpt3

Sotto il video dove spiego e mostro la semplicità di integrazione e il funzionamento dello script modificato:

Di seguito la mia modifica che, oltre ad aver italianizzato l'output, prevede un menu custom dal quale avviare lo script che effettua una chiamata per ogni riga contenente un nome di prodotto. La funzione si avvia solo quando l'operatore la esegue volontariamente e può essere interrotta in ogni momento, per cui il rischio di chiamate multiple o accidentali è scongiurato:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu').addItem('Genera Descrizione Prodotti', 'generateProductDescriptionOpenAI').addToUi();
}

function generateProductDescriptionOpenAI() {

  const API_KEY = "LA_TUA_API_KEY";
  var maxTokens = 150;
  var prompt = "scrivi una descrizione prodotto simpatica e accattivante di massimo " + maxTokens + " parole per ";
  var model = "text-davinci-003"

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var range = sh.getRange(1,1,sh.getLastRow(),1).getValues();
  var range_len = range.length;

  var current_row, product, model, request;
  
  for (var i=0; i<range_len; i++) {

    current_row = i+1;
    product = range[i][0];
    
    request = prompt + product + ":", temperature = 0

    // Set up the request body with the given parameters
    const requestBody = {
      "model": model,
      "prompt": request,
      "temperature": temperature,
      "max_tokens": maxTokens
    };

    // Set up the request options with the required headers
    const requestOptions = {
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + API_KEY
      },
      "payload": JSON.stringify(requestBody)
    };

    // Send the request to the GPT-3 API endpoint for completions
    const response = UrlFetchApp.fetch("https://api.openai.com/v1/completions", requestOptions);

    // Get the response body as a JSON object
    const responseBody = JSON.parse(response.getContentText());

    let description = responseBody.choices[0].text;

    sh.getRange(current_row,2,1,1).setValue(description);
    SpreadsheetApp.flush();

  }

  Browser.msgBox("Generazione descrizione dei prodotti completata!")
}

Il servizio GPT3 è di OpenAI e richiede di registrarsi per creare un account ed ottenere un'API_KEY da utilizzare all'interno del codice.

 

Tags

scrivi un commento

2 Commenti

  1. Tuesday, February 28, 2023 alle ore 12:25 Paolo

    Ciao, ho visto questa tua descrizione molto dettagliata...Ho però una domanda, dove posso modificare la cella da descrivere? Ammettiamo che sia da descrivere la cella 3 (C per excel) dove imposto questo parametro? Da restituire in cella 4. Grazie

    Rispondi a questo commento
  2. Tuesday, February 28, 2023 alle ore 12:26 Paolo

    Ciao, ho visto questa tua descrizione molto dettagliata...Ho però una domanda, dove posso modificare la cella da descrivere? Ammettiamo che sia da descrivere la cella 3 (C per excel) dove imposto questo parametro? Da restituire in cella 4. Grazie

    Rispondi a questo commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web