Skip to main content

本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。

模型插件通过两个实体描述自身:Provider 负责认证并列出所支持的模型,每个模型对应一个 AIModelEntity,用于声明其类型、特性和参数。

Note

下文所有实体均为 dify_plugin.entities.model 模块中的 Pydantic BaseModel 子类。

快速决策#

仅需认证:预定义模型

用户粘贴 API key 即可获得你的完整模型列表。设置 configurate_methods: [predefined-model],并在 YAML 中定义每个模型的 AIModelEntity。

用户自备模型

用户自行配置模型名称和 base URL(OpenAI 兼容端点、自定义部署)。设置 configurate_methods: [customizable-model],详见 自定义模型。

混合

内置目录加上用户添加的自定义模型。同时使用两种 configurate_methods 取值。

完整示例

完整的端到端示例,详见 创建新模型供应商。

Provider#

providerstring#

供应商标识符,例如 openai。

labelobject#

供应商显示名称(i18n)。支持 en_US(英文)和 zh_Hans(中文)。

zh_Hansstring#

中文标签。若未设置,回退使用 en_US。

en_USstringrequired#

英文标签

descriptionobject#

供应商描述(i18n)。

zh_Hansstring#

中文描述。

en_USstringrequired#

英文描述。

icon_smallobject#

供应商小图标,存储在供应商实现目录下的 _assets 目录中。

zh_Hansstring#

中文图标。

en_USstringrequired#

英文图标。

icon_largeobject#

供应商大图标,存储在供应商实现目录下的 _assets 目录中。

zh_Hansstring#

中文图标。

en_USstringrequired#

英文图标。

backgroundstring#

背景颜色值,例如 #FFFFFF。若为空,则使用前端默认颜色。

helpobject#

帮助信息。

titleobject#

帮助标题(i18n)。

zh_Hansstring#

中文标题。

en_USstringrequired#

英文标题。

urlobject#

帮助链接(i18n)。

zh_Hansstring#

中文链接。

en_USstringrequired#

英文链接。

supported_model_typesarray[ModelType]required#

支持的模型类型。

configurate_methodsarray[ConfigurateMethod]required#

配置方法。

provider_credential_schemaProviderCredentialSchemarequired#

供应商凭据规范。

model_credential_schemaModelCredentialSchema#

模型凭据规范。

AIModelEntity#

modelstringrequired#

模型标识符,例如 gpt-3.5-turbo。

labelobject#

模型显示名称(i18n)。支持 en_US(英文)和 zh_Hans(中文)。

zh_Hansstring#

中文标签。

en_USstringrequired#

英文标签。

model_typeModelTyperequired#

模型类型。

featuresarray[ModelFeature]#

支持的特性。

model_propertiesobjectrequired#

模型属性。

modeLLMMode#

模式(模型类型 llm)。

context_sizeinteger#

上下文大小(模型类型 llm 和 text-embedding)。

max_chunksinteger#

最大分段数(模型类型 text-embedding 和 moderation)。

file_upload_limitinteger#

最大文件上传大小,单位为 MB(模型类型 speech2text)。

supported_file_extensionsstring#

支持的文件扩展名,例如 mp3,mp4(模型类型 speech2text)。

default_voicestring#

默认语音,取值为 alloy、echo、fable、onyx、nova、shimmer 之一(模型类型 tts)。

voicesarray#

可用语音(模型类型 tts)。

modestring#

语音模型。

namestring#

语音模型显示名称。

languagestring#

语音模型支持的语言。

word_limitinteger#

单次转换的字数限制,默认按段落分割(模型类型 tts)。

audio_typestring#

支持的音频文件扩展名,例如 mp3,wav(模型类型 tts)。

max_workersinteger#

文字转音频转换的并发任务数(模型类型 tts)。

max_characters_per_chunkinteger#

每个分段的最大字符数(模型类型 moderation)。

parameter_rulesarray[ParameterRule]#

模型调用参数的规则。

pricingPriceConfig#

价格信息。

deprecatedboolean#

模型是否已弃用。已弃用的模型不再出现在模型列表中,但已有配置仍可继续使用。默认为 False。

ModelType#

llmstring#

文本生成模型。

text-embeddingstring#

文本嵌入模型。

rerankstring#

重排序模型。

speech2textstring#

语音转文字。

ttsstring#

文字转语音。

moderationstring#

内容审核。

ConfigurateMethod#

predefined-modelstring#

