MarcoM003 commited on
Commit
563539b
·
verified ·
1 Parent(s): 30cc612

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -28
app.py CHANGED
@@ -1,42 +1,64 @@
1
- from smolagents import CodeAgent, HfApiModel, tool
2
- from datetime import datetime
3
- import pytz
 
 
 
 
4
 
5
- # Definimos una herramienta que dice hola
6
- @tool
7
- def say_hello() -> str:
8
- """Una herramienta que dice hola."""
9
- return "Hola, ¿cómo estás?"
10
 
11
- # Definimos una herramienta que dice adiós
12
  @tool
13
- def say_goodbye() -> str:
14
- """Una herramienta que dice adiós."""
15
- return "Adiós, hasta luego."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
- # Definimos una herramienta que da la hora actual
18
- @tool
19
- def get_current_time() -> str:
20
- """Una herramienta que da la hora actual."""
21
- tz = pytz.timezone('America/New_York')
22
- current_time = datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
23
- return f"La hora actual es: {current_time}"
24
 
25
- # Creamos el modelo de lenguaje
 
 
26
  model = HfApiModel(
27
- max_tokens=1024,
28
- temperature=0.5,
29
- model_id='t5-base',
 
 
30
  )
31
 
32
- # Creamos el agente
 
 
 
 
33
  agent = CodeAgent(
34
  model=model,
35
- tools=[say_hello, say_goodbye, get_current_time],
36
- max_steps=3,
37
  verbosity_level=1,
 
 
 
 
 
38
  )
39
 
40
- # Lanzamos el agente
41
- from Gradio_UI import GradioUI
42
  GradioUI(agent).launch()
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
2
+ import yaml
3
+ from tools.final_answer import FinalAnswerTool
4
+ from tools.visit_webpage import VisitWebpageTool
5
+ from typing import Optional
6
+ from PIL import Image
7
+ from io import BytesIO
8
 
9
+ from Gradio_UI import GradioUI
 
 
 
 
10
 
 
11
  @tool
12
+ def gimme_a_meme(subreddit: str = 'me_irl') -> Image:
13
+ """A tool that grabs a random meme from a given subreddit
14
+ Args:
15
+ subreddit: a string representing a valid subreddit (e.g., 'dankmemes', 'memes', 'me_irl') default value: 'me_irl'
16
+ """
17
+ try:
18
+ import requests
19
+ url = f"https://meme-api.com/gimme/{subreddit}"
20
+ response = requests.get(url)
21
+ response.raise_for_status()
22
+
23
+ meme_data = response.json()
24
+ image_url = meme_data.get("url")
25
+ image_response = requests.get(image_url)
26
+ image_response.raise_for_status()
27
+
28
+ img = Image.open(BytesIO(image_response.content))
29
+ return img
30
+ except requests.exceptions.RequestException as e:
31
+ print(f"Error fetching meme: {e}")
32
+ return None
33
 
 
 
 
 
 
 
 
34
 
35
+ final_answer = FinalAnswerTool()
36
+ visit_webpage = VisitWebpageTool()
37
+
38
  model = HfApiModel(
39
+ max_tokens=2096,
40
+ temperature=0.1,
41
+ #model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
42
+ model_id="https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud",
43
+ custom_role_conversions=None
44
  )
45
 
46
+ image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
47
+
48
+ with open("prompts.yaml", 'r') as stream:
49
+ prompt_templates = yaml.safe_load(stream)
50
+
51
  agent = CodeAgent(
52
  model=model,
53
+ tools=[final_answer, DuckDuckGoSearchTool(), gimme_a_meme, image_generation_tool, visit_webpage],
54
+ max_steps=4,
55
  verbosity_level=1,
56
+ grammar=None,
57
+ planning_interval=None,
58
+ name=None,
59
+ description=None,
60
+ prompt_templates=prompt_templates
61
  )
62
 
63
+
 
64
  GradioUI(agent).launch()