Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -6,16 +6,17 @@ import yaml
|
|
| 6 |
from tools.final_answer import FinalAnswerTool
|
| 7 |
from Gradio_UI import GradioUI
|
| 8 |
|
| 9 |
-
# Tool personalizzato per ottenere l'ora attuale
|
| 10 |
@tool
|
| 11 |
-
def
|
| 12 |
-
"""Restituisce l'ora attuale
|
| 13 |
try:
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
| 17 |
except Exception as e:
|
| 18 |
-
return f"Errore nel recupero dell'ora per
|
| 19 |
|
| 20 |
final_answer = FinalAnswerTool()
|
| 21 |
|
|
@@ -34,7 +35,7 @@ with open("prompts.yaml", 'r') as stream:
|
|
| 34 |
|
| 35 |
agent = CodeAgent(
|
| 36 |
model=model,
|
| 37 |
-
tools=[final_answer,
|
| 38 |
max_steps=6,
|
| 39 |
verbosity_level=1,
|
| 40 |
grammar=None,
|
|
@@ -44,4 +45,18 @@ agent = CodeAgent(
|
|
| 44 |
prompt_templates=prompt_templates
|
| 45 |
)
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
GradioUI(agent).launch()
|
|
|
|
| 6 |
from tools.final_answer import FinalAnswerTool
|
| 7 |
from Gradio_UI import GradioUI
|
| 8 |
|
| 9 |
+
# Tool personalizzato per ottenere l'ora attuale in qualsiasi città
|
| 10 |
@tool
|
| 11 |
+
def get_current_time(city: str) -> str:
|
| 12 |
+
"""Restituisce l'ora attuale per una città specificata dall'utente."""
|
| 13 |
try:
|
| 14 |
+
# Ricerca della timezone basata sulla città
|
| 15 |
+
timezone = pytz.timezone(pytz.country_timezones.get(city.lower(), 'UTC'))
|
| 16 |
+
local_time = datetime.datetime.now(timezone).strftime("%Y-%m-%d %H:%M:%S")
|
| 17 |
+
return f"L'ora attuale a {city.capitalize()} è: {local_time}"
|
| 18 |
except Exception as e:
|
| 19 |
+
return f"Errore nel recupero dell'ora per {city}: {str(e)}"
|
| 20 |
|
| 21 |
final_answer = FinalAnswerTool()
|
| 22 |
|
|
|
|
| 35 |
|
| 36 |
agent = CodeAgent(
|
| 37 |
model=model,
|
| 38 |
+
tools=[final_answer, get_current_time], # Aggiunto il nuovo tool per qualsiasi città
|
| 39 |
max_steps=6,
|
| 40 |
verbosity_level=1,
|
| 41 |
grammar=None,
|
|
|
|
| 45 |
prompt_templates=prompt_templates
|
| 46 |
)
|
| 47 |
|
| 48 |
+
# Funzione per interpretare la richiesta e restituire l'ora della città specificata
|
| 49 |
+
@tool
|
| 50 |
+
def interpret_and_respond(query: str) -> str:
|
| 51 |
+
"""Interpreta la richiesta dell'utente e restituisce l'ora per una città specificata."""
|
| 52 |
+
words = query.lower().split()
|
| 53 |
+
if "time" in words or "ora" in words:
|
| 54 |
+
for word in words:
|
| 55 |
+
if word in pytz.all_timezones:
|
| 56 |
+
return get_current_time(word)
|
| 57 |
+
return "Per favore, specifica una città."
|
| 58 |
+
return "Mi dispiace, non ho capito la richiesta. Puoi riformularla?"
|
| 59 |
+
|
| 60 |
+
agent.tools.append(interpret_and_respond)
|
| 61 |
+
|
| 62 |
GradioUI(agent).launch()
|