Existe-t-il une API ouverte pour obtenir des sujets similaires dans Discourse ?

J’ai besoin d’une API qui me propose des sujets similaires.
Ma requirement : Si j’ai un titre de sujet, je dois obtenir des sujets similaires.

Vous constaterez que si vous demandez le JSON d’un sujet, il contient une section appelée suggested_topics.

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

L’accès, du titre à l’ID du sujet, peut être réalisé via la recherche :

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

Je pense que vous devriez utiliser : afin que les articles connexes soient liés entre eux. De l’intitulé à l’ID du sujet, cela peut être fait à l’aide de la recherche :

Cela fonctionne sur meta.discourse, mais pas sur mon forum. Notre forum est forum.crio.do
Si j’essaie forum.crio.do/t/8497/2.json, aucun résultat n’est affiché.

Il semble que ce soit une communauté privée, de sorte que les requêtes non authentifiées ne renverront aucune donnée. Cela fonctionne sur Meta avec https://meta.discourse.org/t/144806/2.json car le contenu est accessible publiquement.

Consultez Discourse REST API Documentation et Use the Discourse API ruby gem pour plus d’informations sur l’authentification de vos requêtes avec une api_key et un api_username.

Ce sujet spécifique ne contient qu’un seul message, donc il n’existe pas de message 2.
Il faut utiliser https://forum.crio.do/t/8497/1.json

Vous pouvez toujours utiliser t/<topic_id>/1.json.

Et effectivement, vous devez utiliser une clé API puisque vous avez une communauté privée.

Cela fonctionnerait-il également pour du texte arbitraire fourni par une source externe ? En d’autres termes, puis-je utiliser la fonction de correspondance de similarité existante pour renvoyer une liste de sujets potentiels existants en fonction du texte fourni à l’API, plutôt que sur la base d’un sujet réel et existant qui doit être spécifié ?

Désolé si c’est une question naïve. Je ne suis pas développeur, mais je rassemble des informations avant de discuter avec un développeur d’une fonctionnalité que j’envisage. L’idée est de connecter, par exemple, Intercom (bien que dans ce cas une alternative open source) à un forum Discourse, afin que lorsqu’une personne tape une question dans la boîte de chat, le système puisse rechercher des correspondances potentielles de sujets Discourse et les proposer comme des endroits possibles pour trouver des réponses ou orienter ses questions. Similaire à la façon dont Intercom peut déjà accéder à une base de connaissances pour proposer des réponses potentielles.

En fait, tout ce qui se trouve dans Discourse peut être automatisé, car Discourse est une application JavaScript et non une « page web » traditionnelle. Dans ce cas, vous reproduisez les actions de l’interface utilisateur que vous effectuez depuis la page de recherche avancée, comme suit :

Oui, je pensais bien que cela pourrait être le cas. Donc, essentiellement, la fonctionnalité « Sujet similaire » dans l’aperçu de l’éditeur est tout comme une recherche normale, mais en transmettant le contenu du sujet de l’utilisateur comme critère de recherche ?

Dans mon cas d’utilisation, je transmettrais le contenu du message de l’utilisateur à la fonction de recherche normale et renverrais X résultats en tant que sujets potentiellement pertinents ? (La terminologie que j’utilise n’est peut-être pas tout à fait exacte ici, je dois simplement savoir si l’idée de base est correcte :grinning_face_with_smiling_eyes:)

Utilisez l’inspecteur web, comme détaillé dans ce sujet, pour observer ce qui se produit lorsque vous tapez dans l’éditeur et déclenchez la boîte de dialogue des sujets similaires suggérés.

Je pense que cela est fondamentalement différent d’une « recherche de site » normale, car elle marque la recherche comme « donnez-moi tout ce qui correspond à l’un de ces éléments, et utilisez la fréquence / les correspondances multiples, etc. pour ordonner les résultats ».

Merci ! J’ai fait quelques tests avant votre réponse et j’ai effectivement remarqué que les résultats de recherche et les sujets similaires présentaient quelques différences, ce qui est intéressant. Cela devrait suffire à me permettre de défendre l’adoption de Discourse auprès du groupe avec lequel je suis en discussion.