File size: 1,048 Bytes
abcf7c3
350500c
 
 
 
 
 
 
 
 
 
 
 
 
abcf7c3
 
 
 
 
 
 
350500c
 
abcf7c3
 
 
350500c
 
 
 
 
 
 
 
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
27
28
29
30
31
32
33
34
from typing import Literal, Optional, Dict, Any, List
from openenv.core.env_server import Action, Observation, State

class AdObservation(Observation):
    ad_id: str
    headline: str
    body_text: str
    advertiser_trust_score: float
    targeting_data: Dict[str, Any]
    image_url: str
    status_message: str
    reward: float = 0.0
    done: bool = False

    # signals exposed to agent
    risk_score: Optional[float] = None
    policy_confidence: Optional[float] = None
    image_flag: Optional[bool] = None
    landing_flag: Optional[bool] = None
    last_error: Optional[str] = None

class AdAction(Action):
    action_type: Literal[
        "query_regulations", "analyze_image", "check_advertiser_history",
        "request_landing_page", "request_id_verification",
        "submit_audit", "approve", "reject"
    ]
    reasoning: str
    violation_category: Optional[Literal["HEALTHCARE", "FINANCIAL", "NONE"]] = None

class AdState(State):
    step_count: int = 0
    total_reward: float = 0.0
    current_ad_id: Optional[str] = None