First_agent_template / tools /calories_checker.py
cyberosa
trying to return just the ingredients
bfc9852
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))