Download src/triage_llm/api/audit.py from perachon/p14-space: direct link, hf CLI and curl.
- Browser
- Download file 2.06 kB
-
https://huggingface.co/spaces/perachon/p14-space/resolve/main/src/triage_llm/api/audit.py
- Command line
-
hf download hf://spaces/perachon/p14-space/src/triage_llm/api/audit.py
-
curl -L -o audit.py https://huggingface.co/spaces/perachon/p14-space/resolve/main/src/triage_llm/api/audit.py
2.06 kB
| from __future__ import annotations | |
| import json | |
| import sqlite3 | |
| import uuid | |
| from datetime import datetime, timezone | |
| from pathlib import Path | |
| from typing import Any | |
| from triage_llm.utils import ensure_dir | |
| class AuditStore: | |
| def __init__(self, db_path: str = "runs/audit/audit.db") -> None: | |
| self.db_path = Path(db_path) | |
| ensure_dir(self.db_path.parent) | |
| self._init_db() | |
| def _init_db(self) -> None: | |
| with sqlite3.connect(self.db_path) as conn: | |
| conn.execute( | |
| """ | |
| CREATE TABLE IF NOT EXISTS interactions ( | |
| id TEXT PRIMARY KEY, | |
| created_at TEXT NOT NULL, | |
| request_json TEXT NOT NULL, | |
| response_json TEXT NOT NULL | |
| ) | |
| """ | |
| ) | |
| def save(self, request: dict[str, Any], response: dict[str, Any]) -> str: | |
| interaction_id = str(uuid.uuid4()) | |
| created_at = datetime.now(timezone.utc).isoformat() | |
| with sqlite3.connect(self.db_path) as conn: | |
| conn.execute( | |
| ( | |
| "INSERT INTO interactions (id, created_at, request_json, response_json) " | |
| "VALUES (?, ?, ?, ?)" | |
| ), | |
| ( | |
| interaction_id, | |
| created_at, | |
| json.dumps(request, ensure_ascii=False), | |
| json.dumps(response, ensure_ascii=False), | |
| ), | |
| ) | |
| return interaction_id | |
| def get(self, interaction_id: str) -> dict[str, Any] | None: | |
| with sqlite3.connect(self.db_path) as conn: | |
| row = conn.execute( | |
| "SELECT id, created_at, request_json, response_json FROM interactions WHERE id = ?", | |
| (interaction_id,), | |
| ).fetchone() | |
| if row is None: | |
| return None | |
| return { | |
| "id": row[0], | |
| "created_at": row[1], | |
| "request": json.loads(row[2]), | |
| "response": json.loads(row[3]), | |
| } | |