O plugin Discourse AI possui muitos recursos que exigem embeddings para funcionar, como Tópicos Relacionados, Pesquisa por IA, Sugestão de Categoria e Tag por 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, criamos 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:
mkd ir -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 desempenho muito bom.
Você pode verificar se está funcionando com
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
"{ \"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 Discourse
Na maioria das vezes, você executará isso em um servidor dedicado devido à aceleração da GPU. Ao fazer isso, recomendo executar um proxy reverso, fazer terminação TLS e proteger o endpoint para que ele só possa ser conectado por sua instância Discourse.
Configurando o DiscourseAI
O Discourse AI inclui configurações de site para configurar o servidor de inferência para modelos de código aberto. Você deve apontá-lo para o seu servidor usando a aba Embeddings nas configurações de administrador do plugin AI.