Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from common import read_json
|
||||
from rag_profiles import detect_rag_profile
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
DEFAULT_CASES = ROOT / "plugins" / "1c" / "rag" / "profile-routing-smoke.json"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="Check 1C RAG auto profile routing.")
|
||||
parser.add_argument("--cases", type=Path, default=DEFAULT_CASES)
|
||||
parser.add_argument("--print", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
data = read_json(args.cases)
|
||||
cases = data.get("cases")
|
||||
if not isinstance(cases, list):
|
||||
print(f"{args.cases}: cases must be a list", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
results = []
|
||||
for case in cases:
|
||||
query = str(case.get("query") or "")
|
||||
expected = str(case.get("expected_profile") or "")
|
||||
actual = detect_rag_profile(query)
|
||||
results.append(
|
||||
{
|
||||
"id": case.get("id"),
|
||||
"query": query,
|
||||
"expected_profile": expected,
|
||||
"actual_profile": actual,
|
||||
"status": "passed" if actual == expected else "failed",
|
||||
}
|
||||
)
|
||||
|
||||
report = {
|
||||
"status": "ok" if all(result["status"] == "passed" for result in results) else "failed",
|
||||
"case_count": len(results),
|
||||
"results": results,
|
||||
}
|
||||
if args.print:
|
||||
print(json.dumps(report, ensure_ascii=False, indent=2))
|
||||
else:
|
||||
print(f"1C RAG profile routing status: {report['status']}")
|
||||
if report["status"] != "ok":
|
||||
for result in results:
|
||||
if result["status"] != "passed":
|
||||
print(
|
||||
f"- {result['id']}: expected {result['expected_profile']}, got {result['actual_profile']}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 0 if report["status"] == "ok" else 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user