Provedores de IA — catálogo de configuração
A camada IA do cMind é agnóstica do provedor (veja recursos de IA). Configure um provedor de duas formas:
-
Interface (proprietário): Configurações → IA → Adicionar provedor → escolha tipo, URL base, modelo, chave (opcional para local), alternâncias de capacidade, Definir ativo → Testar conexão.
-
Config/env (ops): semear
App:Ai:Providers[]eApp:Ai:ActiveProvider— importado para a loja na primeira inicialização quando nenhuma credencial existe. Exemplo (env, índice de provedor0):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=... (omita para pontos de extremidade locais sem chave)
Exatamente um provedor está ativo por vez. As chaves são armazenadas criptografadas; um ponto de extremidade local não precisa de nenhum.
Segurança: http vs https
http:// simples é aceito apenas para hosts loopback / privado (intranet) — o caso de LLM local
(Ollama, LM Studio, vLLM, uma caixa on-prem). Qualquer host roteável na internet pública deve ser
https://, para que uma chave de API nunca seja enviada em texto puro. Air-gapped/on-prem: aponte a URL base para seu
ponto de extremidade interno (loopback ou IP privado) e deixe a chave em branco se o tempo de execução não autenticado.
IA local integrada (ONNX, enviado)
cMind envia um LLM local real em processo (Microsoft.ML.OnnxRuntimeGenAI) que é habilitado por
padrão — sem chave, sem serviço externo. Na primeira inicialização, quando nenhum provedor é configurado e
App:Branding:AllowBuiltInAi é true, é semeado e ativado automaticamente.
-
Config:
App:Ai:BuiltIn:Enabled(padrãotrue),App:Ai:BuiltIn:ModelPath(padrãomodels/onnx, relativo ao diretório base do app),App:Ai:BuiltIn:MaxTokens(padrão1024). -
Arquivos de modelo: aponte
ModelPathpara um diretório contendo um modelo ONNX GenAI —genai_config.json, o tokenizador e os pesos.onnx. Uma compilação CPU Phi-3.5-mini-instruct funciona bem, por exemplo: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# depois defina App:Ai:BuiltIn:ModelPath para essa pasta (contém genai_config.json)Agrupe a pasta com sua imagem de implantação / volume Helm, ou monte-a no tempo de execução. Quando os arquivos estão ausentes a integrada se degrada para uma mensagem clara "model not installed" — o app ainda funciona; configure outro provedor ou instale o modelo.
-
GPU: troque o pacote/modelo CPU por uma compilação ONNX GenAI CUDA/DirectML; o caminho do código é inalterado.
Rótulo branco: limitando IA
Defina em App:Branding (imposto no servidor — um upsert proibido retorna 400):
AllowBuiltInAi: false— remove o modelo integrado enviado inteiramente.AllowLocalProviders: false— proíba pontos de extremidade locais/auto-hospedados (Ollama/LM Studio/vLLM e qualquer URL loopback/privado compatível com OpenAI).AllowedAiProviderKinds: ["Anthropic","OpenAiCompatible"]— permita apenas esses tipos (vazio = tudo).
Estendendo com futuros modelos integrados
A camada do provedor é baseada em adaptador (IAiProvider codificado por AiProviderKind), então um futuro tempo de execução de modelo integrado
é adicionado sem tocar qualquer característica de IA: adicione um tipo, implemente um adaptador, registre-o. O
integrado ONNX é a implementação de referência. Veja Recursos de IA → Estendendo.
Provedores em nuvem
Anthropic (Claude)
- Chave: https://console.anthropic.com/ → Chaves de API.
- URL base:
https://api.anthropic.com/· Modelo: por exemploclaude-opus-4-8. - Capacidades: busca na web + visão ativada por padrão.
OpenAI
- Chave: https://platform.openai.com/api-keys.
- URL base:
https://api.openai.com/v1/· Modelo: por exemplogpt-4o. - Tipo: OpenAiCompatible. Ativar visão no diálogo se usar modelo de visão.
Azure OpenAI
- Chave + ponto de extremidade: portal Azure → seu recurso Azure OpenAI.
- URL base:
https://<resource>.openai.azure.com/· Modelo: seu nome de implantação. - Tipo: AzureOpenAi (usa o cabeçalho
api-key+ consultaapi-versione o caminho de implantação).
Google Gemini
- Chave: https://aistudio.google.com/app/apikey.
- URL base:
https://generativelanguage.googleapis.com/· Modelo: por exemplogemini-2.0-flash. - Tipo: Gemini. Fundamentação de busca na web + visão ativada por padrão.
Outras nuvens compatíveis com OpenAI (OpenRouter, Groq, Together, Mistral, DeepSeek)
- Tipo: OpenAiCompatible. URL base = ponto de extremidade compatível com OpenAI do provedor, Modelo = seu id de modelo, ApiKey = chave do provedor. Nenhuma mudança de cMind necessária — um adaptador os atende a todos.
Modelos locais (sem chave)
Todos os tempos de execução locais expõem o fio OpenAI Chat Completions, então use Tipo: OpenAiCompatible com URL base do tempo de execução e nome do modelo servido; deixe a chave em branco.
Ollama
# instale de https://ollama.com, então:
ollama pull llama3.1:8b
- URL base:
http://localhost:11434/v1/· Modelo: o nome puxado (por exemplollama3.1:8b,qwen2.5-coder). - Sem chave de API. Capacidades padrão apenas para texto; ativar visão apenas para um modelo de visão.
LM Studio
- Inicie o servidor local (Desenvolvedor → Iniciar servidor).
- URL base:
http://localhost:1234/v1/· Modelo: id de modelo carregado. Sem chave de API.
vLLM / llama.cpp server / LocalAI
- Serve um ponto de extremidade compatível com OpenAI (cada um envia um).
- URL base: seu URL servido (por exemplo
http://localhost:8000/v1/) · Modelo: nome do modelo servido. Sem chave a menos que você coloque autenticação na frente.
Verificação
- Testar conexão no diálogo executa uma pequena conclusão de ping e relata sucesso + latência — ideal para confirmar um ponto de extremidade local.
- Automatizado: a suite E2E do aplicativo conduz cada característica de IA contra um servidor fake OpenAI-compatível em processo
por padrão, ou seu provedor real quando
AI_E2E_BASEURL(+ opcionalAI_E2E_API_KEY/AI_E2E_KIND/AI_E2E_MODEL) é definido. Veja Recursos de IA → Teste.
Alternância / rotação
- Provedor ativo de alternância: Configurações → IA → Definir ativo em outro cartão (ativar um desativa o resto).
- Girar uma chave: edite o provedor e forneça uma nova chave (deixe em branco para manter a armazenada).
- Remover: delete o cartão. Sem provedor ativo, recursos de IA se desabilitam e o resto do app funciona inalterado.