本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
插件可以反向调用 Dify 内部的 LLM 能力,涵盖平台内的所有模型类型和功能,例如 TTS 和 Rerank。若不熟悉反向调用的基础知识,请先阅读 反向调用 Dify 服务。
每次调用模型都需传入一个 ModelConfig 类型的参数。它的结构定义在 通用规范定义 中,并会因模型类型而略有差异。
例如,LLM 类型的模型还需要 completion_params 和 mode 参数。你可手动构建该结构,也可使用 model-selector 类型的参数或配置。
调用 LLM#
入口点#
接口#
如果你调用的模型不具备 tool_call 能力,这里传入的 tools 不会生效。
使用示例#
以下示例在 Tool 中调用 OpenAI 的 gpt-4o-mini 模型:
注意,代码会从 tool_parameters 中取出 query 参数。
最佳实践#
避免手动构建 LLMModelConfig,而应让用户在 UI 中选择想要的模型:在工具的参数列表中添加一个 model 参数即可。
由于 model 参数的 scope 为 llm,用户只能选择 llm 类型的模型。此时,前面的使用示例可改写为:
调用 Summary#
此接口使用当前工作空间内的系统模型来总结一段文本。
入口点#
接口#
text:要总结的文本。instruction:额外的指令,让你可控制摘要的风格。
调用 TextEmbedding#
入口点#
接口#
调用 Rerank#
入口点#
接口#
调用 TTS#
入口点#
接口#
tts 接口返回的 bytes 流是 mp3 音频字节流,每次迭代返回一个完整的音频片段。若需更深入的处理,请选择合适的音频库。
调用 Speech2Text#
入口点#
接口#
其中 file 是以 mp3 格式编码的音频文件。
调用 Moderation#
入口点#
接口#
返回值为 true 表示 text 中包含敏感内容。
相关资源#
- 反向调用 Dify 服务 - 了解反向调用的基本概念
- 反向调用应用 - 了解如何调用平台内的应用
- 反向调用工具 - 了解如何调用其他插件
- 模型插件开发指南 - 了解如何开发自定义模型插件
- 模型设计规则 - 了解模型插件的设计原则