模型插件通过两个实体描述自身:Provider 负责认证并列出所支持的模型,每个模型对应一个 AIModelEntity,用于声明其类型、特性和参数。
下文所有实体均为 dify_plugin.entities.model 模块中的 Pydantic BaseModel 子类。
快速决策
仅需认证:预定义模型
用户粘贴 API key 即可获得你的完整模型列表。设置 configurate_methods: [predefined-model],并在 YAML 中定义每个模型的 AIModelEntity。
用户自备模型
用户自行配置模型名称和 base URL(OpenAI 兼容端点、自定义部署)。设置 configurate_methods: [customizable-model],详见 自定义模型。 混合
内置目录加上用户添加的自定义模型。同时使用两种 configurate_methods 取值。
Provider
供应商显示名称(i18n)。支持 en_US(英文)和 zh_Hans(中文)。
供应商小图标,存储在供应商实现目录下的 _assets 目录中。
供应商大图标,存储在供应商实现目录下的 _assets 目录中。
背景颜色值,例如 #FFFFFF。若为空,则使用前端默认颜色。
array[ConfigurateMethod]
必填
配置方法。
ProviderCredentialSchema
必填
供应商凭据规范。
AIModelEntity
模型显示名称(i18n)。支持 en_US(英文)和 zh_Hans(中文)。
模型属性。上下文大小(模型类型 llm 和 text-embedding)。
最大分段数(模型类型 text-embedding 和 moderation)。
最大文件上传大小,单位为 MB(模型类型 speech2text)。
支持的文件扩展名,例如 mp3,mp4(模型类型 speech2text)。
默认语音,取值为 alloy、echo、fable、onyx、nova、shimmer 之一(模型类型 tts)。
单次转换的字数限制,默认按段落分割(模型类型 tts)。
支持的音频文件扩展名,例如 mp3,wav(模型类型 tts)。
每个分段的最大字符数(模型类型 moderation)。
模型是否已弃用。已弃用的模型不再出现在模型列表中,但已有配置仍可继续使用。默认为 False。
ModelType
ConfigurateMethod
预定义模型。用户只需配置一次统一的供应商凭据,即可使用该供应商下的所有预定义模型。
从远程获取。与 predefined-model 类似,只需统一的供应商凭据,但模型列表是使用这些凭据从供应商获取的。
ModelFeature
Agent 推理。通常 70B 以上的模型具备思维链能力。
FetchFrom
LLMMode
ParameterRule
预定义了 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 以及 创建新模型供应商 中的示例。
下拉选项值。仅当 type 为 string 时适用。若未设置或为 null,则不限制取值。
PriceConfig
价格单位。例如,若按每 1M token 计价,则单价对应的单位 token 数为 0.000001。
ProviderCredentialSchema
array[CredentialFormSchema]
必填
凭据表单规范。
ModelCredentialSchema
array[CredentialFormSchema]
必填
凭据表单规范。
下拉内容。仅适用于 select 和 radio 类型。
表单项占位符。仅适用于 text-input 类型。
最大输入长度。仅适用于 text-input 类型。0 表示无限制。
仅当其他表单项的值满足给定条件时才显示此项。为空表示始终显示。
仅当其他表单项的值满足给定条件时才显示此选项。为空表示始终显示。
相关资源