Das Plugin Discourse AI verfügt über viele Funktionen, die ein LLM (Large Language Model, Großes Sprachmodell) erfordern, wie zum Beispiel Zusammenfassung, KI-Assistent, KI-Suche, KI-Bot. Obwohl Sie eine Drittanbieter-API verwenden können, wie z. B. API-Schlüssel für OpenAI konfigurieren oder API-Schlüssel für Anthropic konfigurieren, wurde Discourse AI von Anfang an so entwickelt, dass es nicht an diese gebunden ist.
Ausführung mit HuggingFace TGI
HuggingFace bietet ein hervorragendes Container-Image, mit dem Sie schnell starten können.
Zum Beispiel:
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
Sollte Sie eine lokale Instanz von Mistral 7B Instruct auf dem localhost unter Port 8080 starten, die Sie testen können mit
curl http://localhost:8080/ \
-X POST \
-H 'Content-Type: application/json' \
-d '{"inputs":"\u003cs\u003e[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!\u003c/s\u003e [INST] Do you have mayonnaise recipes? [/INST]","parameters":{"max_new_tokens":500, "temperature":0.5,"top_p": 0.9}}'
Ausführung mit vLLM
Eine weitere Option zum Selbst-Hosten von LLMs, die Discourse AI unterstützt, ist vLLM, ein sehr beliebtes Projekt unter der Apache License.
So starten Sie mit einem Modell:
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
Das Sie testen können mit
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] What was the latest released hero for Dota 2? [/INST] The latest released hero for Dota 2 was", "max_tokens": 200}'
Ausführung mit Ollama
Ollama ist eine weitere beliebte Option zum lokalen Ausführen von Open-Source-Modellen. Es vereinfacht die Modellverwaltung und bietet eine OpenAI-kompatible API.
ollama pull mistral
ollama serve
Dies startet einen lokalen Server unter http://localhost:11434, mit dem sich Discourse AI unter Verwendung des Ollama-Providers verbinden kann.
Bereitstellen für Ihre Discourse-Instanz
Meistens werden Sie dies aufgrund der GPU-Anforderung auf einem dedizierten Server ausführen. In diesem Fall empfehle ich, einen Reverse-Proxy zu verwenden, TLS-Terminierung durchzuführen und den Endpunkt abzusichern, sodass er nur von Ihrer Discourse-Instanz verbunden werden kann.
Konfiguration von Discourse AI
LLM-Verbindungen werden nun über die Admin-UI anstatt über die Site-Einstellungen konfiguriert. Navigieren Sie zu /admin/plugins/discourse-ai/ai-llms und fügen Sie ein neues LLM hinzu:
- Klicken Sie auf Neu, um ein Modell hinzuzufügen
- Wählen Sie einen Provider – wählen Sie vLLM, Hugging Face oder Ollama abhängig von Ihrem Inferenzserver
- Geben Sie die URL Ihres Inferenz-Endpunkts ein (z. B.
http://ihr-server:8080) - Geben Sie einen API-Schlüssel ein, falls Ihr Endpunkt einen benötigt
- Füllen Sie den Modellnamen, Tokenizer, maximale Prompt-Tokens und andere Modelldetails aus
Sobald Ihr LLM hinzugefügt wurde, legen Sie es über die Site-Einstellung ai_default_llm_model als Standard fest oder weisen Sie es bestimmten Funktionen über deren Agentenkonfiguration unter /admin/plugins/discourse-ai/ai-features zu.