Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -24,13 +24,13 @@ model = HfApiModel(
|
|
24 |
@tool
|
25 |
def summarize_text(text: str) -> str:
|
26 |
"""
|
27 |
-
|
28 |
|
29 |
Args:
|
30 |
-
text (str):
|
31 |
|
32 |
Returns:
|
33 |
-
str:
|
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 |
-
"""
|
|
|
53 |
|
54 |
Args:
|
55 |
-
url: URL de la página a scrapear.
|
56 |
-
tag: Etiqueta HTML a extraer (por defecto
|
57 |
-
class_name: Clase CSS opcional para filtrar resultados.
|
58 |
|
59 |
Returns:
|
60 |
-
|
|
|
|
|
|
|
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 |
-
"""
|
|
|
87 |
|
88 |
Args:
|
89 |
-
url: La URL de la página web a analizar.
|
90 |
|
91 |
Returns:
|
92 |
-
|
|
|
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 |
-
-
|
121 |
-
-
|
122 |
-
filename (str, optional): Nombre del archivo Markdown de salida. Si no se proporciona,
|
|
|
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 |
-
"""
|
|
|
158 |
|
159 |
Args:
|
160 |
-
timezone: Una cadena que representa una zona horaria válida (ej.
|
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 |
-
#
|
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,
|