工具
info
工具是一个函数的抽象,使得语言模型可以轻松地与之交互。具体来说,工具的接口有一个文本输入和一个文本输出。它包括名称和描述,向模型传达工具的作用和何时使用它。
interface Tool {
call(arg: string): Promise<string>;
name: string;
description: string;
}
所有工具
📄️ 集成
LangChain提供以下可立即使用的工具:
📄️ 带有向量存储的代理
本笔记涵盖了如何将代理和向量存储器组合使用。这种用例是,您已将数据摄入向量存储器中,并想以代理方式与其进行交互。
📄️ ChatGPT插件
本例展示了如何在LangChain抽象中使用ChatGPT插件。
📄️ DynamicTool 自定义工具
创建运行自定义代码的工具的一种选项是使用 DynamicTool。
📄️ 使用 AWS Lambda 的代理
请查看完整文档//docs.aws.amazon.com/lambda/index.html
📄️ 网络浏览器工具
网络浏览器工具为您的代理程序提供了访问网站和提取信息的功能。它向代理程序描述为:
📄️ Zapier NLA集成代理
完整文档在此处//nla.zapier.com/api/v1/dynamic/docs
高级
要实现自己的工具,你可以将Tool
类作为子类,并实现_call
方法。_call
方法使用输入文本调用,应返回输出文本。Tool超类实现了call
方法,在调用_call
方法之前和之后调用正确的CallbackManager方法。当出现错误时,_call
方法应返回表示错误的字符串,而不是抛出错误。这允许错误传递给LLM,并且LLM可以决定如何处理它。如果抛出错误,则代理的执行将停止。
abstract class Tool {
abstract _call(arg: string): Promise<string>;
abstract name: string;
abstract description: string;
}