Discourse 中是否有获取相似主题的开放 API?

我需要提供一个相似主题 API。我的需求是:如果我有一个主题标题,就能获取相似的主题。

您会看到,如果您请求某个主题的 JSON 数据,其中包含一个名为 suggested_topics 的部分。

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

从标题到主题 ID 的查询可以通过搜索实现:

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

我认为你应该使用:以便相关文章彼此关联。从标题到主题 ID 可以通过搜索实现:

它在 meta.discourse 上可以工作,但在我的论坛上不行。我们的论坛是 forum.crio.do。如果我访问 forum.crio.do/t/8497/2.json,则没有结果。

这似乎是一个私有社区,因此未经身份验证的请求不会返回任何数据。在 Meta 上,使用 https://meta.discourse.org/t/144806/2.json 可以正常工作,因为内容是公开可见的。

有关使用 api_keyapi_username 对请求进行身份验证的更多信息,请参阅 Discourse REST API Documentationhttps://meta.discourse.org/t/using-the-discourse-api-ruby-gem/17587。

该特定主题只有一篇帖子,因此不存在第 2 篇帖子。
它应该是 https://forum.crio.do/t/8497/1.json

你始终可以使用 t/<topic_id>/1.json

确实,由于你有一个封闭社区,因此需要使用 API 密钥。

这对于从外部来源传入的任意文本是否也能以某种方式工作?换句话说,我能否利用现有的相似度匹配函数,根据提供给 API 的文本返回潜在现有主题列表,而不是必须指定一个实际存在的主题?

抱歉如果这是个愚蠢的问题。我不是开发者,但在考虑提出功能请求之前,我想先收集一些信息。这个想法是将例如 Intercom(在此情况下是一个开源替代方案)与 Discourse 论坛连接起来,这样当有人在聊天框中输入问题时,系统可以查找潜在的 Discourse 主题匹配项,并将其作为寻找答案或提出问题的可能途径提供给他们。这类似于 Intercom 目前访问知识库以提供潜在答案的方式。

实际上,Discourse 中的任何功能都可以自动化,因为 Discourse 是一个 JavaScript 应用,而非传统的“网页”。在这种情况下,您可以复现您在高级搜索页面上执行的用户界面操作,如下所示:

是的,我也觉得可能是这样。那么,编辑器预览中的“相似主题”功能本质上就是普通搜索,只是将用户主题的内容作为搜索条件传入?

在我的使用场景中,我会将用户消息的内容传入普通搜索功能,然后返回 X 条结果作为可能相关的主题?(我使用的术语可能不太准确,我只需要确认这个基本思路是否正确 :grinning_face_with_smiling_eyes:

请按照该主题中的详细说明,使用网页检查器,观察在撰写内容并触发“推荐相似主题”对话框时发生的情况。

我认为它确实与“常规”网站搜索有实质性区别,因为它将搜索标记为“给我任何匹配其中任意项的结果,并根据频率/多次匹配等因素对结果进行排序”。

谢谢!在你回复之前,我已经做了一些测试,确实注意到搜索和类似主题的结果略有不同,这很有趣。不过,这些信息应该足以让我向正在讨论的群体证明使用 Discourse 的价值了。