¿Cómo funciona la regeneración de resúmenes?

¿Alguien puede explicar las reglas para regenerar resúmenes? Hubo alguna discusión de que el personal puede regenerar resúmenes después de una hora, pero eso no es lo que estoy viendo. (No estoy seguro de lo que estoy viendo, parece inconsistente). Si hay una nueva publicación, ¿debería ofrecer la opción de regenerar? ¿Y a cualquiera, o solo al personal?

Después de experimentar, esto es lo que veo:

  • Para temas con menos de 100 publicaciones, el botón de regenerar se habilita inmediatamente solo para el personal.
  • Para temas con más de 100 publicaciones, el botón de regenerar no se habilita, incluso después de esperar una hora.

Incluso si el botón de regenerar se habilitara, no es un flujo de trabajo viable para que nuestro personal presione continuamente los botones, por lo que tentativamente planeo implementar un webhook que escuche nuevas publicaciones y regenere el resumen utilizando https://forum.example.com/discourse-ai/summarization/t/12345. Un cálculo rápido dice que costaría alrededor de $500 al año para nuestro foro. Me doy cuenta de que Discourse está tratando de protegerse contra un costo inesperadamente grande.

Hola @markschmucker:

Actualmente estamos trabajando en una estrategia de rellenado para los resúmenes de temas en DiscourseAI. Planeamos implementarla la próxima semana y te actualizaré aquí cuando esté lista.

4 Me gusta

Ya tenemos la función @markschmucker, puedes ajustarla a través de la configuración del sitio ai summary backfill maximum topics per hour.

Lo he configurado en 12 y en mi panel de Anthropic veo un evento cada 5 minutos, como se esperaba. Pero no puedo ver la carga útil desde ese panel. ¿Cómo puedo ver qué resumen está regenerando Discourse?

Todo está almacenado en la tabla ai_api_audit_logs. Si tienes Data Explorer, puedes usar la siguiente consulta:

SELECT
  *
FROM
  ai_api_audit_logs
ORDER BY
  id DESC
LIMIT
  100

Después de jugar con eso, parece que el rellenado genera resúmenes para algunos de los temas más recientes (¿parece que alrededor de 100 temas o temas que se actualizaron en las últimas semanas?).

Durante o después del ciclo de rellenado, si un tema con un resumen recibe una nueva publicación, su resumen no se actualiza automáticamente. (Si tiene menos de 100 publicaciones, hay un botón “Regenerar” que el personal puede presionar manualmente).

¿Cuándo debería actualizarse el tema con una nueva publicación?

Debería actualizarse en hasta 5 minutos después de que se publique una respuesta, al menos para temas normales con menos de 50 respuestas.

¿Tu comunidad está más orientada a los mega-temas?

cc @Roman

Ahora veo que hubo un fallo en el trabajo SummariesBackfill; alcancé un límite de tasa diario en Anthropic. Esa podría ser la razón por la que pareció detenerse después de quizás los 100 temas más recientes, y también por la que el tema actualizado no recibió un nuevo resumen.

Si no hubiera alcanzado un límite de tasa, ¿SummariesBackfill resumirá nuestros 60.000 temas? ¿Incluso aquellos que han estado inactivos durante años?

La mayoría de los temas tienen más de 100 respuestas. Tenemos 8 temas con más de 1000 respuestas.

Sí, se inicia cada 5 minutos para hacer un lote, priorizando los más recientes activos y omitiendo aquellos que ya tienen un resumen actualizado.

Si configuras tu límite máximo por hora para que sea mayor que la cantidad de temas con nueva actividad que tienes por hora, en promedio, eventualmente se completarán todos tus temas.

2 Me gusta

Solicitud de función: algo como ai summary backfill maximum age (resumen de IA, rellenos, edad máxima), para no incurrir en muchos costos al resumir temas antiguos sin actividad, digamos, en los últimos seis meses. Estimo que nos costaría $3,000 resumir los 60,000, la mayoría de los cuales no nos importan.

cc @Roman

Solo para confirmar, ¿estás usando haiku 3.5? Debería producir buenos resúmenes.

Estoy usando sonnet 3.5, sin ninguna buena razón. Haiku 3.5 debería reducir mucho los costos. Sin embargo, creo que la solicitud de funciones aún vale la pena considerarla.

1 me gusta

Sí, ciertamente.

Creo que podríamos crear un algoritmo de rellenado avanzado en automatización, ya que hay muchas opciones que podrías querer ajustar además de la edad.

  • Solo estas categorías
  • Contenido con más de X visualizaciones
  • Contenido con más de N me gusta
  • Contenido con respuestas aceptadas
  • Contenido más reciente que X

Agregar 10 configuraciones del sitio para esto abrumará a los usuarios.

2 Me gusta

Estoy de acuerdo con Mark. Si vamos a implementar esto para nuestro foro, no queremos que las publicaciones antiguas sin actividad nueva se vuelvan a resumir. La IA es demasiado costosa en este momento, considerando que los resúmenes son solo una pequeña parte de todas las herramientas de IA.

1 me gusta

Ahora existe ai summary backfill topic max age days, y su valor predeterminado es 30 días.

Los temas antiguos no se “resumen” a menos que haya actividad nueva.

3 Me gusta

Borré todos los resúmenes con AiSummaries.destroy_all en rails c y comencé una nueva ejecución con un LLM diferente, usando ai summary backfill topic max age days = 60. Al principio, establecí ai summary backfill maximum topics per hour demasiado alto, por lo que muchos de los temas más recientes fallaron debido a los límites de tasa. Eso fue mi error, pero esperaba que después de retroceder 60 días, comenzara un nuevo ciclo y retrocediera los temas fallidos. Sin embargo, no lo está haciendo; retrocedió 60 días y luego se detuvo.

El trabajo se está ejecutando correctamente cada 5 minutos, pero solo toma milisegundos, por lo que obviamente no encuentra nada que retroceder.

Estoy monitoreando el progreso (o la falta de él) con Data Explorer, usando las tablas ai_summaries y ai_api_audit_logs.

Si hago clic manualmente en el botón Resumir en un tema que no se retrocedió, genera un nuevo resumen, por lo que estoy conectado correctamente al proveedor de IA y los temas son “resumibles”.

No hay errores en /logs.

¿Ideas?

Encontré el problema. Está comparando ai summary backfill topic max age days con topic.created_at, no con updated_at. Creo que esto debería cambiarse a updated_at. Tengo muchos temas muy activos creados hace dos años que todavía reciben nuevas publicaciones cada semana, pero si uso una edad máxima de 90 días o incluso un año, esos temas no se resumirán.

Por favor, considere cambiar esto.

.where("topics.created_at > current_timestamp - INTERVAL '#{max_age_days.to_i} DAY'")

Tengo muchos temas de publicaciones únicas que se editan mucho (documentos), ¿podemos actualizar estos resúmenes si un tema se actualiza?

Sugiere cambiar el intervalo del trabajo de relleno de 5 minutos a 1 minuto si es posible. La mayoría(?) de los proveedores de IA tienen límites de tasa por minuto, por lo que si el trabajo se ejecutara cada minuto, se podrían realizar 5 veces más resúmenes sin exceder los límites de tasa por minuto.