Плагин Discourse AI включает множество функций, требующих включения LLM, таких как, например, суммаризация, AI Helper, AI Search и AI Bot. Хотя вы можете использовать сторонний API, например, настроить ключи API для OpenAI или настроить ключи API для Anthropic, мы создали Discourse AI с самого начала так, чтобы не зависеть от этих провайдеров.
Запуск с HuggingFace TGI
HuggingFace предоставляет отличное контейнерное изображение, которое позволит быстро запустить сервер.
Например:
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
Это позволит запустить локальный экземпляр Mistral 7B Instruct на localhost в порту 8080, который можно протестировать с помощью:
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}}'
Запуск с vLLM
Другой вариант для самостоятельного размещения LLM, поддерживаемый Discourse AI, — это vLLM, очень популярный проект, распространяемый под лицензией Apache.
Вот как начать работу с моделью:
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
Тестирование можно выполнить с помощью:
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}'
Запуск с Ollama
Ollama — ещё один популярный вариант для запуска моделей с открытым исходным кодом локально. Он упрощает управление моделями и предоставляет API, совместимый с OpenAI.
ollama pull mistral
ollama serve
Это запускает локальный сервер по адресу http://localhost:11434, к которому Discourse AI может подключиться, используя провайдера Ollama.
Доступность для вашего экземпляра Discourse
В большинстве случаев вы будете запускать это на выделенном сервере из-за требований к GPU. В таком случае рекомендуется использовать обратный прокси, завершение TLS и защиту конечной точки, чтобы к ней мог подключаться только ваш экземпляр Discourse.
Настройка Discourse AI
Подключения к LLM теперь настраиваются через административный интерфейс, а не через настройки сайта. Перейдите по адресу /admin/plugins/discourse-ai/ai-llms и добавьте новый LLM:
- Нажмите New, чтобы добавить модель.
- Выберите Provider — в зависимости от вашего сервера инференса выберите vLLM, Hugging Face или Ollama.
- Введите URL вашего конечного пункта инференса (например,
http://your-server:8080). - Введите API-ключ, если ваш конечный пункт требует его.
- Заполните название модели, токенизатор, максимальное количество токенов запроса и другие детали модели.
После добавления вашего LLM установите его как модель по умолчанию через настройку сайта ai_default_llm_model или назначьте его для конкретных функций через конфигурацию агента в /admin/plugins/discourse-ai/ai-features.