For developers deploying Dify locally, if you want to implement extension capabilities without rewriting an API service, you can use code extensions. This allows you to extend or enhance the functionality of the program in code form (i.e., plugin capability) without disrupting the original code logic of Dify. It follows certain interfaces or specifications to achieve compatibility and plug-and-play capability with the main program. Currently, Dify offers two types of code extensions:Documentation Index
Fetch the complete documentation index at: https://dify-6c0370d8-fix-language-redirection.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
- Adding a new type of external data tool External Data Tool
- Extending sensitive content moderation strategies Moderation
Frontend Component Specification Definition
The frontend styles of code extensions are defined throughschema.json:
- label: Custom type name, supporting system language switching
- form_schema: List of form contents
- type: Component type
- select: Dropdown options
- text-input: Text
- paragraph: Paragraph
- label: Component name, supporting system language switching
- variable: Variable name
- required: Whether it is required
- default: Default value
- placeholder: Component hint content
- options: Exclusive property for the “select” component, defining the dropdown contents
- label: Dropdown name, supporting system language switching
- value: Dropdown option value
- max_length: Exclusive property for the “text-input” component, maximum length
- type: Component type