Renovation_Planner_AI / tools /contractor_matcher.py
diegocp01's picture
Upload agent
d80b863 verified
from typing import Any, Optional
from smolagents.tools import Tool
class ContractorMatchingTool(Tool):
name = "contractor_matcher"
description = """
Recommends contractor specialties based on project requirements.
Returns the types of contractors needed and hiring tips.
"""
inputs = {'project_type': {'type': 'string', 'description': 'The type of renovation project'}}
output_type = "string"
def forward(self, project_type: str):
recommendations = {
"kitchen": "Required specialists: General contractor, plumber, electrician, cabinet installer, countertop fabricator, tile setter\n\nTips: Check for experience with kitchen-specific ventilation and appliance installation. Request photos of at least 5 previous kitchen projects.",
"bathroom": "Required specialists: General contractor, plumber, tile setter, electrician\n\nTips: Verify waterproofing experience and ask about their shower installation process. Bathroom specialists should demonstrate knowledge of moisture control.",
"basement": "Required specialists: General contractor, framer, electrician, plumber, drywall installer, waterproofing expert\n\nTips: Ensure they have specific basement finishing experience and check references for water intrusion solutions.",
"addition": "Required specialists: Architect, structural engineer, general contractor, roofer, framer, electrician, plumber, HVAC technician\n\nTips: Verify permit handling experience and check their knowledge of connecting new construction to existing structure."
}
project = project_type.lower()
return recommendations.get(project, "For this project type, consult a general contractor for initial assessment. Always check licenses, insurance, and at least 3 references.")
def __init__(self, *args, **kwargs):
self.is_initialized = False