import requests import os from typing import Any, Optional, List, Dict from smolagents.tools import Tool import json class CaloriesCheckerTool(Tool): name = "calories_check" description = """Checks the calories and other components of food given n a query with the food you want to check, it returns a dictionary with the calories and other nutritional parameters of the food""" inputs = { "query": { "type": "string", "description": "The query with the food and ingredients you want to check.", } } output_type = "string" def __init__(self, *args, **kwargs): self.is_initialized = False self.api_key = os.environ.get("CALORIES_API_KEY", None) def forward(self, query: str) -> list[dict[str, Any]]: api_url = "https://api.calorieninjas.com/v1/nutrition?query=" response = requests.get( api_url + query, headers={"X-Api-Key": str(self.api_key)} ) if response.status_code == requests.codes.ok: # this is a list of dictionaries data = json.loads(response.text) items = data["items"] response_json = json.dumps(items, indent=4) return response_json return "Error: " + str(response.status_code) + "\n\n".join(response.text) if __name__ == "__main__": query = "bread with fried green peppers" tool = CaloriesCheckerTool() print("result") print(tool.forward(query=query))