PERI-AI-dev / src /search /__init__.py
LIANJie-Jason's picture
Claude Opus 4.6
fix: pre-release audit round 12 — 33 bugs fixed across all tiers
fbd18c8
Raw History Blame Contribute Delete
999 Bytes
"""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)