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

Поставщики AI — каталог настройки

Слой AI cMind не зависит от поставщика (см. Функции AI). Настройте поставщика двумя способами:

  1. Пользовательский интерфейс (владелец): Параметры → AI → Добавить поставщика → выберите тип, базовый URL, модель, ключ (необязателен для локальных) → переключатели возможностей → Установить активным → Проверить соединение.

  2. Конфиг/переменная окружения (ops): инициализируйте App:Ai:Providers[] и App:Ai:ActiveProvider — импортируется в хранилище при первом запуске, если нет учетных данных. Пример (переменная окружения, индекс поставщика 0):

    App__Ai__ActiveProvider=OpenAiCompatible
    App__Ai__Providers__0__Kind=OpenAiCompatible
    App__Ai__Providers__0__BaseUrl=http://localhost:11434/v1/
    App__Ai__Providers__0__Model=llama3.1:8b
    # App__Ai__Providers__0__ApiKey=... (пропустите для локальных конечных точек без ключа)

Одновременно активен ровно один поставщик. Ключи хранятся в зашифрованном виде; локальная конечная точка не требует ключа.

Безопасность: http vs https​

Открытый текст http:// принимается только для loopback / приватных (intranet) хостов — случай локального LLM (Ollama, LM Studio, vLLM, on-prem бокс). Любой хост, маршрутизируемый в публичном интернете, должен быть https://, чтобы API ключ никогда не был отправлен в открытом виде. Air-gapped/on-prem: направьте базовый URL на вашу внутреннюю конечную точку (loopback или приватный IP) и оставьте ключ пустым, если среда выполнения не требует аутентификации.

Встроенный локальный AI (ONNX, поставляется)​

cMind поставляется с реальной встроенной LLM внутри процесса (Microsoft.ML.OnnxRuntimeGenAI), которая включена по умолчанию — без ключа, без внешних сервисов. При первом запуске, когда поставщик не настроен и App:Branding:AllowBuiltInAi равен true, он автоматически инициализируется и активируется.

  • Конфиг: App:Ai:BuiltIn:Enabled (по умолчанию true), App:Ai:BuiltIn:ModelPath (по умолчанию models/onnx, относительно базового каталога приложения), App:Ai:BuiltIn:MaxTokens (по умолчанию 1024).

  • Файлы модели: укажите ModelPath на каталог, содержащий модель ONNX GenAI — genai_config.json, токенизатор и веса .onnx. CPU Phi-3.5-mini-instruct работает хорошо (поставляется по умолчанию), например:

    pip install huggingface_hub
    huggingface-cli download microsoft/Phi-3.5-mini-instruct-onnx \
    --include cpu_and_mobile/cpu-int4-awq-block-128-acc-level-4/* \
    --local-dir ./models
    # затем установите App:Ai:BuiltIn:ModelPath на этот каталог (содержит genai_config.json)

    Включите папку в образ развертывания / том Helm или смонтируйте его во время выполнения. Когда файлы отсутствуют, встроенная версия деградирует до четкого сообщения "модель не установлена" — приложение все еще работает; настройте другого поставщика или установите модель.

  • GPU: замените CPU пакет/модель на CUDA/DirectML сборку ONNX GenAI; кодовый путь не изменяется.

White-label: ограничение AI​

Установите под App:Branding (применяется на сервере — запрещенный upsert возвращает 400):

  • AllowBuiltInAi: false — удалите встроенную модель полностью.
  • AllowLocalProviders: false — запретите локальные/self-hosted конечные точки (Ollama/LM Studio/vLLM и любой loopback/приватный OpenAI-совместимый URL).
  • AllowedAiProviderKinds: ["Anthropic","OpenAiCompatible"] — разрешите только эти типы (пусто = все).

Расширение будущими встроенными моделями​

Слой поставщика основан на адаптерах (IAiProvider с ключом AiProviderKind), поэтому будущая встроенная среда выполнения модели добавляется без изменения функции AI: добавьте тип, реализуйте один адаптер, зарегистрируйте его. ONNX встроенная версия является эталонной реализацией. См. Функции AI → Расширение.

Облачные поставщики​

Anthropic (Claude)​

  • Ключ: https://console.anthropic.com/ → API keys.
  • Базовый URL: https://api.anthropic.com/ · Модель: например claude-opus-4-8.
  • Возможности: поиск в интернете + зрение включены по умолчанию.

OpenAI​

  • Ключ: https://platform.openai.com/api-keys.
  • Базовый URL: https://api.openai.com/v1/ · Модель: например gpt-4o.
  • Тип: OpenAiCompatible. Включите зрение в диалоге, если используете модель с видением.

Azure OpenAI​

  • Ключ + конечная точка: портал Azure → ваш ресурс Azure OpenAI.
  • Базовый URL: https://<resource>.openai.azure.com/ · Модель: ваше имя развертывания.
  • Тип: AzureOpenAi (использует заголовок api-key + запрос api-version и путь развертывания).

Google Gemini​

  • Ключ: https://aistudio.google.com/app/apikey.
  • Базовый URL: https://generativelanguage.googleapis.com/ · Модель: например gemini-2.0-flash.
  • Тип: Gemini. Заземление веб-поиска + зрение включены по умолчанию.

Другие облачные решения, совместимые с OpenAI (OpenRouter, Groq, Together, Mistral, DeepSeek)​

  • Тип: OpenAiCompatible. Базовый URL = совместимая с OpenAI конечная точка поставщика, Модель = его id модели, ApiKey = ключ поставщика. Изменение cMind не требуется — один адаптер служит всем.

Локальные модели (без ключа)​

Все локальные среды выполнения предоставляют открытый провод OpenAI Chat Completions, поэтому используйте Kind: OpenAiCompatible с базовым URL среды выполнения и обслуживаемым именем модели; оставьте ключ пустым.

Ollama​

# установите с https://ollama.com, затем:
ollama pull llama3.1:8b
  • Базовый URL: http://localhost:11434/v1/ · Модель: вытянутое имя (например llama3.1:8b, qwen2.5-coder).
  • Без API ключа. Возможности по умолчанию только текст; включите зрение только для модели видения.

LM Studio​

  • Запустите локальный сервер (Разработчик → Запустить сервер).
  • Базовый URL: http://localhost:1234/v1/ · Модель: загруженный id модели. Без API ключа.

vLLM / llama.cpp server / LocalAI​

  • Обслуживайте совместимую с OpenAI конечную точку (каждая поставляется с одной).
  • Базовый URL: ваш обслуживаемый URL (например http://localhost:8000/v1/) · Модель: имя обслуживаемой модели. Без ключа, если вы не поместили аутентификацию спереди.

Проверка​

  • Проверить соединение в диалоге запускает крошечное завершение ping и сообщает об успехе + задержка — идеально для подтверждения локальной конечной точки.
  • Автоматизированная: набор E2E приложения управляет каждой функцией AI через встроенный поддельный сервер, совместимый с OpenAI, по умолчанию, или вашего реального поставщика, когда установлены AI_E2E_BASEURL (+ необязательные AI_E2E_API_KEY / AI_E2E_KIND / AI_E2E_MODEL). См. Функции AI → Тестирование.

Переключение / ротация​

  • Переключить активного поставщика: Параметры → AI → Установить активным на другой карточке (активирование одного деактивирует остальные).
  • Ротация ключа: отредактируйте поставщика и укажите новый ключ (оставьте пустым, чтобы сохранить сохраненный).
  • Удалить: удалите карточку. Когда нет активного поставщика, функции AI отключаются и остальная часть приложения работает без изменений.