Model Designing Rules

  • Model provider rules are based on the Provider entity.

  • Model rules are based on the AIModelEntity entity.

All entities below are based on Pydantic BaseModel and can be found in the entities module.

Provider

  • provider (string): Provider identifier, e.g., openai

  • label (object): Provider display name, i18n, supports en_US (English) and zh_Hans (Chinese)

    • zh_Hans (string) [optional]: Chinese label, defaults to en_US if not set

    • en_US (string): English label

  • description (object) [optional]: Provider description, i18n

    • zh_Hans (string) [optional]: Chinese description

    • en_US (string): English description

  • icon_small (string) [optional]: Provider small icon, stored in _assets directory

    • zh_Hans (string) [optional]: Chinese icon

    • en_US (string): English icon

  • icon_large (string) [optional]: Provider large icon, stored in _assets directory

    • zh_Hans (string) [optional]: Chinese icon

    • en_US (string): English icon

  • background (string) [optional]: Background color value, e.g., #FFFFFF, uses frontend default if empty

  • help (object) [optional]: Help information

    • title (object): Help title, i18n

      • zh_Hans (string) [optional]: Chinese title

      • en_US (string): English title

    • url (object): Help link, i18n

      • zh_Hans (string) [optional]: Chinese link

      • en_US (string): English link

  • supported_model_types (array[ModelType]): Supported model types

  • configurate_methods (array[ConfigurateMethod]): Configuration methods

  • provider_credential_schema ([ProviderCredentialSchema]): Provider credential specifications

  • model_credential_schema ([ModelCredentialSchema]): Model credential specifications

AIModelEntity

  • model (string): Model identifier, e.g., gpt-3.5-turbo

  • label (object) [optional]: Model display name, i18n

    • zh_Hans (string) [optional]: Chinese label

    • en_US (string): English label

  • model_type ([ModelType]): Model type

  • features (array[[ModelFeature]]) [optional]: List of supported features

  • model_properties (object): Model properties

    • mode ([LLMMode]): Mode (available for llm model type)

    • context_size (int): Context size (available for llm and text-embedding types)

    • max_chunks (int): Maximum number of chunks (available for text-embedding and moderation types)

    • file_upload_limit (int): Maximum file upload limit in MB (available for speech2text type)

    • supported_file_extensions (string): Supported file extensions, e.g., mp3,mp4 (available for speech2text type)

    • default_voice (string): Default voice, must be one of: alloy,echo,fable,onyx,nova,shimmer (available for tts type)

    • voices (list): Available voice list

    • mode (string): Voice model (available for tts type)

    • name (string): Voice model display name (available for tts type)

    • language (string): Voice model supported languages (available for tts type)

    • word_limit (int): Single conversion word limit, defaults to paragraph division (available for tts type)

    • audio_type (string): Supported audio file extensions, e.g., mp3,wav (available for tts type)

    • max_workers (int): Maximum concurrent tasks for text-to-audio conversion (available for tts type)

    • max_characters_per_chunk (int): Maximum characters per chunk (available for moderation type)

  • parameter_rules (array[ParameterRule]) [optional]: Model call parameter rules

  • pricing ([PriceConfig]) [optional]: Pricing information

  • deprecated (bool): Whether deprecated. If true, model won't show in list but configured ones can still be used. Default: False

ModelType

  • llm: Text generation model

  • text-embedding: Text embedding model

  • rerank: Rerank model

  • speech2text: Speech to text

  • tts: Text to speech

  • moderation: Moderation

ConfigurateMethod

  • predefined-model: Predefined models Users only need to configure unified provider credentials to use predefined models under the provider.

  • customizable-model: Custom models Users need to add credential configurations for each model.

  • fetch-from-remote: Fetch from remote Similar to predefined-model configuration, only requires unified provider credentials, models are fetched from provider using credential information.

ModelFeature

  • agent-thought: Agent reasoning, generally models over 70B have chain-of-thought capability

  • vision: Visual capability, i.e., image understanding

  • tool-call: Tool calling

  • multi-tool-call: Multiple tool calling

  • stream-tool-call: Streaming tool calling

FetchFrom

  • predefined-model: Predefined models

  • fetch-from-remote: Remote models

LLMMode

  • completion: Text completion

  • chat: Conversation

ParameterRule

  • name (string): Actual parameter name for model calls

  • use_template (string) [optional]: Template usage Five preset variable content configuration templates:

    • temperature

    • top_p

    • frequency_penalty

    • presence_penalty

    • max_tokens Can directly set template variable name in use_template, will use default config from entities.defaults.PARAMETER_RULE_TEMPLATE

  • label (object) [optional]: Labels, i18n

    • zh_Hans (string) [optional]: Chinese label

    • en_US (string): English label

  • type (string) [optional]: Parameter type

    • int: Integer

    • float: Float

    • string: String

    • boolean: Boolean

  • help (string) [optional]: Help information

    • zh_Hans (string) [optional]: Chinese help info

    • en_US (string): English help info

  • required (bool): Whether required, default False

  • default (int/float/string/bool) [optional]: Default value

  • min (int/float) [optional]: Minimum value, only for numeric types

  • max (int/float) [optional]: Maximum value, only for numeric types

  • precision (int) [optional]: Precision, decimal places, only for numeric types

  • options (array[string]) [optional]: Dropdown options, only for string type

PriceConfig

  • input (float): Input price, i.e., Prompt price

  • output (float): Output price, i.e., Return content price

  • unit (float): Price unit, e.g., if priced per 1M tokens, unit token number is 0.000001

  • currency (string): Currency unit

ProviderCredentialSchema

  • credential_form_schemas (array[CredentialFormSchema]): Credential form specifications

ModelCredentialSchema

  • model (object): Model identifier, default variable name is 'model'

  • label (object): Model form item display name

    • en_US (string): English

    • zh_Hans (string) [optional]: Chinese

  • placeholder (object): Model prompt content

    • en_US (string): English

    • zh_Hans (string) [optional]: Chinese

  • credential_form_schemas (array[CredentialFormSchema]): Credential form specifications

CredentialFormSchema

  • variable (string): Form item variable name

  • label (object): Form item label

    • en_US (string): English

    • zh_Hans (string) [optional]: Chinese

  • type ([FormType]): Form item type

  • required (bool): Whether required

  • default (string): Default value

  • options (array[FormOption]): Form item options for select or radio types

  • placeholder (object): Form item placeholder for text-input type

    • en_US (string): English

    • zh_Hans (string) [optional]: Chinese

  • max_length (int): Maximum input length for text-input type, 0 means no limit

  • show_on (array[FormShowOnObject]): Show when other form items meet conditions, always show if empty

FormType

  • text-input: Text input component

  • secret-input: Password input component

  • select: Single-select dropdown

  • radio: Radio component

  • switch: Switch component, only supports true and false

FormOption

  • label (object): Label

    • en_US (string): English

    • zh_Hans (string) [optional]: Chinese

  • value (string): Dropdown option value

  • show_on (array[FormShowOnObject]): Show when other form items meet conditions, always show if empty

FormShowOnObject

  • variable (string): Other form item variable name

  • value (string): Other form item variable value

Last updated