mishrabp's picture
Upload folder using huggingface_hub
29574e5 verified
raw
history blame contribute delete
824 Bytes
"""
Parallel research tool.
"""
from concurrent.futures import ThreadPoolExecutor
from typing import List, Dict, Any
from .search import search_web
from .extract import extract_content
def research_topic(query: str, max_results: int = 5) -> List[Dict[str, Any]]:
"""
Research a topic by searching and extracting content in parallel.
"""
try:
results = search_web(query, max_results)
urls = [r['url'] for r in results]
with ThreadPoolExecutor(max_workers=max_results) as executor:
contents = list(executor.map(extract_content, urls))
for i, content in enumerate(contents):
results[i]['content'] = content
return results
except Exception as e:
return [{"error": str(e)}]