Dockerfile / core /parser /fallback.py
kkthakur's picture
Clean up dead Qwen local model fallback and add .gitignore
24b94ea
Raw
History Blame Contribute Delete
1.73 kB
"""
Fallback parsing logic.
Attempts fast regex-based parsing first, falling back to local heuristic/embedding parser,
and finally to the cloud Gemini LLM parser.
"""
from __future__ import annotations
from core.intent_parser import parse_intent
from core.parser.local_parser.parser import LocalIntentParser
_local_parser: LocalIntentParser | None = None
def get_local_parser() -> LocalIntentParser:
"""Lazily load the local heuristic & embedding parser."""
global _local_parser
if _local_parser is None:
_local_parser = LocalIntentParser()
return _local_parser
def parse_intent_hybrid(session_id: str, command: str) -> dict | None:
"""Parse user command using fast regex path, local orchestrator parser, or cloud Gemini."""
# 1. Fast Path: Regex / keyword resolution
fast_result = parse_intent(session_id, command)
if fast_result is not None:
print(f"[Hybrid Parser] Fast path success: {fast_result}")
return fast_result
# 2. Local Heuristic / Spelling / Synonym / Embeddings Parser
try:
local_parser = get_local_parser()
local_result = local_parser.parse_intent(session_id, command)
if local_result is not None:
confidence = local_result.pop("confidence", "low")
if confidence == "high":
print(f"[Hybrid Parser] Local parser high-confidence success: {local_result}")
return local_result
else:
print(f"[Hybrid Parser] Local parser yielded low confidence: {local_result}")
except Exception as e:
print(f"[Hybrid Parser] Exception in local parser: {e}")
print("[Hybrid Parser] All local paths failed. Returning None.")
return None