仅插件模式
什么是仅插件模式?
插件专用模式是TaskWeaver的一种受限模式,仅允许您使用插件。 与完整模式相比,插件专用模式具有以下限制:
-
生成的代码仅包含对插件的调用。 例如,以下代码仅调用了
ascii_render插件,不包含任何"自由形式"的代码。r1=ascii_render(**{"text":"Hello"})
r1 -
只有在yaml文件中带有
plugin_only: true的插件才会被加载。 例如,以下插件将在仅插件模式下被加载:name: ascii_render
plugin_only: true
...如果未指定此字段,默认值为
false。 对于仅插件模式下的插件,参数类型只能是str、int、boolean或float。 不允许使用其他类型如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模型兼容的模型很可能也会支持仅插件模式。