FastGPT/docSite/content/docs/workflow/modules/tool.md
Archer 6b7b03c245
4.7 doc update (#1068)
* fix: plugin update

* feat: get current time plugin

* fix: ts

* perf: select app ux

* fix: ts

* perf: max w

* move code

* perf: inform tip

* fix: inform

* doc

* fix: tool handle

* perf: tmp file store

* doc

* fix: message file selector

* feat: doc

* perf: switch trigger

* doc

* fix: openapi import

* rount the number

* parse openapi schema

* fix empty line after variables (#64)

* doc image

* image size

* doc

* doc

* catch error

---------

Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
2024-03-27 12:50:07 +08:00

2.5 KiB
Raw Blame History

title description icon draft toc weight
工具调用 FastGPT 工具调用模块介绍 build false true 356

什么是工具

工具可以是一个系统模块例如AI对话、知识库搜索、HTTP模块等。也可以是一个插件。

工具调用可以让 LLM 更动态的决策流程而不都是固定的流程。当然缺点就是费tokens

工具的组成

  1. 工具介绍。通常是模块的介绍或插件的介绍这个介绍会告诉LLM这个工具的作用是什么。
  2. 工具参数。对于系统模块来说,工具参数已经是固定的,无需额外配置。对于插件来说,工具参数是一个可配置项。

工具是如何运行的

要了解工具如何允许,首先需要知道它的运行条件。

  1. 需要工具的介绍或者叫描述。这个介绍会告诉LLM这个工具的作用是什么LLM会根据上下文语义决定是否需要调用这个工具。
  2. 工具的参数。有些工具调用时可能需要一些特殊的参数。参数中有2个关键的值参数介绍是否必须

结合工具的介绍、参数介绍和参数是否必须LLM会决定是否调用这个工具。有以下几种情况

  1. 无参数的工具:直接根据工具介绍,决定是否需要执行。例如:获取当前时间。
  2. 有参数的工具:
    1. 无必须的参数尽管上下文中没有适合的参数也可以调用该工具。但有时候LLM会自己伪造一个参数。
    2. 有必须的参数如果没有适合的参数LLM可能不会调用该工具。可以通过提示词引导用户提供参数。

工具调用逻辑

在支持函数调用的模型中,可以一次性调用多个工具,调用逻辑如下:

怎么用

有工具调用模块 无工具调用模块

高级编排中,一旦有了工具调用模块,可用的工具头部会出现一个菱形,可以将它与工具调用模块底部的菱形相连接。

被连接的工具,会自动分离工具输入与普通的输入,并且可以编辑介绍,可以通过调整介绍,使得该工具调用时机更加精确。

关于工具调用,如何调试仍然是一个玄学,所以建议,不要一次性增加太多工具,选择少量工具调优后再进一步尝试。

相关示例