Temas relacionados con Discourse AI

:bookmark: Esta guía explica cómo habilitar y configurar la función de temas relacionados del plugin Discourse AI.

:person_raising_hand: Nivel de usuario requerido: Administrador

Temas relacionados ayuda a los usuarios a descubrir contenido relevante sugiriendo temas semánticamente similares basados en el que están leyendo actualmente. Esto mejora la exploración de contenido y aumenta la participación del usuario.

Características

  • Similitud textual semántica: Va más allá de la coincidencia de palabras clave para encontrar contenido verdaderamente relacionado.
  • Alternar entre temas “Sugeridos” y “Relacionados”.
  • Disponible tanto para usuarios anónimos como para usuarios registrados.

Habilitar temas relacionados

:information_source: La función de temas relacionados está activada por defecto para todos los clientes alojados en Discourse con el plugin Discourse AI habilitado.

Prerrequisitos

Temas relacionados requiere Embeddings para funcionar.

Si está en nuestro hosting, Embeddings se proporciona utilizando un modelo de código abierto. No se requiere configuración adicional.

Las instancias autoalojadas necesitarán proporcionar sus propios Embeddings a través de un proveedor de terceros.

Configuración

  1. Vaya a Administración → Configuración → Plugins
  2. Busque “discourse-ai” y asegúrese de que esté habilitado.
  3. Habilite ai_embeddings_enabled para activar Embeddings.
  4. Habilite ai_embeddings_semantic_related_topics_enabled para activar la función Temas Relacionados.

Configuración adicional

Dependiendo de su configuración, es posible que deba ajustar la siguiente configuración:

  • Para sitios que no son en inglés (alojados en Discourse o autoalojados con su propio modelo):
    Establezca ai embeddings model en multilingual-e5-large.
  • Para Cloudflare Workers AI:
    Establezca ai embeddings model en bge-large-en.
  • Para OpenAI o Azure OpenAI:
    Establezca ai embeddings model en text-embedding-ada-002.

Preguntas frecuentes técnicas

Expandir para ver un diagrama de la arquitectura de Temas Relacionados

La descripción general es que, cuando se crea/actualiza un tema, esto es lo que sucede:

sequenceDiagram
    Usuario->>Discourse: Crea tema
    Discourse-->>Embedding Microservice: Genera embeddings
    Embedding Microservice-->>Discourse: 
    Discourse-->>PostgreSQL: Almacena Embeddings 

Y durante la visita a un tema:

sequenceDiagram
    Usuario->>Discourse: Visita tema
    Discourse-->>PostgreSQL: Consulta temas más cercanos
    PostgreSQL-->>Discourse: 
    Discourse->>Usuario: Presenta temas relacionados 

¿Cómo funciona Temas Relacionados?

  • Cuando un usuario visita un tema, Discourse consulta la base de datos para encontrar los temas semánticamente más similares basándose en sus representaciones incrustadas. Estos temas relacionados se presentan al usuario, lo que fomenta una mayor exploración del contenido de la comunidad.

¿Cómo se procesan los datos de los temas/publicaciones?

  • Para los sitios alojados en Discourse, los datos se procesan dentro de nuestro centro de datos virtual privado seguro. Para los sitios autoalojados, el procesamiento de datos depende del proveedor de terceros que haya elegido.

¿Dónde se almacenan los datos de los embeddings?

  • Los datos de los embeddings se almacenan en su base de datos de Discourse, junto con otros datos del foro como temas, publicaciones y usuarios.

¿Qué modelo semántico se utiliza y cómo se entrenó?

  • Los sitios alojados en Discourse utilizan el modelo all-mpnet-base-v2 por defecto. Este modelo funciona bien tanto para comunidades especializadas como generales. Los sitios autoalojados pueden utilizar modelos diferentes según el proveedor elegido.
14 Me gusta

Algo que vale la pena vigilar.

Al revisar muchas publicaciones en Temas relacionados para un sitio en inglés (OpenAI), empiezo a notar que los temas en español tienden a agruparse y sospecho que si se tradujeran primero al inglés, cada publicación tendría un vector diferente y, por lo tanto, se agruparía con otras publicaciones. :slightly_smiling_face:



Un beneficio secundario de esta función para los moderadores es verificar que las categorías de los temas enumerados en Temas relacionados sean correctas.

A medida que reviso cada nueva publicación, también reviso los Temas relacionados. Esto se está convirtiendo en una forma eficaz de identificar temas creados con la categoría incorrecta.

Para tu información: se observó una idea relacionada en esta solicitud de función.



Encuentra este tema cuando a menudo necesitas seguir un enlace que no es tan fácil de encontrar, así que lo anoto aquí.

2 Me gusta

Ese comportamiento está regido por el modelo, y parece ser un problema conocido:

Creo que el modelo OSS que recomendamos para sitios multilingües hace un mejor trabajo en esto, pero aún necesitamos implementarlo para más clientes para validar esto.

2 Me gusta

No me deja habilitar esta opción:

¿Me falta algo aquí o Gemini por sí solo no es suficiente?

ACTUALIZACIÓN: Las instrucciones y la descripción del error pueden querer actualizarse para agregar que el modelo de embeddings de IA también debe actualizarse para que coincida con el proveedor, de lo contrario, ai_embeddings_enabled no se puede habilitar. A la descripción del parámetro le falta Gemini como opción.

1 me gusta

7 publicaciones se dividieron en un nuevo tema: “Errores de Net::HTTPBadResponse” en Gemini Embeddings

¿Qué debo rellenar aquí, por favor?

Quiero rellenar lo anterior, porque quiero habilitar la primera opción de las 4 que se muestran a continuación:

Si usas OpenAI, nada.

1 me gusta

Entonces esta primera opción (Módulo de Incrustaciones) me preocupa, no me deja habilitarla:

La mayoría de esos están vacíos. Pero ai embeddings discourse service api key es tu API de OpenAI y ai embeddings discourse service api endpoint es https://api.openai.com/v1/embeddings. El modelo debería ser text-embedding-3-large (claro, también puede ser small pero tiene algunos problemas).

1 me gusta

3 publicaciones se dividieron en un nuevo tema: Cómo hacer que se muestren tanto los temas sugeridos como los relacionados

¿Cuáles fueron tus resultados al comparar small y large? Sé que hay una diferencia en las dimensiones que afecta la precisión del modelo. La versión small es 5 veces más barata. ¿Es realmente inutilizable en el mundo real para la similitud de temas? Nuestro foro es 99% en inglés.

Me interesaría mucho saber más. ¿Podrías por favor explicar dónde se sitúa all-mpnet-base-v2 en comparación con los modelos de OpenAI para un sitio puramente en inglés?

Los embeddings son tan baratos que el precio no importa, a menos que haya una miríada de publicaciones cuando 0.01 centavos importan en los costos totales.

Pero, sinceramente… no vi ninguna diferencia. Y para mí, debido a que existe la posibilidad de que no pueda usar RAG y embeddings correctamente, ambos son igualmente inútiles. Sé que esto va en contra de la opinión pública, pero en mi sitio ese sistema simplemente no encuentra ni usa nada útil.

Probablemente provenga de los modelos de OpenAI, pero no tengo suficiente dinero para usar esas soluciones más profesionales.

1 me gusta

Estuve usando el modelo text-embedding-3-small antes de leer esto. ¿Es el text-embedding-ada-002 mucho mejor?

Ada es de la generación anterior

1 me gusta