Spaces:
Sleeping
Sleeping
| from smolagents import Tool | |
| class UnitConversionTool(Tool): | |
| name = "unit_converter" | |
| description = "Converts values between units (e.g., kilometers to miles)." | |
| inputs = { | |
| "value": {"type": "number", "description": "Value to convert"}, | |
| "from_unit": {"type": "string", "description": "Unit to convert from (e.g., 'km', 'kg')"}, | |
| "to_unit": {"type": "string", "description": "Unit to convert to (e.g., 'miles', 'lbs')"} | |
| } | |
| output_type = "number" | |
| def forward(self, value: float, from_unit: str, to_unit: str): | |
| conversions = { | |
| ("km", "miles"): 0.621371, | |
| ("miles", "km"): 1.60934, | |
| ("kg", "lbs"): 2.20462, | |
| ("lbs", "kg"): 0.453592, | |
| ("C", "F"): lambda x: x * 9/5 + 32, | |
| ("F", "C"): lambda x: (x - 32) * 5/9 | |
| } | |
| conversion = conversions.get((from_unit, to_unit)) | |
| if callable(conversion): | |
| return conversion(float(value)) | |
| elif conversion: | |
| return float(value) * conversion | |
| else: | |
| return "Conversion not supported." |