Перейти к содержимому

Руководство

Как добавить AI-чат поддержки и SSH-агент в облако CloudStack

NexCMP — это self-hosted биллинг и панель клиента для Apache CloudStack и Proxmox VE. В версии 1.2.0 представлены два ИИ-модуля: AI Chat, ассистент внутри панели клиента, и AI Agent, выполняющий задачи на VM клиента по SSH. Это руководство поможет настроить оба модуля с помощью совместимого с OpenAI API ключа, на наглядных скриншотах панели клиента и панели администратора.

Необходимое время: около 15 минут при уже установленном NexCMP.

Стек

Четыре компонента, три из которых у вас, скорее всего, уже развернуты.

  • NexCMP 1.2.0

    Панель, с которой уже работают ваши клиенты, установленная на Ubuntu 22.04 или 24.04. AI Chat и AI Agent включены в лицензию без дополнительной платы.

  • OpenAI-совместимый endpoint

    Любой API chat completions с поддержкой tool (function) calling: облачный провайдер или прокси, запущенный перед несколькими провайдерами.

  • Ключ с лимитом расходов

    Выделите для панели отдельный ключ и настройте для него месячный бюджет у провайдера или в прокси, чтобы предотвратить неконтролируемые расходы.

  • Ваши VM в CloudStack

    AI Agent подключается к VM клиента по SSH с сервера панели, используя учетные данные, сохраненные клиентом для этой VM.

Пошаговая инструкция

  1. Обновите панель до версии 1.2.0

    В панели администратора перейдите в License и нажмите Update или выполните sudo nexcmp update на сервере. Обновление имеет цифровую подпись и проверяется перед установкой.

  2. Создайте ключ API с лимитом расходов

    У вашего AI-провайдера (или в прокси) создайте отдельный ключ для этой панели и установите месячный бюджет. Для чата поддержки достаточно быстрой и недорогой модели.

  3. Укажите его в Admin › Settings › AI provider

    Вставьте endpoint URL, ключ и название модели, затем нажмите Test connection. Ключ хранится в базе данных панели в зашифрованном виде и больше никогда не отображается.

  4. Включите AI-модуль

    В разделе License › Modules включите AI. AI Chat и AI Agent появятся в меню панели клиента после перезагрузки страницы; при выключении модуля они снова скроются.

  5. Клиенты обращаются к AI Chat

    AI Chat отвечает на вопросы о ваших тарифах, ценах и текущих услугах клиента. Если вопрос требует участия человека, клиент может передать диалог вашей службе поддержки.

    Панель клиента: AI Chat отвечает на вопрос о серверах клиента
  6. Клиенты запускают AI Agent на VM

    Клиент выбирает одну из своих VM и описывает задачу простыми словами. Агент выполняет команды по SSH и отображает каждую команду вместе с ее выводом.

    Панель клиента: AI Agent выполняет команды на VM и показывает их вывод
  7. Контролируйте использование

    Использование тарифицируется вашим AI-провайдером, а не NexCMP. Отслеживайте расходы в панели управления провайдера или прокси-сервера и корректируйте лимиты ключа по мере роста активности клиентов.

Что потребуется перед началом работы

  • NexCMP 1.2.0 или новее с модулем AI в License › Modules.
  • AI-провайдер с эндпоинтом chat/completions, совместимым с OpenAI, и моделью с поддержкой вызова функций (tool/function calling): подойдут OpenAI, OpenRouter, шлюз LiteLLM или собственный сервер vLLM.
  • Для AI Agent: openssh-client на сервере панели (устанавливается инсталлятором) и сетевой маршрут от сервера панели к SSH-порту каждой VM (по умолчанию 22).
  • Для AI Agent: работающая и незаблокированная Linux VM клиента с сохраненным логином (сохраненным при создании VM или сбросе пароля) либо служебным ключом панели. Запросы к Windows VM отклоняются.
  • Опционально для передачи обращений из AI Chat сотрудникам: Telegram-бот и chat ID в Settings › Admin alerts.
ssh -V
nc -vz 198.51.100.10 22

Сначала протестируйте эндпоинт с сервера панели

NexCMP добавляет /chat/completions к URL, заканчивающимся на /v1, и /v1/chat/completions — к любым другим URL; URL, который уже заканчивается на /chat/completions, используется без изменений. Прежде чем указывать эндпоинт, отправьте к нему тестовый запрос с сервера NexCMP. JSON-ответ с choices[0].message.content означает, что эндпоинт и модель работают корректно.

curl -s https://ai.example.com/v1/chat/completions \
  -H "Authorization: Bearer XXXX" -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Reply with one word: OK"}]}'

