Spaces:
Runtime error
Runtime error
fix
Browse files
app.py
CHANGED
|
@@ -17,17 +17,19 @@ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
|
|
| 17 |
# --- Tools ---
|
| 18 |
|
| 19 |
@tool
|
| 20 |
-
def
|
| 21 |
"""
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
Args:
|
| 25 |
-
|
| 26 |
|
| 27 |
Returns:
|
| 28 |
-
str:
|
| 29 |
"""
|
| 30 |
-
|
| 31 |
try:
|
| 32 |
time.sleep(random.uniform(1, 3))
|
| 33 |
serper_key = os.getenv("SERPER_API_KEY")
|
|
@@ -51,13 +53,13 @@ def extract_youtube_details(url: str) -> str:
|
|
| 51 |
for item in data['organic'][:3]:
|
| 52 |
results.append(f"RESULT: {item.get('title', '')} - {item.get('snippet', '')}")
|
| 53 |
return "\n".join(results) if results else "No Serper results"
|
| 54 |
-
# If serper_key is not set or no results, fallback to Wikipedia
|
| 55 |
return get_detailed_wikipedia(query)
|
| 56 |
except Exception as e:
|
| 57 |
return f"Search error: {str(e)}"
|
| 58 |
|
| 59 |
|
| 60 |
|
|
|
|
| 61 |
@tool
|
| 62 |
def extract_youtube_details(url: str) -> str:
|
| 63 |
"""
|
|
|
|
| 17 |
# --- Tools ---
|
| 18 |
|
| 19 |
@tool
|
| 20 |
+
def smart_web_search(query: str) -> str:
|
| 21 |
"""
|
| 22 |
+
Perform a smart web search using Serper API with Wikipedia fallback.
|
| 23 |
+
|
| 24 |
+
This tool queries the Serper API (if the key is set), formats the top results, and falls back to
|
| 25 |
+
Wikipedia if no data is returned or if the key is missing.
|
| 26 |
|
| 27 |
Args:
|
| 28 |
+
query (str): The search query to execute.
|
| 29 |
|
| 30 |
Returns:
|
| 31 |
+
str: Concatenated search results or Wikipedia summary.
|
| 32 |
"""
|
|
|
|
| 33 |
try:
|
| 34 |
time.sleep(random.uniform(1, 3))
|
| 35 |
serper_key = os.getenv("SERPER_API_KEY")
|
|
|
|
| 53 |
for item in data['organic'][:3]:
|
| 54 |
results.append(f"RESULT: {item.get('title', '')} - {item.get('snippet', '')}")
|
| 55 |
return "\n".join(results) if results else "No Serper results"
|
|
|
|
| 56 |
return get_detailed_wikipedia(query)
|
| 57 |
except Exception as e:
|
| 58 |
return f"Search error: {str(e)}"
|
| 59 |
|
| 60 |
|
| 61 |
|
| 62 |
+
|
| 63 |
@tool
|
| 64 |
def extract_youtube_details(url: str) -> str:
|
| 65 |
"""
|