Le plugin Discourse AI possède de nombreuses fonctionnalités qui nécessitent l’activation d’un LLM (Grand Modèle de Langage), comme, par exemple, la Synthèse (Summarization), l’Assistant IA (AI Helper), la Recherche IA (AI Search), le Bot IA (AI Bot). Bien que vous puissiez utiliser une API tierce, comme Configurer les clés d’API pour OpenAI ou Configurer les clés d’API pour Anthropic, nous avons conçu Discourse AI dès le premier jour pour ne pas en être enfermés dans ceux-ci.
Exécution avec HuggingFace TGI
HuggingFace fournit une image conteneur impressionnante qui peut vous permettre de démarrer rapidement.
Par exemple :
mkdir -p /opt/tgi-cache
docker run --rm --gpus all --shm-size 1g -p 8080:80 \
-v /opt/tgi-cache:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id mistralai/Mistral-7B-Instruct-v0.2
Devrait vous permettre de démarrer une instance locale de Mistral 7B Instruct sur localhost au port 8080, qui peut être testée avec
curl http://localhost:8080/ \
-X POST \
-H 'Content-Type: application/json' \
-d '{"inputs":"\u003cs\u003e[INST] Quel est votre condiment préféré ? [/INST] Eh bien, je suis plutôt adepte d'un bon filet de jus de citron frais. Il ajoute juste la bonne touche de saveur acidulée à tout ce que je cuisine dans la cuisine !\u003c/s\u003e [INST] Avez-vous des recettes de mayonnaise ? [/INST]","parameters":{"max_new_tokens":500, "temperature":0.5,"top_p": 0.9}}'
Exécution avec vLLM
Une autre option pour auto-héberger des LLM que Discourse AI prend en charge est vLLM, qui est un projet très populaire, sous licence Apache License.
Voici comment commencer avec un modèle :
mkdir -p /opt/vllm-cache
docker run --gpus all \
-v /opt/vllm-cache:/root/.cache/huggingface \
-e "MODEL=mistralai/Mistral-7B-Instruct-v0.2" \
-p 8080:8000 --ipc=host vllm/vllm-openai:latest
Que vous pouvez tester avec
curl -X POST http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/Mistral-7B-Instruct-v0.2",
"prompt": "\u003cs\u003e [INST] Quel a été le dernier héros sorti pour Dota 2 ? [/INST] Le dernier héros sorti pour Dota 2 était", "max_tokens": 200}'
Exécution avec Ollama
Ollama est une autre option populaire pour exécuter des modèles open source localement. Il simplifie la gestion des modèles et fournit une API compatible OpenAI.
ollama pull mistral
ollama serve
Ceci démarre un serveur local à http://localhost:11434 auquel Discourse AI peut se connecter en utilisant le fournisseur Ollama.
Le rendre disponible pour votre instance Discourse
La plupart du temps, vous l’exécuterez sur un serveur dédié en raison de l’exigence de GPU. Lorsque vous le faites, je recommande d’exécuter un proxy inverse, d’effectuer une terminaison TLS et de sécuriser le point de terminaison afin qu’il ne puisse être connecté que par votre instance Discourse.
Configuration de Discourse AI
Les connexions LLM sont désormais configurées via l’interface d’administration plutôt que par les paramètres du site. Naviguez vers /admin/plugins/discourse-ai/ai-llms et ajoutez un nouveau LLM :
- Cliquez sur Nouveau (New) pour ajouter un modèle
- Sélectionnez un Fournisseur (Provider) — choisissez vLLM, Hugging Face, ou Ollama selon votre serveur d’inférence
- Entrez l’URL de votre point de terminaison d’inférence (par exemple,
http://votre-serveur:8080) - Entrez une clé d’API (API key) si votre point de terminaison en nécessite une
- Remplissez le nom du modèle, le tokenizer, les jetons de prompt maximum (max prompt tokens), et les autres détails du modèle
Une fois votre LLM ajouté, définissez-le comme défaut via le paramètre de site ai_default_llm_model, ou assignez-le à des fonctionnalités spécifiques via sa configuration d’agent dans /admin/plugins/discourse-ai/ai-features.