Langchain相关概念-工具
Langchain相关概念-工具
工具
概述
LangChain 中的 tool 抽象将 Python 函数 与定义函数 名称、描述 和 预期参数 的 模式 相关联。
工具 可以传递给支持 工具调用 的 聊天模型,允许模型请求使用特定输入执行特定函数。
关键概念
- 工具是一种封装函数及其模式的方式,该模式可以传递给聊天模型。
- 使用 @tool 装饰器创建工具,这简化了工具创建过程,并支持以下功能:
- 自动推断工具的 名称、描述 和 预期参数,同时还支持自定义。
- 定义返回 工件(例如图像、数据帧等)的工具
- 使用 注入的工具参数 从模式中(因此从模型中)隐藏输入参数。
工具接口
工具接口在 BaseTool 类中定义,它是 Runnable 接口 的子类。
与工具模式相对应的关键属性
1
2
3
name:工具的名称。
description:工具的功能描述。
args:返回工具参数的 JSON 模式的属性。
执行与工具关联的函数的关键方法
1
2
invoke:使用给定的参数调用工具。
ainvoke:使用给定的参数异步调用工具。用于 Langchain 的异步编程。
使用 @tool 装饰器创建工具
创建工具的推荐方法是使用 @tool 装饰器。此装饰器旨在简化工具创建过程,在大多数情况下应使用它。定义函数后,可以使用 @tool 对其进行装饰,以创建实现 工具接口 的工具。
1
2
3
4
5
6
from langchain_core.tools import tool
@tool
def multiply(a: int, b: int) -> int:
"""Multiply two numbers."""
return a * b
直接使用工具
定义工具后,可以通过调用函数直接使用它。例如,要使用上面定义的 multiply 工具
1
multiply.invoke({"a": 2, "b": 3})
##
本文由作者按照 CC BY 4.0 进行授权