Il plugin Discourse AI dispone di molte funzionalità che richiedono l’abilitazione di un LLM, come, ad esempio, Riassunto, Aiuto AI, Ricerca AI, Bot AI. Sebbene sia possibile utilizzare un’API di terze parti, come Configura chiavi API per OpenAI o Configura chiavi API per Anthropic, abbiamo creato Discourse AI fin dal primo giorno per non essere vincolati a questi.
Esecuzione con HuggingFace TGI
HuggingFace fornisce un’immagine container eccezionale che ti permette di essere operativo rapidamente.
Ad esempio:
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
Dovrebbe metterti in funzione con un’istanza locale di Mistral 7B Instruct su localhost alla porta 8080, che può essere testata con
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}}'
Esecuzione con vLLM
Un’altra opzione per auto-ospitare LLM supportati da Discourse AI è vLLM, che è un progetto molto popolare, concesso in licenza secondo la licenza Apache.
Ecco come iniziare con un modello:
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
Che puoi testare con
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}'
Rendilo disponibile per la tua istanza Discourse
Nella maggior parte dei casi, eseguirai questo su un server dedicato a causa del requisito 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 fornisce impostazioni del sito per configurare il server di inferenza per i modelli open source. Dovresti puntarlo al tuo server utilizzando ai_hugging_face_api_url o ai_vllm_endpoint in base al software di inferenza che hai scelto.
Successivamente, modifica ciascun modulo per utilizzare il modello che stai eseguendo, nelle impostazioni di selezione del modello, come
- ai_helper_model
- ai_embeddings_semantic_search_hyde_model
- summarization strategy
- ai_bot_enabled_chat_bots