Discourse AI - Busca por IA

:bookmark: Este guia explica como ativar e configurar o recurso de pesquisa por IA, que faz parte do plugin Discourse AI.

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

Semelhante a Tópicos Relacionados, a pesquisa por IA ajuda a encontrar os tópicos mais relevantes usando similaridade textual semântica que vão além de uma correspondência exata de palavra-chave usada pela pesquisa tradicional. Isso resulta na descoberta de tópicos que não são correspondências exatas, mas ainda são relevantes para a pesquisa inicial. Se você não consegue encontrar o que procura, a pesquisa por IA está aqui para ajudar!

Funcionalidades

  • Similaridade textual semântica: vai além de apenas uma correspondência de palavra-chave e usa análise semântica para encontrar similaridade textual
  • Pesquisa rápida por IA: adiciona automaticamente resultados de IA no pop-up do menu de pesquisa quando poucos resultados normais são encontrados (ativado com ai_embeddings_semantic_quick_search_enabled)
  • Alternado entre ligado/desligado para pesquisa por IA na pesquisa de página inteira
  • HyDE opcional (Hypothetical Document Embeddings): usa um LLM para expandir as consultas para melhores resultados
  • Resultados indicados por um ícone :sparkles:
  • Aplicável a usuários anônimos e logados

Ativando a Pesquisa por IA

Pré-requisitos

Para usar a Pesquisa por IA, você precisará configurar Embeddings. Um Modelo de Linguagem Grande (LLM) é opcionalmente necessário se você ativar o HyDE (Hypothetical Document Embeddings) para melhor qualidade de pesquisa.

Embeddings

Se você estiver em nossa hospedagem, forneceremos uma opção padrão. Para auto-hospedeiros, siga o guia em Discourse AI - Embeddings

Modelo de Linguagem Grande (LLM) (opcional — para HyDE)

Um LLM é necessário apenas se você ativar a configuração ai_embeddings_semantic_search_use_hyde, que usa um LLM para criar um documento hipotético a partir da consulta de pesquisa antes de incorporá-la. Isso pode melhorar a qualidade dos resultados, mas adiciona latência e custo.

Para começar, você pode configurá-los através da página de configurações do Discourse AI - Large Language Model (LLM).

Configuração

  1. Acesse AdminPluginsDiscourse AIFeaturesEmbeddings para encontrar todas as configurações de pesquisa por IA
  2. Ative ai_embeddings_enabled para Embeddings
  3. Ative ai_embeddings_semantic_search_enabled para ativar a pesquisa por IA na pesquisa de página inteira
  4. Opcionalmente, ative ai_embeddings_semantic_quick_search_enabled para adicionar resultados de IA no pop-up do menu de pesquisa
  5. Opcionalmente, ative ai_embeddings_semantic_search_use_hyde para usar HyDE para resultados aprimorados (requer um LLM)

FAQ Técnico

Expandir para um esboço da lógica de pesquisa de IA (com HyDE ativado)
mermaid height=255,auto
sequenceDiagram
    User->>+Discourse: Pesquisar "gamificação"
    Discourse->>+LLM: Criar um artigo sobre "gamificação" em um fórum sobre
<br/>  "Discourse, um sistema de fórum de Internet de código aberto."
    LLM->>+Discourse: Gamificação envolve a aplicação de elementos de design de jogos como
<br/> pontos, emblemas, níveis e placares a contextos que não são de jogos...
    Discourse->>+EmbeddingsAPI: Gerar Embeddings para "Gamificação envolve a aplicação de design de jogo..."
    EmbeddingsAPI->>+Discourse: [0.123, -0.321...]
    Discourse->>+PostgreSQL: Me dê os tópicos mais próximos para [0.123, -0.321...]
    PostgreSQL->>+Discourse: Tópicos: [1, 5, 10, 50]
    Discourse->>+User: Tópicos: [1, 5, 10, 50]

Como funciona a Pesquisa por IA?

  • Quando o HyDE está ativado (ai_embeddings_semantic_search_use_hyde), a consulta de pesquisa é executada através de um LLM que cria um tópico/post hipotético. Embeddings são então gerados a partir desse post hipotético e usados para procurar correspondências semelhantes em seu site. Quando o HyDE está desativado (o padrão), a consulta de pesquisa é incorporada diretamente e usada para correspondência de similaridade. Em ambos os casos, os resultados são mesclados com os resultados de pesquisa regulares usando Reciprocal Rank Fusion (RRF) para reclassificar os principais resultados.

