Le plugin Discourse AI possède de nombreuses fonctionnalités qui nécessitent l’activation d’un LLM, comme, par exemple, la Synthèse, l’Assistant IA, la Recherche IA, le Bot IA. Bien que vous puissiez utiliser une API tierce, comme Configurer les clés API pour OpenAI ou Configurer les clés API pour Anthropic, nous avons conçu Discourse AI dès le premier jour pour ne pas être limité à ceux-ci.
Exécution avec HuggingFace TGI
HuggingFace fournit une image de conteneur impressionnante qui peut vous permettre de démarrer rapidement.
Par exemple :
mkcdir -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 avec une instance locale de Mistral 7B Instruct sur le localhost au port 8080, qui peut être testée avec
curl http://localhost:8080/ \
-X POST \
-H 'Content-Type: application/json' \
-d '{"inputs":"<s>[INST] What is your favourite condiment? [/INST] Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> [INST] Do you have mayonnaise recipes? [/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.
Voici comment démarrer 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": "<s> [INST] What was the latest released hero for Dota 2? [/INST] The latest released hero for Dota 2 was", "max_tokens": 200}'
Rendre disponible pour votre instance Discourse
La plupart du temps, vous exécuterez cela 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 la terminaison TLS et de sécuriser le point de terminaison afin qu’il ne puisse être connecté que par votre instance Discourse.
Configuration de DiscourseAI
Discourse AI fournit des paramètres de site pour configurer le serveur d’inférence pour les modèles open source. Vous devriez le pointer vers votre serveur en utilisant soit ai_hugging_face_api_url, soit ai_vllm_endpoint selon le logiciel d’inférence que vous avez choisi.
Après cela, modifiez chaque module pour utiliser le modèle que vous exécutez, dans les paramètres de sélection du modèle, comme
- ai_helper_model
- ai_embeddings_semantic_search_hyde_model
- summarization strategy
- ai_bot_enabled_chat_bots