Экспериментальный функционал
AI-ассистент — это интеллектуальный помощник, встроенный в Deckhouse Development Platform (DDP). Он отвечает на вопросы о платформе, анализирует данные каталога и выполняет различные задачи с использованием инструментов MCP (Model Context Protocol).
AI-ассистент использует настраиваемые AI-провайдеры для обработки запросов и может работать с различными языковыми моделями, включая OpenAI GPT, Ollama и любые модели, доступные через совместимый REST API.
Подключение AI-провайдера
Пользователь самостоятельно настраивает AI-провайдеры в своём профиле.
Для подключения нового AI-провайдера:
- Откройте «Профиль» → вкладка «AI-провайдеры».
- Нажмите «Добавить».
- Заполните «Название», «Модель», «URL», «Метод» и «Заголовки»; при необходимости укажите «Поле ответа» и «Шаблон тела запроса».
- При использовании токенов в заголовках предпочтительно сохранить учётные данные и подставлять их через шаблонизацию.
- Нажмите «Сохранить».
Примеры для распространённых API приведены в разделе «Примеры конфигурации».
Учётные данные для провайдеров
Для безопасного хранения токенов и ключей используется система учётных данных: они шифруются в базе и подставляются в заголовки запросов через шаблонизацию.
Добавление учётных данных
Для добавления новых учётных данных:
- В форме создания или редактирования провайдера нажмите «Управление учётными данными».
- В диалоге нажмите «Добавить учётные данные».
- Введите пару «Ключ» / «Значение» (например,
api_keyи секрет). - Нажмите «Сохранить».
Изменение учётных данных
Обратите внимание, что:
- Ключ существующих учётных данных нельзя изменить: удалите запись и создайте новую.
- Значение можно обновить, введя новое.
- После сохранения значения не показываются в интерфейсе.
Шаблонизация в заголовках
Вместо токена в открытом виде используйте подстановку:
Authorization: Bearer {{ .credentials.api_key }}где Authorization — заголовок, credentials — место хранения учётных данных в зашифрованном виде, а api_key — ключ, заданный в учётных данных.
Поле ответа
В «Поле ответа» задается путь к тексту ответа модели (например, choices.0.message.content) в теле ответа API (тело ответа возвращается в JSON-формате) . Если значение поля не задано, платформа попытается найти текст ответа автоматически.
Чтобы подобрать путь, выполните тестовый запрос к API, откройте ответ и найдите в теле ответа (возвращается в формате JSON) название поля с текстом ответа модели.
Шаблон тела запроса
В поле «Шаблон тела запроса» вводится структура в формате JSON, которая отправляется в API.
Используются следующие переменные:
{{.prompt}}— текст запроса пользователя.{{.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)
- «Название» — по желанию (например,
ChatGPT). - «Модель» — например,
gpt-4илиgpt-3.5-turbo. - «URL» —
https://api.openai.com/v1/chat/completions. - «Метод» —
POST. - «Заголовки» — например,
Authorization: Bearer {{ .credentials.openai_api_key }}(ключopenai_api_keyзаведите в «Управлении учётными данными»). - «Поле ответа» —
choices.0.message.content. - «Шаблон тела» — как в первом примере в разделе «Шаблон тела запроса».
Ollama (/api/generate)
«URL» —
http://localhost:11434/api/generate(или адрес вашей Ollama).«Метод» —
POST.«Поле ответа» —
response.«Шаблон тела»:
{ "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-ассистентом
Панель ассистента открывается справа; кнопка запуска — в правом нижнем углу экрана.
Выбор провайдера
Вверху панели чата — список провайдеров. Если доступен один провайдер, он выбирается автоматически.
Чаты
Диалог ведётся в чатах. Слева — список чатов и «Новый чат».
Чаты имеют следующие настройки:
- До 20 чатов на пользователя. При достижении лимита удалите старые чаты через меню «⋯».
- До первого сообщения у чата служебное название. После первого вопроса название подставляется по тексту (можно «Переименовать»).
- Удаление чата вместе с историей сообщений в нем необратимо.
Передача контекста
Переключатель «Передавать контекст» задаётся для каждого чата отдельно:
- «Включено» — в запрос уходит контекст переписки в этой теме.
- «Выключено» — только текущее сообщение. Расход токенов ниже, без «памяти» в чате.
При включённом контексте и длинной истории старые реплики не отправляются целиком каждый раз: недавние сообщения идут полностью, более ранняя часть сжимается в резюме отдельным запросом к тому же провайдеру.
Включение передачи контекста увеличивает расход токенов при взаимодействии с моделью.
Инструменты MCP
Список инструментов, параметры и примеры описаны в документации MCP-сервера. В одном запросе модель может вызвать несколько инструментов. В панели чата можно раскрыть «Доступные инструменты», посмотреть аргументы и скопировать пример в поле ввода кликом.