Como os dados de tópico/post são processados?

  • Quando o HyDE está ativado, os dados do LLM são processados por um provedor terceirizado; consulte seu provedor específico para mais detalhes. Por padrão, o microsserviço de Embeddings é executado ao lado de outros servidores que hospedam seus fóruns existentes. Não há terceiros envolvidos aqui, e essa informação específica nunca sai de sua rede interna em nosso datacenter de rede privada virtual.

Para onde os dados vão?

  • Quando o HyDE está ativado, um tópico/post hipotético criado pelo provedor do LLM é temporariamente armazenado em cache ao lado dos Embeddings para esse documento. Os dados de Embeddings são armazenados no mesmo banco de dados onde armazenamos seus tópicos, posts e usuários. É outra tabela de dados lá.

Como é o modelo “semântico” de Embeddings? Como ele foi “treinado” e existe uma maneira de testar se ele pode ser aplicado com precisão aos tópicos em nossas comunidades “especializadas”?

  • Por padrão, usamos modelos open source pré-treinados, como este. Implementamos para muitos clientes e descobrimos que ele tem um bom desempenho tanto para comunidades de nicho quanto gerais. Se o desempenho não for bom o suficiente para o seu caso de uso, temos modelos mais complexos prontos para uso, mas em nossa experiência, a opção padrão é uma escolha sólida.
6 curtidas

Notei um pequeno bug na interface do usuário para ai embeddings semantic search hyde model. Passos para reproduzir

  1. Instale o plugin AI Discourse
  2. Abra configurações → Configurar chave Gemini
  3. Habilite i embeddings semantic search enabled
  4. ai embeddings semantic search hyde model mostra Google - gemini-pro (não configurado)

O não configurado não desaparece até depois que todas as configurações são habilitadas e a página é atualizada depois disso.

2 curtidas

Acho que esta é uma limitação da nossa página de configurações do site, então peço desculpas por isso e fico feliz que você tenha conseguido resolver.

1 curtida

Uma pergunta sobre semântica. Em alguns módulos de IA, vejo uma referência ao uso de Gemini, enquanto em outros vejo uma referência a Gemini-Pro. Eles estão se referindo a modelos diferentes (Gemini Nano, Pro e Ultra) ou se referem ao mesmo LLM? Se sim, então o que Gemini em si se refere e importa se um tem uma assinatura paga ou gratuita do Gemini?

1 curtida

Existem diferentes modelos Gemini, como os que você mencionou. Dependendo do modelo que você tem (provavelmente o Pro, já que é gratuito no momento), você simplesmente conectaria a chave da API na configuração relevante. A configuração é para qualquer modelo Gemini que você tenha.

Isso dependeria de você e de como você quer usar o Gemini, mas qualquer um deve funcionar.

Mais informações aqui:

1 curtida

Existe uma maneira de injetar algo no prompt inicial para o LLM ou manipular os embeddings antes que eles sejam passados para a pesquisa regular?

Estou tentando aumentar (ou possivelmente separar) as respostas da equipe (mais autoritárias) das respostas da comunidade.

2 curtidas

Atualmente, não suportamos nenhuma injeção de prompt LLM personalizada na Pesquisa de IA, embora isso possa ser algo a ser adicionado no futuro.

Eu recomendaria fazer uma solicitação de #recurso!

2 curtidas

Acabei de começar a usar a pesquisa de IA e estou gostando até agora. Não consigo encontrar um motivo para não usá-la sempre. Existe alguma maneira de mostrar apenas resultados de IA (além de usar CSS para ocultar .fps-result, mas não .ai-result)?

Além disso, você pode, por favor, detalhar onde encontrar a pesquisa rápida?

1 curtida

Ei, isso esteve temporariamente disponível exclusivamente no Meta como um experimento. Removi-o do OP - obrigado por apontar isso.

Estamos usando Discourse Algolia Search para pesquisa de preenchimento automático no cabeçalho. Podemos continuar usando o Discourse AI - Pesquisa com IA?

Uma postagem foi dividida em um novo tópico: Não vendo o painel de preferências do usuário para Discourse AI