Dify
English
English
  • Getting Started
    • Welcome to Dify
      • Features and Specifications
      • List of Model Providers
    • Dify Community
      • Deploy with Docker Compose
      • Start with Local Source Code
      • Deploy with aaPanel
      • Start Frontend Docker Container Separately
      • Environment Variables Explanation
      • FAQs
    • Dify Cloud
    • Dify Premium on AWS
    • Dify for Education
  • Guides
    • Model
      • Add New Provider
      • Predefined Model Integration
      • Custom Model Integration
      • Interfaces
      • Schema
      • Load Balancing
    • Application Orchestration
      • Create Application
      • Chatbot Application
        • Multiple Model Debugging
      • Agent
      • Application Toolkits
        • Moderation Tool
    • Workflow
      • Key Concepts
      • Variables
      • Node Description
        • Start
        • End
        • Answer
        • LLM
        • Knowledge Retrieval
        • Question Classifier
        • Conditional Branch IF/ELSE
        • Code Execution
        • Template
        • Doc Extractor
        • List Operator
        • Variable Aggregator
        • Variable Assigner
        • Iteration
        • Parameter Extraction
        • HTTP Request
        • Agent
        • Tools
        • Loop
      • Shortcut Key
      • Orchestrate Node
      • File Upload
      • Error Handling
        • Predefined Error Handling Logic
        • Error Type
      • Additional Features
      • Debug and Preview
        • Preview and Run
        • Step Run
        • Conversation/Run Logs
        • Checklist
        • Run History
      • Application Publishing
      • Structured Outputs
      • Bulletin: Image Upload Replaced by File Upload
    • Knowledge
      • Create Knowledge
        • 1. Import Text Data
          • 1.1 Import Data from Notion
          • 1.2 Import Data from Website
        • 2. Choose a Chunk Mode
        • 3. Select the Indexing Method and Retrieval Setting
      • Manage Knowledge
        • Maintain Documents
        • Maintain Knowledge via API
      • Metadata
      • Integrate Knowledge Base within Application
      • Retrieval Test / Citation and Attributions
      • Knowledge Request Rate Limit
      • Connect to an External Knowledge Base
      • External Knowledge API
    • Tools
      • Quick Tool Integration
      • Advanced Tool Integration
      • Tool Configuration
        • Google
        • Bing
        • SearchApi
        • StableDiffusion
        • Dall-e
        • Perplexity Search
        • AlphaVantage
        • Youtube
        • SearXNG
        • Serper
        • SiliconFlow (Flux AI Supported)
        • ComfyUI
    • Publishing
      • Publish as a Single-page Web App
        • Web App Settings
        • Text Generator Application
        • Conversation Application
      • Embedding In Websites
      • Developing with APIs
      • Re-develop Based on Frontend Templates
    • Annotation
      • Logs and Annotation
      • Annotation Reply
    • Monitoring
      • Data Analysis
      • Integrate External Ops Tools
        • Integrate LangSmith
        • Integrate Langfuse
        • Integrate Opik
    • Extension
      • API-Based Extension
        • External Data Tool
        • Deploy API Tools with Cloudflare Workers
        • Moderation
      • Code-Based Extension
        • External Data Tool
        • Moderation
    • Collaboration
      • Discover
      • Invite and Manage Members
    • Management
      • App Management
      • Team Members Management
      • Personal Account Management
      • Subscription Management
      • Version Control
  • Workshop
    • Basic
      • How to Build an AI Image Generation App
    • Intermediate
      • Build An Article Reader Using File Upload
      • Building a Smart Customer Service Bot Using a Knowledge Base
      • Generating analysis of Twitter account using Chatflow Agent
  • Community
    • Seek Support
    • Become a Contributor
    • Contributing to Dify Documentation
  • Plugins
    • Introduction
    • Quick Start
      • Install and Use Plugins
      • Develop Plugins
        • Initialize Development Tools
        • Tool Plugin
        • Model Plugin
          • Create Model Providers
          • Integrate the Predefined Model
          • Integrate the Customizable Model
        • Agent Strategy Plugin
        • Extension Plugin
        • Bundle
      • Debug Plugin
    • Manage Plugins
    • Schema Specification
      • Manifest
      • Endpoint
      • Tool
      • Agent
      • Model
        • Model Designing Rules
        • Model Schema
      • General Specifications
      • Persistent Storage
      • Reverse Invocation of the Dify Service
        • App
        • Model
        • Tool
        • Node
    • Best Practice
      • Develop a Slack Bot Plugin
      • Dify MCP Plugin Guide: Connect Zapier and Automate Email Delivery with Ease
    • Publish Plugins
      • Publish Plugins Automatically
      • Publish to Dify Marketplace
        • Plugin Developer Guidelines
        • Plugin Privacy Protection Guidelines
      • Publish to Your Personal GitHub Repository
      • Package the Plugin File and Publish it
      • Signing Plugins for Third-Party Signature Verification
    • FAQ
  • Development
    • Backend
      • DifySandbox
        • Contribution Guide
    • Models Integration
      • Integrate Open Source Models from Hugging Face
      • Integrate Open Source Models from Replicate
      • Integrate Local Models Deployed by Xinference
      • Integrate Local Models Deployed by OpenLLM
      • Integrate Local Models Deployed by LocalAI
      • Integrate Local Models Deployed by Ollama
      • Integrate Models on LiteLLM Proxy
      • Integrating with GPUStack for Local Model Deployment
      • Integrating AWS Bedrock Models (DeepSeek)
    • Migration
      • Migrating Community Edition to v1.0.0
  • Learn More
    • Use Cases
      • DeepSeek & Dify Integration Guide: Building AI Applications with Multi-Turn Reasoning
      • Private Deployment of Ollama + DeepSeek + Dify: Build Your Own AI Assistant
      • Build a Notion AI Assistant
      • Create a MidJourney Prompt Bot with Dify
      • Create an AI Chatbot with Business Data in Minutes
      • Integrating Dify Chatbot into Your Wix Website
      • How to connect with AWS Bedrock Knowledge Base?
      • Building the Dify Scheduler
      • Building an AI Thesis Slack Bot on Dify
    • Extended Reading
      • What is LLMOps?
      • Retrieval-Augmented Generation (RAG)
        • Hybrid Search
        • Re-ranking
        • Retrieval Modes
      • How to Use JSON Schema Output in Dify?
    • FAQ
      • Self-Host
      • LLM Configuration and Usage
      • Plugins
  • Policies
    • Open Source License
    • User Agreement
      • Terms of Service
      • Privacy Policy
      • Get Compliance Report
  • Features
    • Workflow
Powered by GitBook
On this page
  • Provider
  • AIModelEntity
  • ModelType
  • ConfigurateMethod
  • ModelFeature
  • FetchFrom
  • LLMMode
  • ParameterRule
  • PriceConfig
  • ProviderCredentialSchema
  • ModelCredentialSchema
  • CredentialFormSchema
  1. Plugins
  2. Schema Specification
  3. Model

Model Designing Rules

PreviousModelNextModel Schema

Last updated 4 months ago

  • Model provider rules are based on the entity.

  • Model rules are based on the 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

Provider
AIModelEntity