Dostawcy AI — katalog konfiguracji
Warstwa AI cMind jest niezależna od dostawcy (patrz funkcje AI). Dostawcę można skonfigurować na dwa sposoby:
-
UI (właściciel): Ustawienia → AI → Dodaj dostawcę → wybierz rodzaj, base URL, model, klucz (opcjonalny dla lokalnego), przełączniki możliwości, Ustaw jako aktywny → Testuj połączenie.
-
Config/env (ops): zaseeduj
App:Ai:Providers[]iApp:Ai:ActiveProvider— importowane do sklepu przy pierwszym starcie, gdy brak poświadczeń. Przykład (env, indeks dostawcy0):App__Ai__ActiveProvider=OpenAiCompatibleApp__Ai__Providers__0__Kind=OpenAiCompatibleApp__Ai__Providers__0__BaseUrl=http://localhost:11434/v1/App__Ai__Providers__0__Model=llama3.1:8b# App__Ai__Providers__0__ApiKey=... (pomiń dla lokalnych endpointów bez klucza)
Dokładnie jeden dostawca jest aktywny na raz. Klucze są przechowywane zaszyfrowane; lokalny endpoint ich nie wymaga.
Bezpieczeństwo: http vs https
Nieszyfrowane http:// jest akceptowane tylko dla loopback / hostów prywatnych (intranet) —
przypadek lokalnego LLM (Ollama, LM Studio, vLLM, on-prem box). Każdy host routowany w publicznym
internecie musi być https://, więc klucz API nigdy nie jest wysyłany tekstem. Air-gapped/on-prem:
wskarz base URL na swój wewnętrzny endpoint (loopback lub prywatny IP) i zostaw klucz pusty, jeśli
runtime nie wymaga autoryzacji.
Wbudowany lokalny AI (ONNX, wysyłany)
cMind wysyła rzeczywisty lokalny LLM w procesie (Microsoft.ML.OnnxRuntimeGenAI), który jest
domyślnie włączony — bez klucza, bez zewnętrznej usługi. Przy pierwszym starcie, gdy brak
skonfigurowanego dostawcy i App:Branding:AllowBuiltInAi jest true, jest automatycznie seedaowany i
aktywowany.
-
Konfiguracja:
App:Ai:BuiltIn:Enabled(domyślnietrue),App:Ai:BuiltIn:ModelPath(domyślniemodels/onnx, relatywnie do katalogu bazowego aplikacji),App:Ai:BuiltIn:MaxTokens(domyślnie1024). -
Pliki modelu: wskaż
ModelPathna katalog zawierający model ONNX GenAI —genai_config.json, tokenizer i wagi.onnx. Build CPU Phi-3.5-mini-instruct działa dobrze, np.:pip install huggingface_hubhuggingface-cli download microsoft/Phi-3.5-mini-instruct-onnx \--include cpu_and_mobile/cpu-int4-awq-block-128-acc-level-4/* \--local-dir ./models# następnie ustaw App:Ai:BuiltIn:ModelPath na ten folder (zawiera genai_config.json)Dołącz folder do obrazu wdrożeniowego / wolumenu Helm lub zamontuj w runtime. Gdy pliki są nieobecne, wbudowany model degraderuje do jasnego komunikatu „model nie zainstalowany" — aplikacja nadal działa; skonfiguruj innego dostawcę lub zainstaluj model.
-
GPU: zamień pakiet/model CPU na build ONNX GenAI CUDA/DirectML; ścieżka kodu bez zmian.
White-label: ograniczanie AI
Ustaw pod App:Branding (wymuszane po stronie serwera — niedozwolony upsert zwraca 400):
AllowBuiltInAi: false— całkowicie usuwa wysłany wbudowany model.AllowLocalProviders: false— zabrania lokalnych/self-hosted endpointów (Ollama/LM Studio/vLLM i dowolny URL OpenAI-kompatybilny loopback/prywatny).AllowedAiProviderKinds: ["Anthropic","OpenAiCompatible"]— dozwolone tylko te rodzaje (puste = wszystkie).
Rozszerzanie o przyszłe wbudowane modele
Warstwa dostawców jest oparta na adapterach (IAiProvider key-by AiProviderKind), więc przyszły
wbudowany runtime modelu jest dodawany bez dotykania żadnej funkcji AI: dodaj kind, zaimplementuj jeden
adapter, zarejestruj go. Wbudowany ONNX jest implementacją referencyjną. Patrz funkcje AI →
Rozszerzanie.
Dostawcy chmurowi
Anthropic (Claude)
- Klucz: https://console.anthropic.com/ → klucze API.
- Base URL:
https://api.anthropic.com/· Model: np.claude-opus-4-8. - Możliwości: web search + wizja domyślnie włączone.
OpenAI
- Klucz: https://platform.openai.com/api-keys.
- Base URL:
https://api.openai.com/v1/· Model: np.gpt-4o. - Kind: OpenAiCompatible. Włącz wizję w dialogu, jeśli używasz modelu wizyjnego.
Azure OpenAI
- Klucz + endpoint: portal Azure → zasób Azure OpenAI.
- Base URL:
https://<resource>.openai.azure.com/· Model: twoja nazwa deploymentu. - Kind: AzureOpenAi (używa nagłówka
api-key+ zapytaniaapi-versioni ścieżki deployment).
Google Gemini
- Klucz: https://aistudio.google.com/app/apikey.
- Base URL:
https://generativelanguage.googleapis.com/· Model: np.gemini-2.0-flash. - Kind: Gemini. Web-search grounding + wizja domyślnie włączone.
Inne chmury OpenAI-kompatybilne (OpenRouter, Groq, Together, Mistral, DeepSeek)
- Kind: OpenAiCompatible. Base URL = endpoint OpenAI-kompatybilny dostawcy, Model = jego id modelu, ApiKey = klucz dostawcy. Bez zmiany w cMind — jeden adapter obsługuje ich wszystkich.
Modele lokalne (bez klucza)
Wszystkie lokalne runtime'y eksponują wire OpenAI Chat Completions, więc użyj Kind: OpenAiCompatible z base URL runtime'u i nazwą serwowanego modelu; zostaw klucz pusty.
Ollama
# install from https://ollama.com, then:
ollama pull llama3.1:8b
- Base URL:
http://localhost:11434/v1/· Model: ściągnięta nazwa (np.llama3.1:8b,qwen2.5-coder). - Bez klucza API. Możliwości domyślnie text-only; włącz wizję tylko dla modelu wizyjnego.
LM Studio
- Uruchom lokalny serwer (Developer → Start server).
- Base URL:
http://localhost:1234/v1/· Model: załadowane id modelu. Bez klucza API.
vLLM / llama.cpp server / LocalAI
- Serwuj OpenAI-kompatybilny endpoint (każdy wysyła jeden).
- Base URL: twój served URL (np.
http://localhost:8000/v1/) · Model: nazwa serwowanego modelu. Bez klucza, chyba że masz auth przed nim.
Weryfikacja
- Testuj połączenie w dialogu uruchamia tiny ping completion i raportuje sukces + latencję — idealne do potwierdzenia lokalnego endpointu.
- Zautomatyzowane: zestaw E2E aplikacji wykonuje każdą funkcję AI przeciwko in-process fake
OpenAI-compatible server domyślnie, lub twojemu realnemu dostawcy gdy ustawione jest
AI_E2E_BASEURL(+ opcjonalnieAI_E2E_API_KEY/AI_E2E_KIND/AI_E2E_MODEL). Patrz funkcje AI → Testowanie.
Przełączanie / rotacja
- Przełącz aktywnego dostawcę: Ustawienia → AI → Ustaw jako aktywny na innej karcie (aktywacja jednego dezaktywuje resztę).
- Rotuj klucz: edytuj dostawcę i podaj nowy klucz (zostaw puste, aby zachować zapisany).
- Usuń: usuń kartę. Bez aktywnego dostawcy funkcje AI są wyłączone, a reszta aplikacji działa bez zmian.