File size: 999 Bytes
0017280
 
 
 
 
 
 
 
fbd18c8
0017280
 
fbd18c8
 
 
 
 
0017280
 
 
 
 
 
9815e49
0017280
83087ed
 
 
0017280
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""Search backend registry."""
from src.search.semantic_scholar import search_papers as _ss_search

BACKENDS = {
    "semantic_scholar": _ss_search,
    "none": lambda query, limit=5: [],
}

def search(query: str, backend: str = "none", limit: int = 5) -> list[dict]:
    fn = BACKENDS.get(backend)
    if fn is None:
        return []
    try:
        return fn(query, limit=limit)
    except Exception:
        return []

def format_web_results_as_context(results: list[dict]) -> str:
    if not results:
        return ""
    parts = ["=== Web Search Results (Academic Papers — SUPPLEMENTARY ONLY) ===\n"]
    for i, r in enumerate(results, 1):
        year_str = f" ({r.get('year', '')})" if r.get("year") else ""
        parts.append(
            f"[CHUNK-WEB-{i:03d}] From: {r.get('authors', 'Unknown')}{year_str}. \"{r.get('title', 'Untitled')}\"\n"
            f"  URL: {r.get('url', 'N/A')}\n"
            f"  Abstract: {r.get('abstract', 'N/A')}\n"
        )
    return "\n".join(parts)