from smolagents import Tool from datasets import load_dataset class LawTool(Tool): name = "law_tool" description = """ This is a tool that returns law content by input the category and number.""" inputs = { "category": { "type": "string", "description": "the law category (such as 民法, 中華民國刑法, 民事訴訟法, 刑事訴訟法, 律師法 etc)", }, "number": { "type": "integer", "description": "the law number (such as 23)" } } output_type = "string" law = None def __init__(self): dataset = load_dataset("robin0307/law", split='train') self.law = dataset.to_pandas() super().__init__() def forward(self, category: str, number: int): if category == "刑法": category = "中華民國刑法" data = self.law.loc[(self.law["category"]==category) & (self.law["number"]==number), "content"].values[0] return data