diff --git a/api/routes/kb_public.py b/api/routes/kb_public.py index f1cc1c3..433465d 100644 --- a/api/routes/kb_public.py +++ b/api/routes/kb_public.py @@ -18,6 +18,7 @@ from pydantic import BaseModel, Field from api.services.kb import search as kb_search from api.services.kb import ingest as kb_ingest from api.services.kb import s3 as kb_s3 +from api.services.kb import topics as kb_topics logger = logging.getLogger("shira.kb.public") @@ -41,17 +42,35 @@ class SearchRequest(BaseModel): # for each, merge, then rerank against the original query. Recovers # documents that don't share the user's exact wording. expand: bool = True + # Domain scope. None means "lowest active topic" (back-compat — equivalent + # to topic_id=1 'national-insurance' until additional topics are added). + topic_id: int | None = None + + +@router.get("/topics") +async def list_topics(request: Request): + """Return the active KB topics for the topic