¿Es posible hoy en día una automatización como esta con Discourse AI?

Hay una tarea que hacemos hoy en la que he podido progresar bastante en la automatización usando n8n, pero me pregunto si es posible de forma nativa con Discourse.

Tenemos una categoría de borradores donde los gerentes de marketing de productos redactan anuncios de productos que se enviarán sobre sus productos. Cuando crean ese borrador, miramos el nombre del producto, la versión, si es una versión principal/secundaria/de parche. También tomamos el cuerpo del contenido de su anuncio y lo resumimos con un LLM para obtener una descripción del contenido de 4 a 7 palabras.

Luego usamos eso para crear el banner de anuncio en Adobe, así:

Siento que esto podría hacerse con un LLM y algo de lógica tradicional:

  • El fondo es de un solo tono por tipo de anuncio y hay cuatro variaciones de cada color; simplemente seleccionamos uno al azar.
  • El nombre del producto y la versión se ingresan en los cuadros de la parte superior.
  • La descripción en el centro del cuerpo.
  • Usamos https://storyset.com/ para crear rápidamente una ilustración para poner a la derecha.

Creo que tengo un buen enfoque para hacer esto con n8n, pero me pregunto si se podría hacer de forma nativa con Discourse AI y otras herramientas.

3 Me gusta

La persona Diseñador, que utiliza el excelente modelo GPT Image 1, es capaz de hacer cosas como esta:

Creo que podrías implementar algo utilizando una persona personalizada y las herramientas adecuadas para lograr gran parte de esto, sin duda.

4 Me gusta

Nota para el uso de herramientas personalizadas, siempre que haya API REST adecuadas, puedes integrarlas fácilmente, por ejemplo, así es como me integro con la generación de imágenes de 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;
}

Puedes ver la publicación HTTP y el análisis de la imagen base 64 en el ejemplo.

5 Me gusta

Si se proporciona el cuerpo de una publicación, ¿la carga de convertir el contenido de ese cuerpo en parámetros válidos recae en Discourse AI para leer el contenido y luego crear el objeto de solicitud? ¿O se debe pasar el contenido sin procesar a la herramienta y la carga para que un LLM analice eso en busca de los datos necesarios para construir una entrada adecuada para su llamada API existe allí?

1 me gusta

Sí, en ese caso la herramienta ya tiene una API para leer publicaciones, por lo que simplemente puedes pasar un ID.

2 Me gusta

¿Podrías indicarme los documentos para esto por casualidad?

Disculpe la demora en responder, es complicado, nuestra documentación está evolucionando y la superficie de la API crece semanalmente.

Este tipo de técnica proporciona un kilometraje preciso y actualizado, pero creo que debemos esperar un poco a que toda la API se estabilice antes de dar cosas por sentado:

2 Me gusta