Aizdes commited on
Commit
d879b1c
·
1 Parent(s): c68cf0d

add app.py

Browse files
Files changed (1) hide show
  1. app.py +72 -0
app.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
2
+ import os
3
+ import datetime
4
+ import requests
5
+ import pytz
6
+ import yaml
7
+ from smolagents.default_tools import FinalAnswerTool
8
+ from smolagents.gradio_ui import GradioUI
9
+
10
+
11
+ @tool
12
+ def my_custom_tool(arg1:str, arg2:int)-> str: # it's important to specify the return type
13
+ # Keep this format for the tool description / args description but feel free to modify the tool
14
+ """A tool that does nothing yet
15
+ Args:
16
+ arg1: the first argument
17
+ arg2: the second argument
18
+ """
19
+ return "What magic will you build ?"
20
+
21
+ @tool
22
+ def get_current_time_in_timezone(timezone: str) -> str:
23
+ """A tool that fetches the current local time in a specified timezone.
24
+ Args:
25
+ timezone: A string representing a valid timezone (e.g., 'America/New_York').
26
+ """
27
+ try:
28
+ # Create timezone object
29
+ tz = pytz.timezone(timezone)
30
+ # Get current time in that timezone
31
+ local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
32
+ return f"The current local time in {timezone} is: {local_time}"
33
+ except Exception as e:
34
+ return f"Error fetching time for timezone '{timezone}': {str(e)}"
35
+
36
+
37
+ @tool
38
+ def get_string_from_args(args: list) -> str:
39
+ """A tool which return args as one string
40
+ Args:
41
+ args: list of any values
42
+ """
43
+ return ' '.join(args)
44
+
45
+
46
+ final_answer = FinalAnswerTool()
47
+ model = HfApiModel(
48
+ max_tokens=2096,
49
+ temperature=0.5,
50
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
51
+ custom_role_conversions=None,
52
+ )
53
+
54
+
55
+ with open("prompts.yaml", 'r') as f:
56
+ prompt_templates = yaml.safe_load(f)
57
+
58
+
59
+ # We're creating our CodeAgent
60
+ agent = CodeAgent(
61
+ model=model,
62
+ tools=[final_answer, get_current_time_in_timezone], # add your tools here (don't remove final_answer)
63
+ max_steps=6,
64
+ verbosity_level=1,
65
+ grammar=None,
66
+ planning_interval=None,
67
+ name=None,
68
+ description=None,
69
+ prompt_templates=prompt_templates
70
+ )
71
+
72
+ GradioUI(agent).launch(share=True)