Как AI Agent выполняет команды и что он не будет запускать автоматически

  • Команды выполняются с сервера панели через собственный ssh-клиент, строго по одной неинтерактивной команде за раз. В качестве цели всегда используется IP-адрес VM из базы данных, но ни в коем случае не адрес из запроса.
  • Сохраненный пароль передается через однократный вызов SSH_ASKPASS в окружении процесса: он не записывается на диск и не передается через аргументы командной строки.
  • Вывод каждой команды ограничен 200 KB, шаг диалога завершается максимум через 10 действий, а клиент может одновременно запускать не более 2 сессий агента.
  • В режиме Confirm каждая команда ожидает нажатия кнопки Run клиентом. В режиме Auto автоматически запускаются только команды из строгого списка безопасных операций для чтения, например df -h, ps или journalctl.
  • Команды, которые перезаписывают или удаляют файлы, изменяют учетные записи или SSH-ключи, отправляют данные на внешний сервер, скачивают и запускают скрипты либо выключают или перезагружают машину, всегда выводят статус Needs confirmation даже в режиме Auto.
  • Вывод команд передается модели как недоверенные данные, и содержащиеся в нем инструкции игнорируются.

Устранение неполадок

Наиболее частые сообщения и способы их проверки.

  • Test connection завершается с ошибкой 401

    Вероятная причина
    Неверный ключ для указанного эндпоинта.
    Что делать
    Проверьте ключ и эндпоинт, а также введите ключ заново, если изменился базовый URL.
  • Test connection завершается с ошибкой 404 или model not found

    Вероятная причина
    Неверный путь или идентификатор модели.
    Что делать
    Убедитесь, что базовый URL заканчивается на /v1, и укажите точный идентификатор модели у провайдера.
  • В панели клиента отсутствует меню AI

    Вероятная причина
    Модуль отключен либо провайдер не активирован для использования.
    Что делать
    Включите AI-модуль в License › Modules и активируйте провайдера.
  • Агенту не удалось войти в систему

    Вероятная причина
    Нет сохраненного пароля и сервисного ключа для этой VM.
    Что делать
    Сбросьте пароль VM в портале, чтобы он сохранился заново.
  • Сервер не ответил вовремя

    Вероятная причина
    Брандмауэр, неактивный сервис SSH или перегруженная VM.
    Что делать
    Выполните nc -vz <vm-ip> 22 с сервера панели и запустите sshd внутри VM.
  • ИИ отвечает слишком медленно

    Вероятная причина
    Провайдер или модель работают медленно.
    Что делать
    Выберите более быструю модель или уменьшите Reasoning effort в Settings › AI provider.
  • Войдите в систему для использования AI Chat

    Вероятная причина
    Посетитель не авторизован.
    Что делать
    Штатное поведение: AI Chat доступен только авторизованным клиентам.

Конфиденциальность и расходы

Вопросы клиентов и данные, которые ИИ считывает для них (в режиме только для чтения), отправляются вашему AI-провайдеру. Укажите это в вашей политике конфиденциальности.

NexCMP не ведет биллинг расходов на ИИ. Используйте функции контроля бюджета у вашего провайдера и уменьшите лимит AI turns per day per customer (по умолчанию 40, в разделе Customers › Support › Ticket › AI settings) для ограничения расходов.

Что дальше

AI Chat и AI Agent остаются отключенными, пока вы не сохраните ключ провайдера, поэтому никакие средства не списываются и данные никуда не отправляются без вашего решения. Ознакомьтесь с обзором или изучите другие модули.

Вопросы о модулях ИИ

Какие модели AI поддерживаются?
Любая модель, доступная через OpenAI-совместимый эндпоинт chat-completions с поддержкой вызова функций (tool calling). Эндпоинт, ключ и модель настраиваются в Admin › Settings › AI provider.
Может ли агент получить доступ к серверам других клиентов?
Нет. AI Agent работает только с VM, принадлежащими аккаунту авторизованного клиента, используя сохраненные для этой VM учетные данные.
Взимает ли NexCMP плату за использование ИИ?
Нет. Модули ИИ входят в стоимость лицензии. Вы оплачиваете использование API-ключа напрямую вашему AI-провайдеру.
Как проверить подключение к AI-провайдеру?
В меню Admin › Settings › AI provider нажмите Save, затем Test connection. Система отправит короткий тестовый запрос и покажет статус Connected с именем модели и временем ответа либо ошибку, возвращенную провайдером.
Требуется ли для AI Agent отдельный SSH-шлюз?
Нет. При стандартной установке панель использует собственный встроенный ssh-клиент. Опциональный веб-терминал ssh-proxy требуется только при включении функции web SSH.
Могут ли неавторизованные посетители использовать AI Chat?
Нет. AI Chat доступен только авторизованным клиентам; неавторизованному посетителю будет предложено войти в систему.
Работает ли AI Agent на VM под управлением Windows?
Нет. Он работает только на запущенных Linux-VM; запросы к VM с Windows отклоняются.
Можно ли отключить эту функцию?
Да. Отключите модуль ИИ в License › Modules; после этого AI Chat и AI Agent скроются из портала, а их API будет возвращать статус отключенного модуля.

Внедрите ИИ в свое облако

AI Chat и AI Agent включены во все лицензии NexCMP — бесплатно на первый год или $499 разово с исходным кодом.

Последнее обновление: