final-python-env / triage_models.py
uvpatel7271's picture
Upload folder using huggingface_hub
989722c verified
"""Typed models for TorchReview Copilot outputs and examples."""
from __future__ import annotations
from typing import Dict, List, Literal
from pydantic import BaseModel, Field
IssueLabel = Literal["syntax", "logic", "performance"]
RiskLevel = Literal["low", "medium", "high"]
class TriageSignal(BaseModel):
"""One extracted signal used during issue classification."""
name: str
value: str
impact: Literal["syntax", "logic", "performance", "mixed"] = "mixed"
weight: float = Field(..., ge=0.0, le=1.0)
evidence: str = ""
class PrototypeMatch(BaseModel):
"""Nearest known bug pattern from the built-in task catalog."""
task_id: str
title: str
label: IssueLabel
similarity: float = Field(..., ge=0.0, le=1.0)
summary: str
rationale: str
class TriageExample(BaseModel):
"""Example payload exposed in the demo UI."""
key: str
title: str
label: IssueLabel
summary: str
code: str
traceback_text: str
context_window: str
task_id: str
class TriagePrototype(BaseModel):
"""Canonical issue-pattern representation embedded by the triage engine."""
task_id: str
title: str
label: IssueLabel
summary: str
reference_text: str
starter_code: str
reference_code: str
traceback_text: str
class TriageResult(BaseModel):
"""Structured output produced by the triage pipeline."""
issue_label: IssueLabel
confidence_scores: Dict[str, float]
repair_risk: RiskLevel
ml_quality_score: float = Field(..., ge=0.0, le=1.0)
lint_score: float = Field(..., ge=0.0, le=1.0)
complexity_penalty: float = Field(..., ge=0.0, le=1.0)
reward_score: float = Field(..., ge=0.0, le=1.0)
summary: str
matched_pattern: PrototypeMatch
repair_plan: List[str]
suggested_next_action: str
extracted_signals: List[TriageSignal] = Field(default_factory=list)
model_backend: str
model_id: str
inference_notes: List[str] = Field(default_factory=list)
analysis_time_ms: float = Field(..., ge=0.0)