CoolFace
Apppublic

llmAHRI/Unit_3_Agentic_RAG

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes
tools.py57 linesDownload Raw Back to root
1from smolagents import DuckDuckGoSearchTool2from smolagents import Tool3import random4from huggingface_hub import list_models5 6 7# Initialize the DuckDuckGo search tool8#search_tool = DuckDuckGoSearchTool()9 10 11class WeatherInfoTool(Tool):12    name = "weather_info"13    description = "Fetches dummy weather information for a given location."14    inputs = {15        "location": {16            "type": "string",17            "description": "The location to get weather information for."18        }19    }20    output_type = "string"21 22    def forward(self, location: str):23        # Dummy weather data24        weather_conditions = [25            {"condition": "Rainy", "temp_c": 15},26            {"condition": "Clear", "temp_c": 25},27            {"condition": "Windy", "temp_c": 20}28        ]29        # Randomly select a weather condition30        data = random.choice(weather_conditions)31        return f"Weather in {location}: {data['condition']}, {data['temp_c']}°C"32 33class HubStatsTool(Tool):34    name = "hub_stats"35    description = "Fetches the most downloaded model from a specific author on the Hugging Face Hub."36    inputs = {37        "author": {38            "type": "string",39            "description": "The username of the model author/organization to find models from."40        }41    }42    output_type = "string"43 44    def forward(self, author: str):45        try:46            # List models from the specified author, sorted by downloads47            models = list(list_models(author=author, sort="downloads", direction=-1, limit=1))48            49            if models:50                model = models[0]51                return f"The most downloaded model by {author} is {model.id} with {model.downloads:,} downloads."52            else:53                return f"No models found for author {author}."54        except Exception as e:55            return f"Error fetching models for {author}: {str(e)}"56 57