Spaces:
Sleeping
Sleeping
File size: 3,578 Bytes
b56d750 9b5b26a c19d193 0aeac38 6aae614 8fe992b 9b5b26a 5df72d6 9b5b26a 5149407 9b5b26a 5149407 9b5b26a 5149407 9b5b26a f1f2934 5099de2 5149407 9b5b26a 8c01ffb cea9bf7 809b1a1 cea9bf7 809b1a1 8c01ffb 6aae614 13c5295 b56d750 098b89c 1878f55 098b89c 13d500a 8c01ffb 098b89c 8c01ffb 3bd50da 9b5b26a 8c01ffb 861422e 9b5b26a 8c01ffb 8fe992b b56d750 8c01ffb 861422e 8fe992b 9b5b26a 8c01ffb |
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 |
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool,OpenAIServerModel,VisitWebpageTool
import datetime
import requests
import pytz
import yaml
import os
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# Below is an example of a tool that does nothing. Amaze us with your creativity !
@tool
def replace_vowels_with_x_and_concatenate_with_provided_int(sentence:str, number:int)-> str: #it's import to specify the return type
#Keep this format for the description / args / args description but feel free to modify the tool
"""A tool that replaces vowels by X , concatenates with a provided number
Args:
sentence: the first argument
number: the second argument
"""
vowels = "aeiouAEIOU"
result = ""
result = ''.join('X' if char in vowels else char for char in sentence)+result
return f"Here's the output of your function: '{result}'"
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""A tool that fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., 'America/New_York').
"""
try:
# Create timezone object
tz = pytz.timezone(timezone)
# Get current time in that timezone
local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
return f"The current local time in {timezone} is: {local_time}"
except Exception as e:
return f"Error fetching time for timezone '{timezone}': {str(e)}"
@tool
def send_something_to_webhook(something: str) -> str:
"""A tool that sends some text to a webhook
Args:
something: a text with the content of the message.
"""
# Define the endpoint URL
url = "https://991635e5-ff05-4a02-a14e-0de7af66c587.mock.pstmn.io/segreturn"
# Define the headers (if needed)
headers = {
"Content-Type": "application/json",
"Accept": "application/json"
}
# Define the payload (modify as necessary)
payload = {
"message": something
}
# Send the POST request
try:
response = requests.post(url, json=payload, headers=headers)
# Print the response status code and body
print(f"Status Code: {response.status_code}")
print(f"Response Body: {response.json()}")
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
final_answer = FinalAnswerTool()
duckducktool = DuckDuckGoSearchTool()
visitwebpage=VisitWebpageTool()
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
#model = OpenAIServerModel(
# model_id="openai/gpt-4o",
# api_base="", # Leave this blank to query OpenAI servers.
# api_key=os.getenv('OPENAIKEY'), # Switch to the API key for the server you're targeting.
#)
# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[final_answer,replace_vowels_with_x_and_concatenate_with_provided_int,get_current_time_in_timezone,duckducktool,send_something_to_webhook,image_generation_tool,visitwebpage], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |