您好,我正在尝试创建一个代理工具,它将结构化输入数据作为字典列表接收,并对“价格”键进行求和。
input_data=[{'Junk_Food_name': 'Meat Lovers Pizza', 'price': 800},
{'Junk_Food_name': 'Chicken Alfredo Pizza', 'price': 800},
{'Junk_Food_name': 'Cheeseburger Pizza', 'price': 800},
{'Junk_Food_name': 'Chicken Bacon Ranch Pizza', 'price': 800},
{'Junk_Food_name': 'Chicken Pesto Pizza', 'price': 800}]
现在我尝试将上述输入传递给我在下面定义的函数,如下
from typing import List, Dict
from pydantic import BaseModel, Field
from langchain.agents import tool
# Define the input schema
class InputData(BaseModel):
input_data: List[Dict[str, int]] = Field(description="List of input data with 'Junk_Food_name' and 'price' fields")
# Define the tool function
@tool(args_schema=InputData)
def calc_price(input_data:List[Dict[str, int]])-> int:
""" Calculate the final price of the order placed"""
sum_total = 0
for item in input_data:
sum_total += int(item['price'])
return sum_total
但是当我尝试调用上述函数的输入时,出现以下错误:-
ValidationError: 1 validation error for InputData
input_data
field required (type=value_error.missing)
有人可以帮忙解决上述错误吗!!
我预计产量为 4000
运行:
pip show pydantic
您可能正在使用 pydantic v2。 langchain 仍然使用 langchain v1 BaseModel。所以而不是这个
from pydantic import BaseModel, Field
使用
from pydantic.v1 import BaseModel, Field