赞
踩
1、Tools 可以被Agent、Chain、LLM所使用。
2、tool 的必备属性有:name、description、JSON schema (tool输入)、调用的函数、工具的结果是否应直接返回给用户。其中name、description和 JSON schema 可用于提示 LLM、写入在LLM的system prompt当中,以便它知道如何指定要执行的操作,然后调用的函数相当于执行该操作。
3、tool建议:输入越简单、LLM越容易使用,比如单个字符串。
4、自定义tool实现:Defining Custom Tools
推荐使用 StructuredTool 类构建 tool
# 输入为单个字符串
def search_function(query: str):
return "LangChain"
search = StructuredTool.from_function(
func=search_function,
name="Search",
description="useful for when you need to answer questions about current events",
# coroutine= ... <- you can specify an async method if desired as well
)
# 输入是dict class CalculatorInput(BaseModel): a: int = Field(description="first number") b: int = Field(description="second number") def multiply(a: int, b: int) -> int: """Multiply two numbers.""" return a * b calculator = StructuredTool.from_function( func=multiply, name="Calculator", description="multiply numbers", args_schema=CalculatorInput, return_direct=True, # coroutine= ... <- you can specify an async method if desired as well )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。