跳至主要内容

仅插件模式

什么是仅插件模式?

插件专用模式是TaskWeaver的一种受限模式,仅允许您使用插件。 与完整模式相比,插件专用模式具有以下限制:

  1. 生成的代码仅包含对插件的调用。 例如,以下代码仅调用了ascii_render插件,不包含任何"自由形式"的代码。

    r1=ascii_render(**{"text":"Hello"})
    r1
  2. 只有在yaml文件中带有plugin_only: true的插件才会被加载。 例如,以下插件将在仅插件模式下被加载:

    name: ascii_render
    plugin_only: true
    ...

    如果未指定此字段,默认值为false。 对于仅插件模式下的插件,参数类型只能是strintbooleanfloat。 不允许使用其他类型如DataFrame。 本质上,我们认为这些插件只产生可以被LLM直接使用的"类文本"输出。

为了支持纯插件模式,我们开发了一个名为PluginOrchestrator的新角色。 要启用纯插件模式,您可以在项目配置文件taskweaver_config.json中添加配置"session.roles": ["planner", "code_interpreter_plugin_only"]

info

虽然纯插件模式功能受限,但在某些场景下仍然非常实用。 例如,您可能希望仅使用TaskWeaver来生成调用特定插件的代码, 出于安全考虑,您希望直接获取插件响应,而无需生成任何其他代码。

纯插件模式是如何实现的?

纯插件模式是基于大语言模型的函数调用模式实现的。在该模式下,大语言模型被训练用于生成包含函数名称和参数的JSON对象。例如,以下JSON对象就是由大语言模型生成的:

{
"function": "ascii_render",
"arguments": {
"text": "Hello"
}
}

根据这个JSON对象,我们组装调用插件的代码:

r1=ascii_render(**{"text":"Hello"})
r1

然后,我们执行代码并获取来自插件的响应。 因此,在仅插件模式下,该代码并非由大语言模型直接生成。

哪些模型支持仅插件模式?

目前,仅插件模式仅由

其他与OpenAI模型兼容的模型很可能也会支持仅插件模式。