atomkevich commited on
Commit
431c4e5
·
verified ·
1 Parent(s): 8559392

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -5
app.py CHANGED
@@ -1,3 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  def agent_translate(text: str) -> str:
2
  """A tool that translate text with next logic:
3
  1) If text starts with 'PL:', translate the rest to Polish.
@@ -20,11 +40,7 @@ def agent_translate(text: str) -> str:
20
  original = text
21
 
22
  try:
23
- model_name = "facebook/m2m100_418M"
24
- tokenizer = M2M100Tokenizer.from_pretrained(model_name)
25
- translation_model = M2M100ForConditionalGeneration.from_pretrained(model_name)
26
-
27
-
28
  inputs = tokenizer(original, return_tensors="pt")
29
 
30
  forced_bos_token_id = tokenizer.get_lang_id(target_lang.lower())
@@ -38,3 +54,52 @@ def agent_translate(text: str) -> str:
38
  return translated_text
39
  except Exception as e:
40
  return f"Error during translating: { str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
2
+ import datetime
3
+ import requests
4
+ import pytz
5
+ import yaml
6
+ from tools.final_answer import FinalAnswerTool
7
+ from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
8
+
9
+ from Gradio_UI import GradioUI
10
+
11
+ from langdetect import detect
12
+ import requests
13
+ from smolagents import tool
14
+
15
+ model_name = "facebook/m2m100_418M"
16
+ tokenizer = M2M100Tokenizer.from_pretrained(model_name)
17
+ translation_model = M2M100ForConditionalGeneration.from_pretrained(model_name)
18
+
19
+
20
+ @tool
21
  def agent_translate(text: str) -> str:
22
  """A tool that translate text with next logic:
23
  1) If text starts with 'PL:', translate the rest to Polish.
 
40
  original = text
41
 
42
  try:
43
+
 
 
 
 
44
  inputs = tokenizer(original, return_tensors="pt")
45
 
46
  forced_bos_token_id = tokenizer.get_lang_id(target_lang.lower())
 
54
  return translated_text
55
  except Exception as e:
56
  return f"Error during translating: { str(e)}"
57
+
58
+
59
+ @tool
60
+ def get_current_time_in_timezone(timezone: str) -> str:
61
+ """A tool that fetches the current local time in a specified timezone.
62
+ Args:
63
+ timezone: A string representing a valid timezone (e.g., 'America/New_York').
64
+ """
65
+ try:
66
+ # Create timezone object
67
+ tz = pytz.timezone(timezone)
68
+ # Get current time in that timezone
69
+ local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
70
+ return f"The current local time in {timezone} is: {local_time}"
71
+ except Exception as e:
72
+ return f"Error fetching time for timezone '{timezone}': {str(e)}"
73
+
74
+
75
+ final_answer = FinalAnswerTool()
76
+
77
+ # If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
78
+ # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
79
+
80
+ model = HfApiModel(
81
+ max_tokens=2096,
82
+ temperature=0.5,
83
+ model_id='Qwen/Qwen2.5-Coder-32B-Instruct', # it is possible that this model may be overloaded
84
+ custom_role_conversions=None,
85
+ )
86
+
87
+ # Import tool from Hub
88
+ image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
89
+
90
+ with open("prompts.yaml", 'r') as stream:
91
+ prompt_templates = yaml.safe_load(stream)
92
+
93
+ agent = CodeAgent(
94
+ model=model,
95
+ tools=[agent_translate, final_answer], ## add your tools here (don't remove final answer)
96
+ max_steps=3,
97
+ verbosity_level=1,
98
+ grammar=None,
99
+ planning_interval=None,
100
+ name=None,
101
+ description=None,
102
+ prompt_templates=prompt_templates
103
+ )
104
+
105
+ GradioUI(agent).launch()