File size: 1,327 Bytes
f7eafe5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ee28c01
 
f7eafe5
 
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
# Copyright (c) 2026 Zoro - Legal Auditor RL Project
from openenv.core.env_server.http_server import Action, Observation
from pydantic import Field
from typing import Optional

class LegalAuditorAction(Action):
    """
    Actions the AI takes while auditing a contract.
    0 = Safe (No Risk), 1 = Risk Detected (Flag).
    """
    action: int = Field(..., ge=0, le=1, description="0 for Safe, 1 for High Risk Flag")
    rationale: Optional[str] = Field(None, description="The deductive reasoning behind the classification")

class LegalAuditorObservation(Observation):
    """
    Synchronized with LegalAuditorEnvironment.step() output.
    Includes dual-grading metrics for both accuracy and confidence.
    """
    clause_text: str = Field(..., description="The specific legal clause text currently under review")
    clause_index: int = Field(..., description="The sequential index of the current clause")
    
    # Dual-Grading Metrics (Must be in 0.0 - 1.0 range for validator)
    agent_reliability: float = Field(..., ge=0.05, le=0.95, description="Normalized Accuracy (Oracle Grade)")
    ai_analysis_grade: float = Field(..., ge=0.05, le=0.95, description="Normalized Confidence (Subjective AI Grade)")
    
    is_risk_detected: bool = Field(default=False, description="Whether a risk was detected in this state")