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

Функции ИИ

Настройки ИИ

Canopy включает функции на основе ИИ, которые используют большую языковую модель (LLM) для помощи пользователям. Все функции ИИ используют единую конфигурацию провайдера ИИ — настраивается один раз, используется везде.

Доступные на данный момент функции ИИ:

  • Предложения описаний — автоматическая генерация описаний карточек с помощью веб-поиска и LLM
  • Аналитика портфеля — генерация стратегического анализа портфеля приложений по запросу
  • Генерация BPMN-диаграмм — генерация и изменение диаграмм процессных потоков BPMN 2.0 на основе описаний в произвольной форме

Все функции необязательны и полностью контролируются администратором. Они могут работать полностью на вашей собственной инфраструктуре с использованием локального экземпляра Ollama или подключаться к коммерческим провайдерам LLM.


Как это работает

Конвейер ИИ-предложений состоит из двух этапов:

  1. Веб-поиск — Canopy отправляет запрос поисковому провайдеру (DuckDuckGo, Google Custom Search или SearXNG), используя имя и тип карточки в качестве контекста. Например, для карточки типа «Приложение» с именем «SAP S/4HANA» генерируется запрос «SAP S/4HANA software application».

  2. Извлечение LLM — результаты поиска отправляются настроенной LLM вместе с системным промптом, учитывающим тип. Модель создаёт описание, оценку уверенности (0–100%) и список использованных источников.

Результат отображается пользователю с:

  • Редактируемым описанием, которое можно просмотреть и изменить перед применением
  • Индикатором уверенности, показывающим надёжность предложения
  • Ссылками на источники, чтобы пользователь мог проверить информацию

Поддерживаемые провайдеры LLM