预定义模型。用户只需配置一次统一的供应商凭据,即可使用该供应商下的所有预定义模型。

customizable-modelstring#

自定义模型。用户需要为每个模型添加凭据配置。

fetch-from-remotestring#

从远程获取。与 predefined-model 类似,只需统一的供应商凭据,但模型列表是使用这些凭据从供应商获取的。

ModelFeature#

agent-thoughtstring#

Agent 推理。通常 70B 以上的模型具备思维链能力。

visionstring#

视觉(图像理解)。

tool-callstring#

工具调用。

multi-tool-callstring#

多工具调用。

stream-tool-callstring#

流式工具调用。

FetchFrom#

predefined-modelstring#

预定义模型。

fetch-from-remotestring#

远程模型。

LLMMode#

completionstring#

文本续写。

chatstring#

对话。

ParameterRule#

namestringrequired#

模型调用中使用的实际参数名称。

use_templatestring#

使用的模板。

预定义了 5 个参数模板:

  • temperature
  • top_p
  • frequency_penalty
  • presence_penalty
  • max_tokens

在 use_template 中设置上述名称之一,即可继承 entities.defaults.PARAMETER_RULE_TEMPLATE 中的默认配置,此时只需提供 name 和 use_template。你设置的任何额外参数都会覆盖模板默认值。参见 openai/llm/gpt-3.5-turbo.yaml 以及 创建新模型供应商 中的示例。

labelobject#

标签(i18n)。

zh_Hansstring#

中文标签。

en_USstringrequired#

英文标签。

typestring#

参数类型。

intstring#

整数。

floatstring#

浮点数。

stringstring#

字符串。

booleanstring#

布尔值。

helpobject#

帮助信息(i18n)。

zh_Hansstring#

中文帮助文本。

en_USstringrequired#

英文帮助文本。

requiredboolean#

参数是否必填。默认为 False。

defaultint/float/string/boolean#

默认值。

minint/float#

最小值。仅适用于数值类型。

maxint/float#

最大值。仅适用于数值类型。

precisioninteger#

保留的小数位数。仅适用于数值类型。

optionsarray[string]#

下拉选项值。仅当 type 为 string 时适用。若未设置或为 null,则不限制取值。

PriceConfig#

inputfloat#

输入(提示词)单价。

outputfloat#

输出(返回内容)单价。

unitfloat#

价格单位。例如,若按每 1M token 计价,则单价对应的单位 token 数为 0.000001。

currencystring#

货币单位。

ProviderCredentialSchema#

credential_form_schemasarray[CredentialFormSchema]required#

凭据表单规范。

ModelCredentialSchema#

modelobjectrequired#

模型标识符。默认变量名为 model。

labelobjectrequired#

模型表单项的显示名称。

en_USstringrequired#

英文。

zh_Hansstring#

中文。

placeholderobjectrequired#

模型表单项的占位符文本。

en_USstringrequired#

英文。

zh_Hansstring#

中文。

credential_form_schemasarray[CredentialFormSchema]required#

凭据表单规范。

CredentialFormSchema#

variablestringrequired#

表单项变量名。

labelobjectrequired#

表单项标签。

en_USstringrequired#

英文。

zh_Hansstring#

中文。

typeFormTyperequired#

表单项类型。

requiredboolean#

表单项是否必填。

defaultstring#

默认值。

optionsarray[FormOption]#

下拉内容。仅适用于 select 和 radio 类型。

placeholderobject#

表单项占位符。仅适用于 text-input 类型。

en_USstringrequired#

英文。

zh_Hansstring#

中文。

max_lengthinteger#

最大输入长度。仅适用于 text-input 类型。0 表示无限制。

show_onarray[FormShowOnObject]#

仅当其他表单项的值满足给定条件时才显示此项。为空表示始终显示。

FormType#

text-inputstring#

文本输入组件。

secret-inputstring#

密码输入组件。

selectstring#

单选下拉框。

radiostring#

单选按钮组件。

switchstring#

开关组件。仅支持 true 和 false。

FormOption#

labelobjectrequired#

标签。

en_USstringrequired#

英文。

zh_Hansstring#

中文。

valuestringrequired#

下拉选项值。

show_onarray[FormShowOnObject]#

仅当其他表单项的值满足给定条件时才显示此选项。为空表示始终显示。

FormShowOnObject#

variablestringrequired#

其他表单项的变量名。

valuestringrequired#

其他表单项的变量值。

相关资源#