ClouisleClouisle

Model Providers Reference

Look up provider identifiers, model types, credentials, default endpoints, embedding adapters, and endpoint security policy

Clouisle unifies multimodal model access through a provider abstraction layer covering chat, embedding, rerank, speech (TTS/STT), image/video generation, and decision models.

Provider Identifier Enumeration

The system defines 23 model provider identifiers (ModelProvider). The table lists each provider's backend default endpoint; when no custom base_url is set, the runtime resolves request addresses from these defaults.

Provider Identifier (provider)Display NameDefault API Base URL
openaiOpenAIhttps://api.openai.com/v1
openai_responsesOpenAI Responseshttps://api.openai.com/v1
anthropicAnthropichttps://api.anthropic.com
googleGoogle AIhttps://generativelanguage.googleapis.com/v1beta
azure_openaiAzure OpenAINone (endpoint must be configured)
deepseekDeepSeekhttps://api.deepseek.com
moonshotMoonshothttps://api.moonshot.cn/v1
zhipuZhipu AIhttps://open.bigmodel.cn/api/paas/v4
qwenQwenhttps://dashscope.aliyuncs.com/compatible-mode/v1
baichuanBaichuanhttps://api.baichuan-ai.com/v1
minimaxMiniMaxhttps://api.minimax.chat/v1
volcengineVolcenginehttps://ark.cn-beijing.volces.com/api/v3
siliconflowSiliconFlowhttps://api.siliconflow.cn/v1
xaixAI (Grok)https://api.x.ai/v1
ollamaOllamahttp://localhost:11434
runwayRunwayhttps://api.dev.runwayml.com
pikaPikahttps://api.pika.art/v1
lumaLuma AIhttps://api.lumalabs.ai/dream-machine/v1
klingKlinghttps://api.klingai.com
stabilityStability AIhttps://api.stability.ai
midjourneyMidjourneyNone (proxy required)
typesafeTypeSafe AIhttps://api.typesafe.ai/v1
customOpenAI CompatibleNone (supplied by the integrator)

For volcengine, some model types have dedicated default endpoints that take precedence over the general endpoint above:

  • TTS: https://openspeech.bytedance.com/api/v3/tts/unidirectional/sse
  • Audio Generation: https://openspeech.bytedance.com/api/v3/tts/create

Resolution order is: explicit base_url > provider + model-type endpoint > provider general endpoint. typesafe + decision also registers a dedicated endpoint (identical to the general one).


Model Type Classification (ModelType)

model_type describes a model's capability class and is independent of the provider; a given provider typically supports only some of these types. The system currently defines 9 model types:

Model Type (model_type)Description
chatChat and text completion LLMs (streaming and function calling supported)
embeddingText embedding models (used for knowledge base RAG and memory retrieval)
rerankRerank models that rescore initially retrieved text chunks
ttsText-to-Speech
sttSpeech-to-Text
audio_generationPrompt-to-audio generation
text_to_imageText-to-image generation
text_to_videoText-to-video generation
decisionTyped decision models (choice / score / yes-no) that generate no prose

Decision Models and TypeSafe AI

The decision type is a non-generative model: it evaluates a single state against typed questions and returns typed answers with probability distributions, producing no text at all. It is used exclusively by the workflow Decision node.

  • Only provider: the decision type currently accepts only the typesafe provider. Creating or updating a decision model whose provider is not typesafe returns a validation error (model_type_not_supported).
  • Default endpoint: https://api.typesafe.ai/v1. Runtime requests go to {base_url}/v1/systemone; the adapter guarantees the path includes a /v1 segment, so configuring base_url as either https://api.typesafe.ai (no /v1) or https://api.typesafe.ai/v1 both resolve to https://api.typesafe.ai/v1/systemone.
  • Authentication: the API key is sent as Authorization: Bearer <key>.
  • Model ID: for example jev-1.13.0, or jev-latest to follow the provider's current release. Model discovery (POST /api/v1/admin/models/discover, requires admin:model:create) uses the /v1/models path for TypeSafe and automatically avoids duplicating a version segment when base_url already ends in /v1.
  • Endpoint allowlist: https://api.typesafe.ai is included in the default Model Endpoint Allowlist; when routing through a self-hosted gateway, register that gateway's origin under Site Settings > Security first.