ПровайдерТипКонфигурация
OllamaСамостоятельный хостингURL провайдера (например, http://ollama:11434) + имя модели
OpenAIКоммерческийAPI-ключ + имя модели (например, gpt-4o)
Google GeminiКоммерческийAPI-ключ + имя модели
Azure Hosted OpenAIКоммерческийAPI-ключ + endpoint ресурса Azure + имя deployment + версия API (по умолчанию 2025-01-01)
OpenRouterКоммерческийAPI-ключ + имя модели
Anthropic ClaudeКоммерческийAPI-ключ + имя модели

Коммерческие провайдеры требуют API-ключ, который хранится в базе данных в зашифрованном виде с использованием симметричного шифрования Fernet.


Поисковые провайдеры

ПровайдерНастройкаПримечания
DuckDuckGoНастройка не требуетсяПо умолчанию. Парсинг HTML без зависимостей. API-ключ не нужен.
Google Custom SearchТребуется API-ключ и идентификатор пользовательской поисковой системыВведите как API_KEY:CX в поле URL поиска. Более качественные результаты.
SearXNGТребуется URL самостоятельно размещённого экземпляра SearXNGМетапоисковая система с упором на конфиденциальность. JSON API.

Настройка

Вариант A: Встроенный Ollama (Docker Compose)

Самый простой способ начать работу. Canopy включает опциональный контейнер Ollama в конфигурации Docker Compose.

1. Запустите с профилем AI:

docker compose --profile ai up --build -d

2. Включите автоматическую настройку, добавив следующие переменные в ваш .env:

AI_AUTO_CONFIGURE=true
AI_MODEL=gemma3:4b # или mistral, llama3:8b и т.д.

При запуске бэкенд:

  • Обнаружит контейнер Ollama
  • Сохранит настройки подключения в базу данных
  • Загрузит настроенную модель, если она ещё не скачана (выполняется в фоновом режиме, может занять несколько минут)

3. Проверьте в интерфейсе администратора: перейдите в Настройки > ИИ-предложения и убедитесь, что статус показывает «подключено».

Вариант B: Внешний экземпляр Ollama

Если у вас уже запущен Ollama на отдельном сервере:

  1. Перейдите в Настройки > ИИ-предложения в интерфейсе администратора.
  2. Выберите Ollama в качестве типа провайдера.
  3. Введите URL провайдера (например, http://your-server:11434).
  4. Нажмите Тест подключения — система покажет доступные модели.
  5. Выберите модель из выпадающего списка.
  6. Нажмите Сохранить.

Вариант C: Коммерческий провайдер LLM

  1. Перейдите в Настройки > ИИ-предложения в интерфейсе администратора.
  2. Выберите вашего провайдера (OpenAI, Google Gemini, Azure OpenAI, OpenRouter или Anthropic Claude).
  3. Введите ваш API-ключ — он будет зашифрован перед сохранением.
  4. Введите имя модели (например, gpt-4o, gemini-pro, claude-sonnet-4-20250514).
  5. Нажмите Тест подключения для проверки.
  6. Нажмите Сохранить.

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

После подключения вы можете настроить функции ИИ в Настройки > ИИ. Страница настроек разделена на три раздела:

  1. Провайдер ИИ — общая конфигурация провайдера (тип, URL, API-ключ, модель)
  2. ИИ-предложения описаний — включение/отключение предложений описаний и выбор типов карточек, для которых они поддерживаются
  3. Аналитика портфеля — включение/отключение ИИ-аналитики в отчёте о портфеле

Включение/отключение по типу карточки

Не каждый тип карточки одинаково выигрывает от ИИ-предложений. Вы можете включить или отключить ИИ для каждого типа отдельно. Например, вы можете включить его для карточек «Приложение» и «ИТ-компонент», но отключить для карточек «Организация», где описания специфичны для компании.

Поисковый провайдер

Выберите, какой провайдер веб-поиска использовать для сбора контекста перед отправкой в LLM. DuckDuckGo работает «из коробки» без настройки. Google Custom Search и SearXNG требуют дополнительной настройки (см. таблицу поисковых провайдеров выше).

Выбор модели

Для Ollama интерфейс администратора показывает все модели, загруженные на экземпляр Ollama. Для коммерческих провайдеров введите идентификатор модели напрямую.


Использование ИИ-предложений

Панель ИИ-предложений на странице карточки

После настройки администратором пользователи с разрешением ai.suggest (предоставлено ролям «Администратор», «Администратор BPM» и «Участник» по умолчанию) увидят кнопку-искру на страницах деталей карточек и в диалоге создания карточки.

На существующей карточке

  1. Откройте страницу деталей любой карточки.
  2. Нажмите кнопку-искру (видна рядом с разделом описания, когда ИИ включён для данного типа карточки).
  3. Подождите несколько секунд для выполнения веб-поиска и обработки LLM.
  4. Просмотрите предложение: прочитайте сгенерированное описание, проверьте оценку уверенности и проверьте ссылки на источники.
  5. Отредактируйте текст при необходимости — предложение полностью редактируемо перед применением.
  6. Нажмите Применить, чтобы установить описание, или Отклонить, чтобы отбросить его.

При создании новой карточки

  1. Откройте диалог Создание карточки.
  2. После ввода имени карточки становится доступна кнопка ИИ-предложения.
  3. Нажмите её, чтобы предварительно заполнить описание перед сохранением.

Предложения для приложений

Для карточек Приложение ИИ также может предложить дополнительные поля, если находит подтверждения в результатах веб-поиска:

  • Коммерческое приложение — включается, если найдены страницы с ценами, информацией о лицензировании или контактами отдела продаж
  • Тип хостинга — предлагается как «Локальный» (On-Premise), «Облако (SaaS)», «Облако (PaaS)», «Облако (IaaS)» или «Гибридный» на основе модели развёртывания продукта

Эти поля предлагаются только при наличии чётких доказательств — они не являются предположениями. Пользователь может просмотреть и скорректировать значения перед применением.

примечание

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


Аналитика портфеля

При включении в отчёте о портфеле приложений отображается кнопка ИИ-аналитика. Нажатие на неё отправляет сводку текущего представления портфеля — группировку, распределение атрибутов и данные жизненного цикла — в настроенную LLM, которая возвращает 3–5 практических рекомендаций.

Рекомендации фокусируются на:

  • Риски концентрации — слишком много приложений в одной группе или состоянии
  • Возможности модернизации — на основе данных жизненного цикла и хостинга
  • Баланс портфеля — разнообразие по подтипам, группам и атрибутам
  • Проблемы жизненного цикла — приложения, приближающиеся к окончанию жизненного цикла
  • Факторы стоимости или сложности — на основе распределения атрибутов

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

Включение аналитики портфеля

  1. Перейдите в Настройки > ИИ > Аналитика портфеля.
  2. Включите переключатель Аналитика портфеля.
  3. Нажмите Сохранить.
примечание

Аналитика портфеля требует предварительной настройки провайдера ИИ. Функция использует того же провайдера и модель, что и предложения описаний.


Разрешения

РольДоступ
АдминистраторПолный доступ: настройка параметров ИИ, использование предложений, генерация аналитики портфеля и генерация BPMN-диаграмм
Администратор BPMИспользование предложений, генерация аналитики портфеля и генерация BPMN-диаграмм
УчастникИспользование предложений, генерация аналитики портфеля и генерация BPMN-диаграмм
НаблюдательНет доступа к функциям ИИ

Три ключа разрешений управляют доступом к ИИ:

  • ai.suggest — контролирует доступ к ИИ-предложениям описаний
  • ai.portfolio_insights — контролирует доступ к аналитике портфеля ИИ
  • bpm.generate — контролирует доступ к генерации и изменению BPMN-диаграмм с помощью ИИ

Пользовательским ролям можно предоставить эти разрешения через страницу администрирования ролей.


Конфиденциальность и безопасность

  • Вариант самостоятельного хостинга: при использовании Ollama вся обработка ИИ происходит на вашей собственной инфраструктуре. Данные не покидают вашу сеть.
  • Зашифрованные API-ключи: API-ключи коммерческих провайдеров шифруются с помощью симметричного шифрования Fernet перед сохранением в базе данных.
  • Контекст только из поиска: LLM получает результаты веб-поиска и имя/тип карточки — не ваши внутренние данные карточек, связи или другие конфиденциальные метаданные.
  • Контроль пользователя: каждое предложение должно быть рассмотрено и явно применено пользователем. ИИ никогда не изменяет карточки автоматически.

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

ПроблемаРешение
Кнопка ИИ-предложения не виднаПроверьте, что ИИ включён для данного типа карточки в Настройки > ИИ-предложения, и что у пользователя есть разрешение ai.suggest.
Статус «ИИ не настроен»Перейдите в Настройки > ИИ-предложения и завершите настройку провайдера. Нажмите «Тест подключения» для проверки.
Модель не отображается в спискеДля Ollama: убедитесь, что модель загружена (ollama pull model-name). Для коммерческих провайдеров: введите имя модели вручную.
Медленные предложенияСкорость вывода LLM зависит от оборудования (для Ollama) или сетевой задержки (для коммерческих провайдеров). Меньшие модели, такие как gemma3:4b, быстрее крупных.
Низкие оценки уверенностиLLM может не найти достаточно релевантной информации через веб-поиск. Попробуйте более конкретное имя карточки или рассмотрите использование Google Custom Search для лучших результатов.
Тест подключения не проходитУбедитесь, что URL провайдера доступен из контейнера бэкенда. Для Docker-настроек убедитесь, что оба контейнера находятся в одной сети.

Переменные окружения

Эти переменные окружения обеспечивают начальную конфигурацию ИИ. После сохранения через интерфейс администратора настройки базы данных имеют приоритет.

ПеременнаяПо умолчаниюОписание
AI_PROVIDER_URL(пусто)URL провайдера LLM, совместимого с Ollama
AI_MODEL(пусто)Имя модели LLM (например, gemma3:4b, mistral)
AI_SEARCH_PROVIDERduckduckgoПровайдер веб-поиска: duckduckgo, google или searxng
AI_SEARCH_URL(пусто)URL поискового провайдера или учётные данные API
AI_AUTO_CONFIGUREfalseАвтоматическое включение ИИ при запуске, если провайдер доступен
BPMN_RENDERER_URLhttp://bpmn-renderer:3100Внутренний URL вспомогательного сервиса Node.js BPMN renderer. Установите значение http://localhost:3100 при запуске в Cloud Run или других контейнерных платформах, где вспомогательные контейнеры используют общий localhost-интерфейс.