polyguard-openenv / app /knowledge /literature_index.py
TheJackBright's picture
Deploy PolyGuard OpenEnv Space
877add7 verified
"""In-memory literature index."""
from __future__ import annotations
from app.knowledge.guideline_fragments import GUIDELINE_SNIPPETS
def search_literature(query: str, top_k: int = 5) -> list[dict[str, str]]:
q = query.lower()
scored: list[tuple[int, dict[str, str]]] = []
for snippet in GUIDELINE_SNIPPETS:
hay = f"{snippet['topic']} {snippet['text']}".lower()
score = sum(1 for token in q.split() if token in hay)
scored.append((score, snippet))
scored.sort(key=lambda x: x[0], reverse=True)
return [item for score, item in scored[:top_k] if score > 0] or GUIDELINE_SNIPPETS[: min(top_k, len(GUIDELINE_SNIPPETS))]