Discourse AI - Tópicos relacionados

:bookmark: Este guia explica como habilitar e configurar o recurso Tópicos relacionados do plugin Discourse AI.

:person_raising_hand: Nível de usuário necessário: Administrador

Tópicos relacionados ajuda os usuários a descobrir conteúdo relevante, sugerindo tópicos semanticamente semelhantes com base no que eles estão lendo no momento. Isso aprimora a exploração de conteúdo e aumenta o engajamento do usuário.

Funcionalidades

  • Similaridade textual semântica: Vai além da correspondência de palavras-chave para encontrar conteúdo verdadeiramente relacionado
  • Alternar entre tópicos “Sugeridos” e “Relacionados”
  • Disponível para usuários anônimos e logados

Habilitando Tópicos relacionados

:information_source: Tópicos relacionados está ativado por padrão para todos os clientes hospedados do Discourse com o plugin Discourse AI habilitado

Pré-requisitos

Tópicos relacionados requer Embeddings para funcionar.

Se você estiver em nossa hospedagem, Embeddings é fornecido usando um modelo de código aberto. Nenhuma configuração adicional é necessária.

Instâncias auto-hospedadas precisarão fornecer seus próprios Embeddings através de um provedor terceirizado.

Configuração

  1. Vá para Admin → Configurações → Plugins
  2. Procure por “discourse-ai” e certifique-se de que está habilitado
  3. Habilite ai_embeddings_enabled para ativar Embeddings
  4. Habilite ai_embeddings_semantic_related_topics_enabled para ativar o recurso Tópicos Relacionados

Configuração adicional

Dependendo da sua configuração, você pode precisar ajustar as seguintes configurações:

  • Para sites não ingleses (hospedados pelo Discourse ou auto-hospedados com modelo próprio):
    Defina ai embeddings model para multilingual-e5-large
  • Para Cloudflare Workers AI:
    Defina ai embeddings model para bge-large-en
  • Para OpenAI ou Azure OpenAI:
    Defina ai embeddings model para text-embedding-ada-002

FAQ Técnico

Expandir para ver um diagrama da arquitetura de Tópicos relacionados

A visão geral é que, quando um tópico é criado / atualizado, isso acontece:

sequenceDiagram
    User->>Discourse: Cria tópico
    Discourse-->>Embedding Microservice: Gera embeddings
    Embedding Microservice-->>Discourse:
    Discourse-->>PostgreSQL:Armazena Embeddings

E durante a visita ao tópico:

sequenceDiagram
    User->>Discourse: Visita tópico
    Discourse-->>PostgreSQL: Consulta tópicos mais próximos
    PostgreSQL-->>Discourse:
    Discourse->>User: Apresenta tópicos relacionados

Como funcionam os Tópicos relacionados?

  • Quando um usuário visita um tópico, o Discourse consulta o banco de dados em busca dos tópicos semanticamente mais semelhantes com base em suas representações incorporadas. Esses tópicos relacionados são então apresentados ao usuário, incentivando uma maior exploração do conteúdo da comunidade.

Como os dados do tópico/postagem são processados?

  • Para sites hospedados pelo Discourse, os dados são processados dentro de nosso data center virtual privado seguro. Para sites auto-hospedados, o processamento de dados depende do provedor terceirizado escolhido.

Onde os dados de embeddings são armazenados?

  • Os dados de embeddings são armazenados em seu banco de dados Discourse, juntamente com outros dados do fórum, como tópicos, postagens e usuários.

Qual modelo semântico é usado e como ele foi treinado?

  • Sites hospedados pelo Discourse usam o modelo all-mpnet-base-v2 por padrão. Este modelo tem bom desempenho tanto para comunidades de nicho quanto gerais. Sites auto-hospedados podem usar modelos diferentes dependendo do provedor escolhido.
14 curtidas

Algo que vale a pena ficar de olho.

Ao revisar muitas postagens em Tópicos Relacionados para um site em inglês (OpenAI), comecei a notar que os tópicos em espanhol tendem a ser agrupados. Suspeito que, se fossem traduzidos primeiro para o inglês, cada postagem teria um vetor diferente e, assim, seria agrupada com outras postagens. :slightly_smiling_face:



Um benefício colateral desse recurso para moderadores é verificar se as categorias dos tópicos listados em Tópicos Relacionados estão corretas.

À medida que reviso cada nova postagem, também verifico os Tópicos Relacionados. Isso está se tornando uma maneira eficaz de identificar tópicos criados com a categoria errada.

Para sua informação - uma ideia relacionada foi observada neste pedido de recurso.



Encontre este tópico quando muitas vezes precisar seguir um link que não é tão fácil de encontrar, então estou anotando aqui.

2 curtidas

Esse comportamento é controlado pelo modelo e parece ser um problema conhecido:

Acho que o modelo OSS que recomendamos para sites multilíngues faz um trabalho melhor nisso, mas ainda precisamos implementá-lo para mais clientes para validar isso.

2 curtidas

Não me deixa habilitar esta opção:

Estou a perder alguma coisa aqui ou o Gemini sozinho não é suficiente?

ATUALIZAÇÃO: As instruções e a descrição do erro podem querer ser atualizadas para adicionar que o ai embeddings model também deve ser atualizado para corresponder ao provedor, caso contrário, ai_embeddings_enabled não pode ser habilitado. A descrição do parâmetro está a falhar o Gemini como uma opção.

1 curtida

7 posts foram divididos em um novo tópico: “Net::HTTPBadResponse” errors on Gemini Embeddings

O que devo preencher aqui, por favor:

Quero preencher o acima, porque quero habilitar a primeira opção entre as 4 mostradas abaixo:

Se você usar OpenAI, nada.

1 curtida

Então esta primeira opção (Módulo de Incorporações) me incomoda, não me deixa ativá-la:

A maioria deles está vazia. Mas ai embeddings discourse service api key é sua API da OpenAI e ai embeddings discourse service api endpoint é https://api.openai.com/v1/embeddings. O modelo deve ser text-embedding-3-large (claro, pode ser small também, mas ele tem alguns problemas).

1 curtida

3 posts foram divididos em um novo tópico: Como fazer com que os tópicos Sugeridos e Relacionados sejam exibidos

Quais foram seus resultados ao comparar small e large? Sei que há uma diferença nas dimensões que afeta a precisão do modelo. A versão small é 5x mais barata. Ela é realmente inutilizável no mundo real para similaridade de tópicos? Nosso fórum é 99% em inglês.

Eu estaria muito interessado em saber mais. Você pode, por favor, elaborar onde all-mpnet-base-v2 se compara aos modelos da OpenAI para um site puramente em inglês?

Embeddings são tão baratos que o preço não importa — a menos que haja uma miríade de posts quando 0,01 centavos importam nos custos totais.

Mas, honestamente… eu não vi nenhuma diferença. E para mim, como há a chance de eu não poder usar RAG e embeddings adequadamente, ambos são igualmente inúteis. Sei que isso vai contra a opinião pública, mas no meu site esse sistema simplesmente não encontra e não usa nada útil.

Provavelmente vem dos modelos da OpenAI, mas eu não tenho dinheiro suficiente para usar essas soluções mais profissionais.

1 curtida

Eu estava usando o modelo text-embedding-3-small antes de ler isso. O text-embedding-ada-002 é muito melhor?

Ada é da geração anterior

1 curtida