O plugin Discourse AI possui muitos recursos que exigem embeddings (incorporações) para funcionar, como Tópicos Relacionados, Pesquisa por IA, Sugestão de Categoria e Tag pelo Auxiliar de IA, etc. Embora você possa usar uma API de terceiros, como Configurar Chaves de API para OpenAI, Configurar Chaves de API para Cloudflare Workers AI ou Configurar Chaves de API para Google Gemini, nós construímos o Discourse AI desde o primeiro dia para não ficarmos presos a eles.
Executando com HuggingFace TEI
O HuggingFace fornece uma imagem de contêiner incrível que pode colocá-lo em funcionamento rapidamente.
Por exemplo:
mkdir -p /opt/tei-cache
docker run --rm --gpus all --shm-size 1g -p 8081:80 \
-v /opt/tei-cache:/data \
ghcr.io/huggingface/text-embeddings-inference:latest \
--model-id BAAI/bge-large-en-v1.5
Isso deve colocá-lo em funcionamento com uma instância local do BAAI/bge-large-en-v1.5, um modelo de código aberto com ótimo desempenho.
Você pode verificar se está funcionando com
curl -X POST \
'http://localhost:8081/embed' \
-H 'Content-Type: application/json' \
-d '{ "inputs": "Testing string for embeddings" }'
O que deve retornar um array de floats em operação normal.
Tornando-o disponível para sua instância do Discourse
Na maioria das vezes, você estará executando isso em um servidor dedicado por causa do aumento de velocidade da GPU. Ao fazer isso, recomendo executar um proxy reverso, realizando terminação TLS e protegendo o endpoint para que ele só possa ser acessado pela sua instância do Discourse.
Configurando o DiscourseAI
O Discourse AI agora usa um sistema de definição de embedding totalmente configurável, semelhante à forma como os LLMs são configurados. Para configurar seu endpoint auto-hospedado:
- Navegue até Admin → Plugins → Discourse AI → Embeddings.
- Clique em New (Novo) para criar uma nova definição de embedding.
- Selecione um preset (predefinição) que corresponda ao seu modelo (ex:
bge-large-en,bge-m3oumultilingual-e5-large), ou escolha Configure manually (Configurar manualmente) para qualquer outro modelo. - Defina a URL para apontar para seu servidor TEI auto-hospedado (ex:
https://seu-servidor-tei:8081). - Use o botão Test (Testar) para verificar a conectividade antes de salvar.
- Após salvar, defina
ai_embeddings_selected_modelpara sua nova definição de embedding.
Após a configuração, o Discourse preencherá automaticamente os embeddings para tópicos existentes por meio de um trabalho em segundo plano agendado. Se você tiver um grande volume pendente, poderá aumentar a configuração oculta ai_embeddings_backfill_batch_size (padrão: 250) para processar os tópicos mais rapidamente.