Source code for veupath_chatbot.ai.tools.example_plans_rag_tools

"""AI tools for retrieving example plans from Qdrant.

Thin delegation layer — all logic lives in ``services.catalog.rag_search``.
"""

from veupath_chatbot.platform.types import JSONArray
from veupath_chatbot.services.catalog.rag_search import RagSearchService


[docs] class ExamplePlansRagTools: """RAG tools for example plan retrieval. When ``disabled=True`` all methods return empty results for ablation. """
[docs] def __init__(self, *, site_id: str, disabled: bool = False) -> None: self.site_id = site_id self._disabled = disabled self._svc = RagSearchService(site_id=site_id)
[docs] async def rag_search_example_plans( self, query: str, limit: int = 5, ) -> JSONArray: if self._disabled: return [] return await self._svc.search_example_plans(query=query, limit=limit)