通用规范定义
本文将简要介绍插件开发中常见的结构。
路径规范
在 Manifest 或任意 yaml 文件中填写文件路径时,根据不同的类型的文件,遵循下面两条规范:
如果目标文件是一个图片或视频等多媒体文件时,例如填写插件的
icon
,你应该将这些文件放置于插件根目录下的_assets
文件夹中。如果目标文件是一个普通文本文件,如
.py
.yaml
等代码文件,你应该填写该文件在插件项目内的绝对路径。
通用结构
在定义插件时,有一些数据结构是可以在工具、模型、Endpoint 之间共用的,这里定义了这些共用结构。
I18nObject
I18nObject
是一个符合 IETF BCP 47 标准的国际化结构,目前支持的四种语言为
en_US
zh_Hans
ja_Jp
pt_BR
ProviderConfig
ProviderConfig
为一个通用的供应商表单结构,适用于 Tool
与Endpoint
name
(string):表单项名称label
(I18nObject, requierd):遵循 IETF BCP 47type
(provider_config_type, requierd):表单类型scope
(provider_config_scope):可选项范围,根据type
变动required
(bool):不能为空default
(any):默认值,仅支持基础类型float
int
string
options
(list[provider_config_option]):可选项,仅当 type 为select
时使用helper
(object):帮助文档链接的 label,遵循 IETF BCP 47url
(string):帮助文档链接placeholder
(object):遵循 IETF BCP 47
ProviderConfigOption(object)
value
(string, required):值label
(object, required):遵循 IETF BCP 47
ProviderConfigType(string)
secret-input
(string):配置信息将被加密text-input
(string):普通文本select
(string):下拉框boolean
(bool):开关model-selector
(object):模型配置信息,包含供应商名称、模型名称、模型参数等app-selector
(object):app idtool-selector
(object):工具配置信息,包含工具供应商、名称、参数等dataset-selector
(string):TBD
ProviderConfigScope(string)
当
type
为model-selector
时all
llm
text-embedding
rerank
tts
speech2text
moderation
vision
当
type
为app-selector
时all
chat
workflow
completion
当
type
为tool-selector
时all
plugin
api
workflow
ModelConfig
provider
(string): 包含 plugin_id 的模型供应商名称,形如langgenius/openai/openai
。model
(string): 具体的模型名称。model_type
(enum): 模型类型的枚举,可以参考该文档。
NodeResponse
inputs
(dict): 最终输入到节点中的变量。outputs
(dict): 节点的输出结果。process_data
(dict): 节点运行过程中产生的数据。
ToolSelector
provider_id
(string): 工具供应商名称tool_name
(string): 工具名称tool_description
(string): 工具描述tool_configuration
(dict[str, Any]): 工具的配置信息tool_parameters
(dict[str, dict]): 需要 LLM 推理的参数name
(string): 参数名称type
(string): 参数类型required
(bool): 是否必填description
(string): 参数描述default
(any): 默认options
(list[string]): 可选项
Last updated