|
import os |
|
from tavily import TavilyClient |
|
|
|
def search_tavily(query: str, max_results: int = 5) -> str: |
|
""" |
|
Sök på Tavily Search och returnera en sammanfattning av resultaten. |
|
Kräver att TAVILY_API_KEY är satt som en miljövariabel. |
|
""" |
|
tavily_api_key = os.getenv("TAVILY_API_KEY") |
|
if not tavily_api_key: |
|
return "Fel: Tavily API-nyckel är inte konfigurerad (saknar TAVILY_API_KEY i Space Secrets)." |
|
|
|
try: |
|
client = TavilyClient(api_key=tavily_api_key) |
|
|
|
|
|
|
|
results = client.search(query=query, max_results=max_results, include_raw_content=False) |
|
|
|
summary_parts = [] |
|
if 'results' in results and results['results']: |
|
for i, res in enumerate(results['results'], 1): |
|
|
|
title = res.get('title', 'Ingen titel') |
|
url = res.get('url', 'Ingen URL') |
|
content = res.get('content', 'Inget innehåll tillgängligt.') |
|
|
|
summary_parts.append(f"Resultat {i}: {title} - {url}\nInnehåll: {content}") |
|
|
|
if not summary_parts: |
|
return "Inga sökresultat hittades på Tavily för din fråga." |
|
|
|
return "\n\n".join(summary_parts) |
|
|
|
except Exception as e: |
|
return f"Ett fel inträffade under Tavily-sökning: {e}" |
|
|