Экспериментальный функционал

AI-ассистент — это интеллектуальный помощник, встроенный в Deckhouse Development Platform. Он отвечает на вопросы о платформе, анализирует данные каталога и выполняет различные задачи с использованием инструментов MCP (Model Context Protocol).

AI-ассистент использует настраиваемые AI-провайдеры для обработки запросов и может работать с различными языковыми моделями, включая OpenAI GPT, Ollama и любые модели, доступные через совместимый REST API.

Подключение AI-провайдера

Пользователь самостоятельно настраивает AI-провайдеры в своём профиле.

Для подключения нового AI-провайдера:

  1. Откройте Профиль → вкладка AI-провайдеры.
  2. Нажмите Добавить.
  3. Заполните Название, Модель, URL, Метод и Заголовки; при необходимости укажите Поле ответа и Шаблон тела запроса (подробности в разделах «Поле ответа» и «Шаблон тела запроса»).
  4. При использовании токенов в заголовках предпочтительно завести учётные данные и подставлять их через шаблонизацию.
  5. Нажмите Сохранить.

Примеры для распространённых API приведены в разделе «Примеры конфигурации».

Учетные данные для провайдеров

Для безопасного хранения токенов и ключей используется система учётных данных: они шифруются в базе и подставляются в заголовки запросов через шаблонизацию.

Добавление учетных данных

Для добавления новых учетных данных:

  1. В форме создания или редактирования провайдера нажмите Управление учетными данными.
  2. В диалоге нажмите Добавить учетные данные.
  3. Введите пару Ключ / Значение (например, api_key и секрет).
  4. Нажмите Сохранить.

Изменение учетных данных

  • Ключ существующих учётных данных нельзя изменить: удалите запись и создайте новую.
  • Значение можно обновить, введя новое.
  • После сохранения значения не показываются в интерфейсе.

Шаблонизация в заголовках

Вместо токена в открытом виде используйте подстановку:

Authorization: Bearer {{ .credentials.api_key }}

где api_key — ключ, заданный в учётных данных.

Поле ответа

Поле Поле ответа задаёт путь в JSON-ответе API к тексту ответа модели (например choices.0.message.content). Если поле не задано, платформа попытается определить ответ автоматически.

Как подобрать путь: выполните тестовый запрос к API, откройте JSON и найдите поле с текстом ответа модели.

Шаблон тела запроса

Поле Шаблон тела запроса — JSON, который отправляется к API. В нём используются переменные:

  • {{.prompt}} — текст запроса пользователя (экранируется для JSON).
  • {{.model}} — модель из настроек провайдера.

Примеры структуры

OpenAI-совместимый чат:

{
  "model": "{{.model}}",
  "messages": [
    {
      "role": "user",
      "content": "{{.prompt}}"
    }
  ],
  "temperature": 0.7
}

Другой формат сообщений:

{
  "messages": [
    {
      "content": "{{.prompt}}",
      "role": "user"
    }
  ],
  "model": "{{.model}}",
  "stream": false
}

Минимальный вариант:

{
  "query": "{{.prompt}}",
  "model_name": "{{.model}}"
}

Особенности: шаблон должен быть валидным JSON; в шаблон можно добавлять поля вроде temperature, max_tokens и т.д.

Примеры конфигурации

API OpenAI (Chat Completions)

  1. Название — по желанию (например ChatGPT).
  2. Модель — например gpt-4 или gpt-3.5-turbo.
  3. URLhttps://api.openai.com/v1/chat/completions.
  4. МетодPOST.
  5. Заголовки — например Authorization: Bearer {{ .credentials.openai_api_key }} (ключ openai_api_key заведите в учётных данных).
  6. Поле ответаchoices.0.message.content.
  7. Шаблон тела — как в первом примере в разделе «Шаблон тела запроса».

Ollama (/api/generate)

  1. URLhttp://localhost:11434/api/generate (или адрес вашей Ollama).
  2. МетодPOST.
  3. Поле ответаresponse.
  4. Шаблон тела:
{
  "model": "{{.model}}",
  "prompt": "{{.prompt}}",
  "stream": false
}

Произвольный REST API

  • URL — эндпоинт вашего сервиса (например https://api.example.com/v1/chat).
  • Метод — обычно POST.
  • Заголовки — например Authorization: Bearer {{ .credentials.api_key }}, Content-Type: application/json.
  • Поле ответа — путь к полю с текстом в вашем JSON.
  • Шаблон тела — на базе первого примера в разделе «Шаблон тела запроса», при необходимости добавьте поля (max_tokens и т.д.).

Работа с AI-ассистентом

Панель ассистента открывается справа; кнопка запуска — в правом нижнем углу экрана.

Выбор провайдера

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

Чаты

Диалог ведётся в чатах; слева — список чатов и Новый чат.

  1. До 20 чатов на пользователя; при достижении лимита удалите старые чаты через меню «⋯».
  2. До первого сообщения у чата служебное название; после первого вопроса название подставляется по тексту (можно Переименовать).
  3. Удаление чата вместе с историей сообщений в нем необратимо.

Передача контекста

Переключатель Передавать контекст задаётся для каждого чата отдельно.

  1. Включено — в запрос уходит контекст переписки в этой теме.
  2. Выключено — только текущее сообщение; расход токенов ниже, без «памяти» в чате.

При включённом контексте и длинной истории старые реплики не отправляются целиком каждый раз: недавние сообщения идут полностью, более ранняя часть сжимается в резюме отдельным запросом к тому же провайдеру.

Включение передачи контекста увеличивает расход токенов при взаимодействии с моделью.

Инструменты MCP

Список инструментов, параметры и примеры описаны в документации MCP-сервера. В одном запросе модель может вызвать несколько инструментов. В панели чата можно раскрыть Доступные инструменты, посмотреть аргументы и скопировать пример в поле ввода кликом.