Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
sys.path.insert(0, str(ROOT / "scripts"))
|
||||
|
||||
import report_failed_turns as failed_turns_script # noqa: E402
|
||||
|
||||
|
||||
def write_jsonl(path: Path, records: list[dict]) -> None:
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with path.open("w", encoding="utf-8") as handle:
|
||||
for record in records:
|
||||
handle.write(json.dumps(record, ensure_ascii=False) + "\n")
|
||||
|
||||
|
||||
def test_report_failed_turns_filters_non_success(tmp_path: Path) -> None:
|
||||
root = tmp_path / "reports" / "observability" / "onec-agent" / "turn_audit" / "20260705.jsonl"
|
||||
write_jsonl(
|
||||
root,
|
||||
[
|
||||
{
|
||||
"timestamp": "2026-07-05T10:00:00+00:00",
|
||||
"turn_id": "ok-1",
|
||||
"plugin": "1c",
|
||||
"outcome": "success",
|
||||
"failure_type": "none",
|
||||
"user_text": "ok",
|
||||
},
|
||||
{
|
||||
"timestamp": "2026-07-05T11:00:00+00:00",
|
||||
"turn_id": "bad-1",
|
||||
"plugin": "1c",
|
||||
"project_id": "p1",
|
||||
"chat_id": "c1",
|
||||
"request_id": "r1",
|
||||
"outcome": "failure",
|
||||
"failure_type": "adapter_error",
|
||||
"error_code": "adapter_error",
|
||||
"error_message": "missing base_id",
|
||||
"user_text": "Проверь сохраненное состояние",
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
records = failed_turns_script.iter_turn_audit(tmp_path / "reports" / "observability")
|
||||
failed = failed_turns_script.filter_failed(records, limit=10)
|
||||
|
||||
assert len(failed) == 1
|
||||
assert failed[0]["turn_id"] == "bad-1"
|
||||
assert failed[0]["failure_type"] == "adapter_error"
|
||||
assert failed[0]["error_code"] == "adapter_error"
|
||||
Reference in New Issue
Block a user