Spaces:
Sleeping
Sleeping
from typing import Any, Optional | |
from smolagents.tools import Tool | |
class TimelineEstimatorTool(Tool): | |
name = "renovation_timeline_estimator" | |
description = """ | |
Estimates timeline for home renovation projects based on scope and complexity. | |
It returns a detailed timeline with major milestones. | |
""" | |
inputs = {'project_scope': {'type': 'string', 'description': "The scope of renovation (e.g., 'full_kitchen', 'bathroom_update', 'whole_house')"}, 'complexity': {'type': 'string', 'description': 'Project complexity (simple, moderate, complex)'}} | |
output_type = "string" | |
def forward(self, project_scope: str, complexity: str): | |
timelines = { | |
"full_kitchen": { | |
"simple": "4-6 weeks: demolition (3-5 days), plumbing/electrical (5-7 days), cabinets (3-5 days), countertops (7-10 days), finishing (7-10 days)", | |
"moderate": "6-8 weeks: includes structural changes and high-end appliance installation", | |
"complex": "8-12 weeks: includes custom cabinetry, moving walls, and specialty features" | |
}, | |
"bathroom_update": { | |
"simple": "2-3 weeks: fixtures replacement, new tile, paint", | |
"moderate": "3-5 weeks: includes new layout and shower conversion", | |
"complex": "5-8 weeks: includes moving plumbing, custom tile work, and specialty features" | |
}, | |
"whole_house": { | |
"simple": "3-6 months: cosmetic updates throughout", | |
"moderate": "6-9 months: includes kitchen and bathroom remodels", | |
"complex": "9-18 months: includes additions, structural changes, and custom work throughout" | |
} | |
} | |
scope = project_scope.lower() | |
level = complexity.lower() | |
if scope in timelines and level in timelines[scope]: | |
return timelines[scope][level] | |
return "Timeline estimate not available. Try 'full_kitchen', 'bathroom_update', or 'whole_house' with 'simple', 'moderate', or 'complex'" | |
def __init__(self, *args, **kwargs): | |
self.is_initialized = False | |