È possibile realizzare un'automazione come questa con Discourse AI oggi?

C’è un’attività che svolgiamo oggi e in cui sono riuscito a fare buoni progressi automatizzandola utilizzando n8n, ma mi chiedo se sia possibile farlo nativamente con Discourse.

Abbiamo una categoria di bozze in cui i product marketing manager scrivono gli annunci di prodotto da inviare sui loro prodotti. Quando creano quella bozza, esaminiamo il nome del prodotto, la versione, se si tratta di una release major/minor/patch. Prendiamo anche il corpo del loro contenuto di annuncio e lo riassumiamo con un LLM per una descrizione del contenuto di 4-7 parole.

Quindi lo usiamo per creare il banner dell’annuncio in Adobe, così:

Ritengo che questo possa essere fatto da un LLM e da una logica tradizionale:

  • Lo sfondo è di una sola tonalità per tipo di annuncio e ci sono quattro varianti di ogni colore: ne selezioniamo casualmente una.
  • Il nome del prodotto e la versione vengono inseriti nelle caselle in alto
  • La descrizione al centro del corpo
  • Utilizziamo https://storyset.com/ per creare rapidamente un’illustrazione da mettere a destra.

Ritengo di avere un buon approccio per farlo con n8n, ma mi chiedo se potrebbe essere fatto nativamente con Discourse AI e altri strumenti?

3 Mi Piace

La persona del Designer, utilizzando l’eccellente nuovo modello GPT Image 1, è in grado di fare cose come questa:

Penso che potresti creare qualcosa utilizzando una persona personalizzata e gli strumenti giusti per ottenere molto di questo, di sicuro.

4 Mi Piace

Nota per l’uso di strumenti personalizzati, purché esistano API REST adeguate è possibile integrarle facilmente, ad esempio questo è come mi integro con la generazione di immagini flux:

const apiKey = "password";
const model = "black-forest-labs/FLUX.1.1-pro";

let prompt;

function invoke(params) {
  let seed = parseInt(params.seed);
  if (!(seed > 0)) {
    seed = Math.floor(Math.random() * 1000000) + 1;
  }

  let height = parseInt(params.height);
  if (!height || height < 256 || height > 1440) {
      height = 768;
  }
  let width = parseInt(params.width);
  if (!width || width < 256 || width > 1440) {
      width = 1024;
  }
  
  width = width - (width % 32);
  height = height - (height %32);

  prompt = params.prompt;
  const negative_prompt = params.negative_prompt || "";
  const body = {
    model: model,
    prompt: prompt,
    width: width,
    height: height,
    steps: 10,
    n: 1,
    seed: seed,
    negative_prompt: negative_prompt,
    response_format: "b64_json",
  };

  const result = http.post("https://api.together.xyz/v1/images/generations", {
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });
  
  if (result.status !== 200) {
      return { error: true, body: result.body };
  }

  const base64Image = JSON.parse(result.body).data[0].b64_json;
  const image = upload.create("generated_image.png", base64Image);
  const raw = `
![${prompt}](${image.short_url})
`;
  
  if (!params.show_to_user === false) {
     chain.setCustomRaw(raw);
  }

  return { result: "Image generated successfully", prompt: prompt, url: image.url, seed: seed, negative_prompt: negative_prompt };
}

function details() {
  return prompt;
}

Puoi vedere il post HTTP e il parsing dell’immagine base 64 nell’esempio.

5 Mi Piace

Se viene fornito il corpo di un post, l’onere di trasformare il contenuto di quel corpo in parametri validi ricade su Discourse AI per leggere il contenuto e quindi creare l’oggetto della richiesta? O il contenuto grezzo dovrebbe essere passato allo strumento e l’onere per un LLM di analizzarlo per i dati necessari per costruire un input corretto per la sua chiamata API esiste lì?

1 Mi Piace

Sì, in quel caso lo strumento ha già un’API per leggere i post, quindi puoi semplicemente passare un ID.

2 Mi Piace

Potresti indicarmi per caso la documentazione relativa a questo?

Mi scuso per la risposta in ritardo, è complicato, la nostra documentazione è in continua evoluzione e la superficie dell’API cresce settimanalmente.

Questo tipo di tecnica fornisce un chilometraggio accurato e aggiornato, ma penso che dovremo aspettare un po’ affinché tutte le API si stabilizzino prima di mettere le cose per iscritto:

2 Mi Piace