module
。
当前支持模型类型如下:
llm
文本生成模型text_embedding
文本 Embedding 模型rerank
Rerank 模型speech2text
语音转文字tts
文字转语音moderation
审查Anthropic
为例,Anthropic
仅支持 LLM,因此在 model_providers.anthropic
创建一个 llm
为名称的 module
。
对于预定义的模型,我们首先需要在 llm
module
下创建以模型名为文件名称的 YAML 文件,如:claude-2.1.yaml
。
model_providers
目录下其他供应商对应模型类型目录下的 YAML 配置信息,完整的 YAML 规则见:Schema1。
llm
module
下创建一个同名的 python 文件 llm.py
来编写代码实现。
在 llm.py
中创建一个 Anthropic LLM 类,我们取名为 AnthropicLargeLanguageModel
(随意),继承 __base.large_language_model.LargeLanguageModel
基类,实现以下几个方法:
yield
关键字的函数识别为生成器函数,返回的数据类型固定为 Generator
,因此同步和流式返回需要分别实现,就像下面这样(注意下面例子使用了简化参数,实际实现时需要按照上面的参数列表进行实现):
InvokeError
类型,方便 Dify 针对不同错误做不同后续处理。
Runtime Errors:
InvokeConnectionError
调用连接错误InvokeServerUnavailableError
调用服务方不可用InvokeRateLimitError
调用达到限额InvokeAuthorizationError
调用鉴权失败InvokeBadRequestError
调用传参有误provider
(string) 供应商标识,如:openai
label
(object) 供应商展示名称,i18n,可设置 en_US
英文、zh_Hans
中文两种语言
zh_Hans
(string) [optional] 中文标签名,zh_Hans
不设置将默认使用 en_US
。en_US
(string) 英文标签名description
(object) [optional] 供应商描述,i18n
zh_Hans
(string) [optional] 中文描述en_US
(string) 英文描述icon_small
(string) [optional] 供应商小 ICON,存储在对应供应商实现目录下的 _assets
目录,中英文策略同 label
zh_Hans
(string) [optional] 中文 ICONen_US
(string) 英文 ICONicon_large
(string) [optional] 供应商大 ICON,存储在对应供应商实现目录下的 _assets 目录,中英文策略同 label
zh_Hans
(string) [optional] 中文 ICONen_US
(string) 英文 ICONbackground
(string) [optional] 背景颜色色值,例:#FFFFFF,为空则展示前端默认色值。help
(object) [optional] 帮助信息
title
(object) 帮助标题,i18n
zh_Hans
(string) [optional] 中文标题en_US
(string) 英文标题url
(object) 帮助链接,i18n
zh_Hans
(string) [optional] 中文链接en_US
(string) 英文链接supported_model_types
(array[ModelType]) 支持的模型类型configurate_methods
(array[ConfigurateMethod]) 配置方式provider_credential_schema
(ProviderCredentialSchema) 供应商凭据规格model_credential_schema
(ModelCredentialSchema) 模型凭据规格