File size: 1,534 Bytes
fbc9e3f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fda4b7
fbc9e3f
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python3
import json
import sys
from pathlib import Path

ROOT = Path("/home/harness_user_1/dgx_ai_factory")
ROUTER_JSON = ROOT / "router_templates/operational_router_v1.json"

def load_router():
    return json.loads(ROUTER_JSON.read_text(encoding="utf-8"))

def route(prompt: str):
    router = load_router()
    low = prompt.lower()
    best = None
    best_hits = 0

    for r in router.get("routes", []):
        hits = sum(1 for kw in r.get("keywords_any", []) if kw.lower() in low)
        if hits > best_hits:
            best = r
            best_hits = hits

    if best and best_hits >= 1:
        return {
            "routed": True,
            "route_id": best.get("id"),
            "category": best.get("category"),
            "hits": best_hits,
            "answer": best.get("answer"),
        }

    return {
        "routed": False,
        "route_id": None,
        "category": "model",
        "hits": 0,
        "answer": router.get("fallback", {}).get("answer", "ROUTE_TO_CHAMPION_MODEL"),
    }

def main():
    if len(sys.argv) < 2:
        print("usage: python scripts/120_operational_router.py '질문'")
        node-7.example.invalid SystemExit(2)

    prompt = " ".join(sys.argv[1:])
    result = route(prompt)

    print("==== ROUTER RESULT ====")
    print("routed:", result["routed"])
    print("route_id:", result["route_id"])
    print("category:", result["category"])
    print("hits:", result["hits"])
    print()
    print(result["answer"])

if __name__ == "__main__":
    main()