LangChain组件(三) - Tools

Tools

Tools是什么呢?它本身确实非常重要,是agent、chain、chat model/LLM与世界(我理解就是我们的环境,或者业务的context)交互的一个接口,也就是说:这些大模型不知道我们的数据在哪里,不知道我们重新定义了什么函数,不知道我们用什么搜索引擎,不知道我们希望打开什么APP对吧。这些需要Tools来实现。

Tool本身具有的内容有:

  • name:tool的名称
  • 描述:tool是干嘛的
  • JSON schema:tool的输入格式是什么
  • funciton to call:能调用的函数
  • tool的结果是否直接返回给用户

这里,名字描述JSON schema用于提供给LLM,让LLM知道如何使用tool。

  • 给定一系列的toolsprompt,LLM可以调用one or more tools,会自动填充参数。

使用tool,有一些很重要,要注意的地方:

  • tool 一般来说需要做微调,不然效果不好
  • tool 的名称、描述、JSON schemas 很重要
  • 简单的tool,对于model来说会更好用(轻易不要上复杂的tool)

Toolkits

Toolkits 是一系列的 tools 集合,这些 tools 一般来说是需要一起使用,完成具体的 tasks。
所有的 Toolkits 都暴露了一个 get_tools method,用来返回 tools:

# Initialize a toolkit
toolkit = ExampleTookit(...)

# Get list of tools
tools = toolkit.get_tools()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容