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()

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容