Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -45,27 +45,30 @@ from smolagents import tool, DuckDuckGoSearchTool
|
|
45 |
|
46 |
@tool
|
47 |
def search_duckduckgo(query: str) -> str:
|
48 |
-
"""Performs a web search using DuckDuckGo and returns the first result
|
49 |
|
50 |
Args:
|
51 |
query: The search term.
|
52 |
|
53 |
Returns:
|
54 |
-
|
55 |
"""
|
56 |
search_tool = DuckDuckGoSearchTool()
|
57 |
-
results = search_tool(query) #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
if not results:
|
62 |
-
return f"Nessun risultato trovato per '{query}'."
|
63 |
-
|
64 |
-
if isinstance(results, list): # ✅ Se i risultati sono una lista, allora selezioniamo il primo risultato
|
65 |
-
top_result = results[0]
|
66 |
-
return f"🔎 {top_result.get('title', 'Nessun titolo')}\n{top_result.get('snippet', 'Nessuna descrizione')}\n🔗 {top_result.get('link', 'Nessun link')}"
|
67 |
-
else:
|
68 |
-
return f"Errore: il formato dei dati non è quello previsto. Ecco il contenuto: {results}"
|
69 |
|
70 |
|
71 |
model = OpenAIServerModel(
|
|
|
45 |
|
46 |
@tool
|
47 |
def search_duckduckgo(query: str) -> str:
|
48 |
+
"""Performs a web search using DuckDuckGo and returns the first relevant result.
|
49 |
|
50 |
Args:
|
51 |
query: The search term.
|
52 |
|
53 |
Returns:
|
54 |
+
The best search result including title, summary, and link.
|
55 |
"""
|
56 |
search_tool = DuckDuckGoSearchTool()
|
57 |
+
results = search_tool(query) # Perform the search
|
58 |
+
|
59 |
+
if not results or "## Search Results" not in results:
|
60 |
+
return f"No relevant results found for '{query}'."
|
61 |
+
|
62 |
+
# Extract the first result using simple text parsing
|
63 |
+
result_lines = results.split("\n") # Split results into lines
|
64 |
+
for i in range(len(result_lines)):
|
65 |
+
if result_lines[i].startswith("["):
|
66 |
+
title = result_lines[i][1:-1] # Remove brackets
|
67 |
+
link = result_lines[i+1].strip() # The next line contains the link
|
68 |
+
summary = result_lines[i+2].strip() if i+2 < len(result_lines) else "No summary available."
|
69 |
+
return f"🔎 {title}\n{summary}\n🔗 {link}"
|
70 |
|
71 |
+
return f"Could not parse the results for '{query}'."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
|
73 |
|
74 |
model = OpenAIServerModel(
|