¿Existe alguna API abierta para obtener temas similares en Discourse?

Necesito una API que me proporcione temas similares.
Mi requisito: si tengo un título de tema, obtendré los temas similares.

Verás que si solicitas el JSON de un tema, este tiene una sección llamada suggested_topics.

https://meta.discourse.org/t/144806/2.json:

Obtener desde el título hasta el ID del tema se puede hacer mediante búsqueda:

https://meta.discourse.org/search.json?q=title%3A%22Is%20there%20is%20any%20open%20API%20for%20getting%20similar%20topic%20in%20discourse%22&page=1

6 Me gusta

Creo que deberías usar: para que los artículos relacionados estén vinculados entre sí. De título a ID de tema se puede hacer mediante búsqueda:

Funciona en meta.discourse pero no en mi foro. Nuestro foro es forum.crio.do
Si voy a forum.crio.do/t/8497/2.json, no hay resultados.

Parece ser una comunidad privada, por lo que las solicitudes no autenticadas no devolverán ningún dato. Funciona en Meta utilizando https://meta.discourse.org/t/144806/2.json porque el contenido es de acceso público.

Consulta Discourse REST API Documentation y Use the Discourse API ruby gem para obtener más información sobre cómo autenticar tus solicitudes con una api_key y api_username.

1 me gusta

Ese tema específico solo tiene un post, por lo que no existe el post 2.
Debe ser https://forum.crio.do/t/8497/1.json

Siempre puedes usar t/<topic_id>/1.json

Y, de hecho, necesitas usar una clave de API, ya que tienes una comunidad cerrada.

2 Me gusta

¿Funcionaría esto también de alguna manera para texto arbitrario proporcionado desde alguna fuente externa? En otras palabras, ¿puedo usar la función de coincidencia de similitud existente para devolver una lista de temas potenciales existentes basados en el texto proporcionado a la API, en lugar de basarse en un tema real y existente que deba especificarse?

Perdona si es una pregunta tonta. No soy desarrollador, pero estoy recopilando información antes de hablar con uno para una solicitud de función que estoy considerando. La idea es conectar, por ejemplo, Intercom (aunque en este caso una alternativa de código abierto) con un foro de Discourse, de modo que cuando alguien escriba una pregunta en el cuadro de chat, pueda buscar coincidencias potenciales de temas en Discourse y proporcionarlas como posibles lugares para encontrar sus respuestas o dirigir sus preguntas. Similar a como Intercom ya puede acceder a una base de conocimientos para ofrecer respuestas potenciales.

Cualquier cosa en Discourse puede automatizarse porque Discourse es una aplicación de JavaScript, no una “página web” tradicional. En este caso, replicarías las acciones de la interfaz de usuario que realizas desde la página de búsqueda avanzada, así:

1 me gusta

Sí, pensé que podría ser así. ¿Entonces, esencialmente, la funcionalidad de Temas Similares en la vista previa del compositor es como una búsqueda normal, pero pasando el contenido del tema del usuario como criterio de búsqueda?

En mi caso de uso, pasaría el contenido del mensaje del usuario a la función de búsqueda normal y devolvería X número de coincidencias como posibles temas relevantes. (La terminología que estoy usando puede no ser del todo correcta aquí, solo necesito saber si la idea básica es correcta :grinning_face_with_smiling_eyes:)

1 me gusta

Usa el inspector web, como se detalla en ese tema, para observar lo que ocurre mientras escribes en el editor y activas el diálogo de temas similares sugeridos.

Creo que es materialmente diferente de la búsqueda de sitio “normal”, ya que marca la búsqueda como “dame cualquier cosa que coincida con cualquiera de estos términos, y usa la frecuencia o las coincidencias múltiples, etc., para ordenar los resultados”.

2 Me gusta

¡Gracias! Realicé algunas pruebas antes de tu respuesta y noté que los resultados de búsqueda y los temas similares difieren un poco, lo cual es interesante. Con esta información debería ser suficiente para poder argumentar a favor de Discourse ante el grupo con el que estoy conversando.