Развертывание OpenSource LLM для DiscourseAI на собственном сервере

Плагин 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:

  1. Нажмите New, чтобы добавить модель.
  2. Выберите Provider — в зависимости от вашего сервера инференса выберите vLLM, Hugging Face или Ollama.
  3. Введите URL вашего конечного пункта инференса (например, http://your-server:8080).
  4. Введите API-ключ, если ваш конечный пункт требует его.
  5. Заполните название модели, токенизатор, максимальное количество токенов запроса и другие детали модели.

После добавления вашего LLM установите его как модель по умолчанию через настройку сайта ai_default_llm_model или назначьте его для конкретных функций через конфигурацию агента в /admin/plugins/discourse-ai/ai-features.

17 лайков