Model

反向调用 Model 指的是插件能够反向调用 Dify 内 LLM 的能力,包括平台内的所有模型类型与功能,例如 TTS、Rerank 等。

不过请注意,调用模型需要传入一个 ModelConfig 类型的参数,它的结构可以参考 通用规范定义,并且对于不同类型的模型,该结构会存在细微的差别。

例如对于 LLM 类型的模型,还需要包含 completion_paramsmode 参数,你可以手动构建该结构,或者使用 model-selector 类型的参数或配置。

调用 LLM

入口

    self.session.model.llm

端点

    def invoke(
        self,
        model_config: LLMModelConfig,
        prompt_messages: list[PromptMessage],
        tools: list[PromptMessageTool] | None = None,
        stop: list[str] | None = None,
        stream: bool = True,
    ) -> Generator[LLMResultChunk, None, None] | LLMResult:
        pass

请注意,如果你调用的模型不具备 tool_call 的能力,那么此处传入的 tools 将不会生效。

用例

如果想在 Tool 中调用 OpenAIgpt-4o-mini 模型,请参考以下示例代码:

可以留意到代码中传入了 tool_parameters 中的 query 参数。

最佳实践

并不建议手动来构建 LLMModelConfig,而是允许用户可以在 UI 上选择自己想使用的模型,在这种情况下可以修改一下工具的参数列表,按照如下配置,添加一个 model 参数:

请注意在该例子中指定了 modelscopellm,那么此时用户就只能选择 llm 类型的参数,从而可以将上述用例的代码改成以下代码:

调用 Summary

你可以请求该端点来总结一段文本,它会使用你当前 workspace 内的系统模型来总结文本。

入口

端点

  • text 为需要被总结的文本。

  • instruction 为你想要额外添加的指令,它可以让你风格化地总结文本。

调用 TextEmbedding

入口

端点

调用 Rerank

入口

端点

调用 TTS

入口

端点

请注意 tts 端点返回的 bytes 流是一个 mp3 音频字节流,每一轮迭代返回的都是一个完整的音频。如果你想做更深入的处理任务,请选择合适的库进行。

调用 Speech2Text

入口

端点

其中 file 是一个 mp3 格式编码的音频文件。

调用 Moderation

入口

端点

若该端点返回 true 则表示 text 中包含敏感内容。

Last updated