Existe alguma API aberta para obter tópicos semelhantes no Discourse?

Preciso de uma API que me forneça tópicos semelhantes.
Meu requisito: se eu tiver um título de tópico, receberei os tópicos semelhantes.

Você verá que, ao solicitar o JSON de um tópico, ele possui uma seção chamada suggested_topics.

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

Do título ao ID do tópico, é possível fazer isso usando a busca:

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

Acho que você deve usar: para que artigos relacionados estejam interligados. Do título ao ID do tópico, é possível fazer isso usando a pesquisa:

Funciona no meta.discourse, mas não no meu fórum. Nosso fórum é forum.crio.do
Se eu acessar forum.crio.do/t/8497/2.json, não há nenhum resultado.

Parece ser uma comunidade privada, então solicitações não autenticadas não retornarão dados. Funciona no Meta usando https://meta.discourse.org/t/144806/2.json porque o conteúdo é publicamente visível.

Veja Discourse REST API Documentation e Use the Discourse API ruby gem para mais informações sobre como autenticar suas solicitações com uma api_key e api_username.

Esse tópico específico tem apenas uma postagem, então não existe uma postagem 2.
O link correto é https://forum.crio.do/t/8497/1.json

Você sempre pode usar t/<topic_id>/1.json.

E, de fato, você precisa usar uma chave de API, já que sua comunidade é fechada.

Isso também funcionaria de alguma forma para texto arbitrário fornecido por uma fonte externa? Em outras palavras, posso usar a função de correspondência de similaridade existente para retornar uma lista de tópicos existentes potenciais com base no texto fornecido à API, em vez de basear-se em um tópico real e existente que precise ser especificado?

Desculpe se for uma pergunta ingênua. Não sou desenvolvedor, mas estou buscando reunir algumas informações antes de falar com um para um recurso que estou considerando. A ideia é conectar, por exemplo, o Intercom (embora, neste caso, uma alternativa de código aberto) a um fórum Discourse, para que, quando alguém digitar uma pergunta na caixa de chat, o sistema possa buscar correspondências potenciais de tópicos no Discourse e apresentá-las como possíveis locais para encontrar respostas ou direcionar suas perguntas. Algo semelhante ao que o Intercom já faz ao acessar uma base de conhecimento para fornecer respostas potenciais.

Bem, qualquer coisa no Discourse pode ser automatizada porque o Discourse é um aplicativo JavaScript, não uma tradicional “página da web”. Neste caso, você reproduziria as ações da interface do usuário que você realiza na página de pesquisa avançada, assim:

Sim, eu pensei que pudesse ser esse o caso. Então, essencialmente, a funcionalidade de Tópico Similar na pré-visualização do compositor é como uma Pesquisa normal, mas passando o conteúdo do tópico do usuário como critérios de pesquisa?

No meu caso de uso, eu passaria o conteúdo da mensagem do usuário para a função de Pesquisa normal e retornaria X número de resultados como tópicos possivelmente relevantes? (a terminologia que estou usando pode não estar totalmente correta aqui, só preciso saber se a ideia básica está certa :grinning_face_with_smiling_eyes:)

Use o inspeção web conforme detalhado nesse tópico para observar o que acontece enquanto você escreve no editor e aciona a caixa de diálogo de tópicos semelhantes sugeridos.

Acredito que é materialmente diferente da “pesquisa normal” do site, pois marca a pesquisa como “me dê qualquer coisa que corresponda a qualquer um destes e use frequência / múltiplas correspondências etc. para ordenar os resultados”.

Obrigado! Fiz uma pequena teste antes da sua resposta e notei que os resultados de busca e tópicos semelhantes diferiam um pouco, então isso é interessante. Isso aqui deve ser informação suficiente para eu conseguir argumentar a favor do Discourse para o grupo com quem estou discutindo.