Directionality of the decision ↔ typesafe constraint

Validation is one-directional (type → provider): the decision type must be provided by typesafe. The reverse does not hold — the typesafe provider is not constrained to decision at configuration time, but configuring it as another type (such as chat) fails at runtime for lack of an adapter. Use TypeSafe for decision only.


Embedding Provider Support

model_type: embedding is not valid for every provider identifier. Model creation/update validates this (EMBEDDING_SUPPORTED_PROVIDERS), and the backend embedding adapter then dispatches providers across two paths:

Adapter PathCovered ProvidersBehavior
OpenAICompatibleEmbeddingAdapteropenai, openai_responses, deepseek, moonshot, zhipu, qwen, baichuan, minimax, volcengine, siliconflow, xai, ollama, customCalls the OpenAI-compatible /embeddings endpoint directly and captures upstream usage
FallbackEmbeddingAdaptergoogle, azure_openaiGenerates vectors via LangChain Embeddings; usage is empty
Unsupportedanthropic, typesafe, runway, pika, luma, kling, stability, midjourney, etc.Not in EMBEDDING_SUPPORTED_PROVIDERS, so creation is rejected up front; anthropic raises Unsupported provider for embedding at runtime even if validation is bypassed

For the detailed embedding mechanics (fallback strategy, token metering, dynamic dimensions, and Qdrant collection partitioning), see Embedding Adapters & Vector Dimensions.


Model Definition Fields

FieldTypeRequiredDefaultDescription & Validation
namestringYesNoneDisplay name, 1-100 characters
providerenumYesNoneProvider identifier (the 23 enum values above)
model_idstringYesNoneUpstream model ID, 1-100 characters
model_typeenumYesNoneModel type (the 9 types above)
provider_display_namestring/nullNonullProvider name shown to end users
base_urlstring/nullNonullCustom API URL (at most 512 characters), constrained by the endpoint allowlist policy
api_keystring/nullNonullAccess key (may be empty for local providers such as Ollama); encrypted server-side
context_lengthinteger/nullNonullMaximum context length (must be >= 1)
max_output_tokensinteger/nullNonullMaximum output tokens (must be >= 1)
input_pricedecimal/nullNonullPrice per million input tokens (non-negative, up to 6 decimals)
output_pricedecimal/nullNonullPrice per million output tokens (non-negative, up to 6 decimals)
default_paramsobject/nullNonullDefault inference parameters (such as temperature, top_p)
capabilitiesobject/nullNonullCapability flags: vision, function_calling, streaming, etc.
is_enabledbooleanNotrueWhether the model is globally enabled
is_defaultbooleanNofalseWhether it is the default model of its type
sort_orderintegerNo0Sort weight, ascending

Model Endpoint Security & Connectivity Testing

Endpoint Allowlist Policy (model_endpoint_allowlist)

All outbound requests to model providers are strictly validated against the system endpoint allowlist:

  • The system ships with 20 pre-configured official provider Origins (including https://api.typesafe.ai), such as https://api.openai.com, https://api.deepseek.com, https://api.anthropic.com, and https://generativelanguage.googleapis.com.
  • The allowlist holds at most 200 entries (MODEL_ENDPOINT_ALLOWLIST_MAX_ENTRIES).
  • If an administrator configures a custom private Base URL (for example self-hosted vLLM or a private Ollama node), its full Origin (scheme + host + port) must be explicitly registered under Site Settings > Model Endpoint Allowlist.
  • Validation ignores request paths, query parameters, and credentials, but non-standard ports (such as :11434) are matched strictly.

Connectivity Test Endpoint

When adding or saving a model in the admin console, call POST /api/v1/admin/models/{model_id}/test to verify connectivity:

  • The test performs a lightweight upstream call using the credentials the administrator submits at that moment; credentials are not saved automatically during the test.
  • For decision models, the test performs a minimal decision evaluation instead of a chat request.
  • The response contains:
    • success (bool): whether connectivity succeeded
    • message (string): success information or upstream error detail
    • latency_ms (float/null): network and response round-trip time in milliseconds

How is this guide?

On this page