Files
agent/app/modules/rag/intent_router_v2/local_runner.py

26 lines
1.1 KiB
Python

from __future__ import annotations
import logging
from app.modules.rag.intent_router_v2.models import ConversationState, IntentRouterResult, RepoContext
from app.modules.rag.intent_router_v2.router import IntentRouterV2
LOGGER = logging.getLogger(__name__)
class IntentRouterScenarioRunner:
def __init__(self, router: IntentRouterV2) -> None:
self._router = router
def run(self, queries: list[str], repo_context: RepoContext | None = None) -> list[IntentRouterResult]:
state = ConversationState()
context = repo_context or RepoContext()
results: list[IntentRouterResult] = []
for index, user_query in enumerate(queries, start=1):
LOGGER.warning("intent router local input: turn=%s user_query=%s", index, user_query)
result = self._router.route(user_query, state, context)
LOGGER.warning("intent router local output: turn=%s result=%s", index, result.model_dump_json(ensure_ascii=False))
results.append(result)
state = state.advance(result)
return results