你好,我正在尝试创建一个代理工具,该工具接受结构化输入数据(作为包含'price'键的字典列表),并计算这些价格的总和。
我的输入数据是这样的:
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}
]
为了处理这个任务,我定义了一个函数,并尝试使用 Pydantic 来确保输入格式正确。这是我的函数定义:
from typing import List, Dict
from pydantic import BaseModel, Field
from langchain.agents import tool
class InputData(BaseModel):
input_data: List[Dict[str, int]] = Field(description="List of input data with 'Junk_Food_name' and 'price' fields")
@tool(args_schema=InputData)
def calc_price(input_data:List[Dict[str, int]])-> int:
""" 计算订单的最终总价 """
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(因为5个披萨每个800元,总共是4000元)。请问有人能帮我解决这个错误吗?