zvl commited on
Commit
26814df
·
verified ·
1 Parent(s): fabf3af

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -21
app.py CHANGED
@@ -24,13 +24,13 @@ model = HfApiModel(
24
  @tool
25
  def summarize_text(text: str) -> str:
26
  """
27
- Usa una API de Hugging Face para resumir texto.
28
 
29
  Args:
30
- text (str): Texto que se desea resumir.
31
 
32
  Returns:
33
- str: Resumen del texto o un mensaje de error si falla la operación.
34
  """
35
  API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn"
36
  headers = {"Authorization": f"Bearer TU_HUGGINGFACE_API_KEY"}
@@ -49,15 +49,19 @@ def summarize_text(text: str) -> str:
49
 
50
  @tool
51
  def scrape_webpage(url: str, tag: str = "p", class_name: str = None) -> dict:
52
- """Extrae contenido de una página web según una etiqueta HTML y clase opcional.
 
53
 
54
  Args:
55
- url: URL de la página a scrapear.
56
- tag: Etiqueta HTML a extraer (por defecto <p>).
57
- class_name: Clase CSS opcional para filtrar resultados.
58
 
59
  Returns:
60
- Un diccionario con el contenido extraído.
 
 
 
61
  """
62
  try:
63
  headers = {"User-Agent": "Mozilla/5.0"}
@@ -80,16 +84,17 @@ def scrape_webpage(url: str, tag: str = "p", class_name: str = None) -> dict:
80
  except Exception as e:
81
  return {"error": f"Error inesperado: {str(e)}"}
82
 
83
-
84
  @tool
85
  def extract_metadata_from_url(url: str) -> dict:
86
- """Extrae todos los metadatos de una página web.
 
87
 
88
  Args:
89
- url: La URL de la página web a analizar.
90
 
91
  Returns:
92
- Un diccionario con los metadatos encontrados.
 
93
  """
94
  try:
95
  headers = {"User-Agent": "Mozilla/5.0"}
@@ -117,9 +122,10 @@ def save_scraped_data_as_markdown(scraped_data: dict, filename: str = None) -> s
117
 
118
  Args:
119
  scraped_data (dict): Diccionario que contiene:
120
- - 'url' (str): La URL de la página de la cual se extrajo el contenido.
121
- - 'scraped_data' (list[str]): Lista de fragmentos de texto extraídos.
122
- filename (str, optional): Nombre del archivo Markdown de salida. Si no se proporciona, se genera uno usando la fecha y hora actual.
 
123
 
124
  Returns:
125
  str: Mensaje indicando si el archivo se guardó correctamente o si ocurrió algún error.
@@ -151,16 +157,16 @@ def save_scraped_data_as_markdown(scraped_data: dict, filename: str = None) -> s
151
  except Exception as e:
152
  return f"Error generating Markdown file: {str(e)}"
153
 
154
-
155
  @tool
156
  def get_current_time_in_timezone(timezone: str) -> str:
157
- """Devuelve la hora actual en una zona horaria específica.
 
158
 
159
  Args:
160
- timezone: Una cadena que representa una zona horaria válida (ej. 'America/New_York').
161
 
162
  Returns:
163
- La hora local actual en la zona horaria especificada.
164
  """
165
  try:
166
  tz = pytz.timezone(timezone)
@@ -169,10 +175,9 @@ def get_current_time_in_timezone(timezone: str) -> str:
169
  except Exception as e:
170
  return f"Error obteniendo la hora para la zona horaria '{timezone}': {str(e)}"
171
 
172
-
173
  final_answer = FinalAnswerTool()
174
 
175
- # Import tool from Hub
176
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
177
 
178
  with open("prompts.yaml", "r") as stream:
@@ -185,6 +190,7 @@ agent = CodeAgent(
185
  extract_metadata_from_url,
186
  scrape_webpage,
187
  save_scraped_data_as_markdown, # Se añade la nueva herramienta al agente
 
188
  ],
189
  max_steps=6,
190
  verbosity_level=1,
 
24
  @tool
25
  def summarize_text(text: str) -> str:
26
  """
27
+ Resumir texto utilizando la API de Hugging Face.
28
 
29
  Args:
30
+ text (str): El texto que se desea resumir.
31
 
32
  Returns:
33
+ str: El resumen generado o un mensaje de error en caso de fallo.
34
  """
35
  API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn"
36
  headers = {"Authorization": f"Bearer TU_HUGGINGFACE_API_KEY"}
 
49
 
50
  @tool
51
  def scrape_webpage(url: str, tag: str = "p", class_name: str = None) -> dict:
52
+ """
53
+ Extrae contenido de una página web según una etiqueta HTML y clase opcional.
54
 
55
  Args:
56
+ url (str): URL de la página a scrapear.
57
+ tag (str): Etiqueta HTML a extraer (por defecto "p").
58
+ class_name (str, optional): Clase CSS opcional para filtrar resultados.
59
 
60
  Returns:
61
+ dict: Diccionario con el contenido extraído. Contiene las claves:
62
+ - "url": La URL consultada.
63
+ - "scraped_data": Lista de fragmentos de texto extraídos (máximo 20).
64
+ En caso de error, devuelve una clave "error" con el mensaje correspondiente.
65
  """
66
  try:
67
  headers = {"User-Agent": "Mozilla/5.0"}
 
84
  except Exception as e:
85
  return {"error": f"Error inesperado: {str(e)}"}
86
 
 
87
  @tool
88
  def extract_metadata_from_url(url: str) -> dict:
89
+ """
90
+ Extrae todos los metadatos de una página web.
91
 
92
  Args:
93
+ url (str): La URL de la página web a analizar.
94
 
95
  Returns:
96
+ dict: Diccionario con los metadatos encontrados. Si no se encuentran metadatos,
97
+ devuelve un diccionario con la clave "error" y el mensaje correspondiente.
98
  """
99
  try:
100
  headers = {"User-Agent": "Mozilla/5.0"}
 
122
 
123
  Args:
124
  scraped_data (dict): Diccionario que contiene:
125
+ - "url" (str): La URL de la página de la cual se extrajo el contenido.
126
+ - "scraped_data" (list[str]): Lista de fragmentos de texto extraídos.
127
+ filename (str, optional): Nombre del archivo Markdown de salida. Si no se proporciona,
128
+ se genera uno usando la fecha y hora actual.
129
 
130
  Returns:
131
  str: Mensaje indicando si el archivo se guardó correctamente o si ocurrió algún error.
 
157
  except Exception as e:
158
  return f"Error generating Markdown file: {str(e)}"
159
 
 
160
  @tool
161
  def get_current_time_in_timezone(timezone: str) -> str:
162
+ """
163
+ Devuelve la hora actual en una zona horaria específica.
164
 
165
  Args:
166
+ timezone (str): Una cadena que representa una zona horaria válida (ej. "America/New_York").
167
 
168
  Returns:
169
+ str: La hora local actual en la zona horaria especificada o un mensaje de error si falla.
170
  """
171
  try:
172
  tz = pytz.timezone(timezone)
 
175
  except Exception as e:
176
  return f"Error obteniendo la hora para la zona horaria '{timezone}': {str(e)}"
177
 
 
178
  final_answer = FinalAnswerTool()
179
 
180
+ # Importar herramienta desde Hub
181
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
182
 
183
  with open("prompts.yaml", "r") as stream:
 
190
  extract_metadata_from_url,
191
  scrape_webpage,
192
  save_scraped_data_as_markdown, # Se añade la nueva herramienta al agente
193
+ # Puedes añadir también otras herramientas como summarize_text si lo deseas
194
  ],
195
  max_steps=6,
196
  verbosity_level=1,