Spaces:
Sleeping
Sleeping
File size: 4,019 Bytes
f61a1f3 c5cfc74 93b3369 c5cfc74 050a23d c5cfc74 93b3369 c5cfc74 93b3369 c5cfc74 fa76d9b 75c6826 29640e3 93b3369 75c6826 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# Step 2: Create the Retriever Tool
# Now, let’s create a custom tool that Alfred can use to search through our guest information.
# We will use the BM25Retriever from the langchain_community.retrievers module to create a retriever tool.
from smolagents import Tool
from langchain_community.retrievers import BM25Retriever
class GuestInfoRetrieverTool(Tool):
name = "guest_info_retriever"
description = "Retrieves detailed information about gala guests based on their name or relation."
inputs = {
"query": {
"type": "string",
"description": "The name or relation of the guest you want information about."
}
}
output_type = "string"
def __init__(self, docs):
self.is_initialized = False
self.retriever = BM25Retriever.from_documents(docs)
def forward(self, query: str):
results = self.retriever.get_relevant_documents(query)
if results:
return "\n\n".join([doc.page_content for doc in results[:3]])
else:
return "No matching guest information found."
# Give Your Agent Access to the Web
from smolagents import DuckDuckGoSearchTool
# Initialize the DuckDuckGo search tool
# search_tool = DuckDuckGoSearchTool()
# Example usage
# results = search_tool("Who's the current President of France?")
# print(results)
# Creating a Custom Tool for Weather Information to Schedule the Fireworks
from smolagents import Tool
import random
class WeatherInfoTool(Tool):
name = "weather_info"
description = "Fetches dummy weather information for a given location."
inputs = {
"location": {
"type": "string",
"description": "The location to get weather information for."
}
}
output_type = "string"
def forward(self, location: str):
# Dummy weather data
weather_conditions = [
{"condition": "Rainy", "temp_c": 15},
{"condition": "Clear", "temp_c": 25},
{"condition": "Windy", "temp_c": 20}
]
# Randomly select a weather condition
data = random.choice(weather_conditions)
return f"Weather in {location}: {data['condition']}, {data['temp_c']}°C"
# Initialize the tool
# weather_info_tool = WeatherInfoTool()
# Creating a Hub Stats Tool for Influential AI Builders
from smolagents import Tool
from huggingface_hub import list_models
class HubStatsTool(Tool):
name = "hub_stats"
description = "Fetches the most downloaded model from a specific author on the Hugging Face Hub."
inputs = {
"author": {
"type": "string",
"description": "The username of the model author/organization to find models from."
}
}
output_type = "string"
def forward(self, author: str):
try:
# List models from the specified author, sorted by downloads
models = list(list_models(author=author, sort="downloads", direction=-1, limit=1))
if models:
model = models[0]
return f"The most downloaded model by {author} is {model.id} with {model.downloads:,} downloads."
else:
return f"No models found for author {author}."
except Exception as e:
return f"Error fetching models for {author}: {str(e)}"
# Initialize the tool
# hub_stats_tool = HubStatsTool()
class LatestNewsTool(Tool):
name = "latest_news_tool"
description = "Fetches the latest news related to a specific topic using DuckDuckGoSearchTool"
inputs = {
"topic":{
"type":"string",
"description":"The topic for which the latest news is needed"
}
}
output_type = "string"
def __init__(self):
self.search_tool = DuckDuckGoSearchTool()
def forward(self, topic: str):
results = self.search_tool.forward(f"{topic} latest news")
return results
# Intializing the tool
# latest_news_tool = LatestNewsTool()
|