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 |