Il plugin Discourse AI dispone di molte funzionalità che richiedono gli embedding per funzionare, come Argomenti Correlati, Ricerca AI, Suggerimento di Categoria e Tag di Aiuto AI, ecc. Sebbene sia possibile utilizzare un’API di terze parti, come Configurare le chiavi API per OpenAI, Configurare le chiavi API per Cloudflare Workers AI o Configurare le chiavi API per Google Gemini, abbiamo costruito Discourse AI fin dal primo giorno per non essere bloccati su di esse.
Esecuzione con HuggingFace TEI
HuggingFace fornisce un’eccellente immagine container che può farti partire rapidamente.
Per esempio:
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
Questo dovrebbe farti partire con un’istanza locale di BAAI/bge-large-en-v1.5, un modello open-source con ottime prestazioni.
Puoi verificare se funziona con
curl -X POST \
'http://localhost:8081/embed' \
-H 'Content-Type: application/json' \
-d '{ "inputs": "Testing string for embeddings" }'
Che dovrebbe restituire un array di float in condizioni operative normali.
Renderlo disponibile per la tua istanza Discourse
La maggior parte delle volte, lo eseguirai su un server dedicato a causa dell’accelerazione della GPU. Quando lo fai, consiglio di eseguire un proxy inverso, eseguire la terminazione TLS e proteggere l’endpoint in modo che possa essere connesso solo dalla tua istanza Discourse.
Configurazione di DiscourseAI
Discourse AI utilizza ora un sistema di definizione degli embedding completamente configurabile, simile al modo in cui sono configurati gli LLM. Per configurare il tuo endpoint self-hosted:
- Naviga su Admin → Plugins → Discourse AI → Embeddings.
- Clicca su New per creare una nuova definizione di embedding.
- Seleziona un preset che corrisponda al tuo modello (es.
bge-large-en,bge-m3, omultilingual-e5-large), oppure scegli Configure manually per qualsiasi altro modello. - Imposta l’URL affinché punti al tuo server TEI self-hosted (es.
https://your-tei-server:8081). - Usa il pulsante Test per verificare la connettività prima di salvare.
- Dopo aver salvato, imposta
ai_embeddings_selected_modelalla tua nuova definizione di embedding.
Una volta configurato, Discourse riempirà automaticamente gli embedding per gli argomenti esistenti tramite un job in background pianificato. Se hai un arretrato di grandi dimensioni, puoi aumentare l’impostazione nascosta ai_embeddings_backfill_batch_size (default: 250) per elaborare gli argomenti più velocemente.