Spaces:
Sleeping
Sleeping
Download models.py from saheb/content-moderation-env: direct link, hf CLI and curl.
- Browser
- Download file 2.3 kB
-
https://huggingface.co/spaces/saheb/content-moderation-env/resolve/main/models.py
- Command line
-
hf download hf://spaces/saheb/content-moderation-env/models.py
-
curl -L -o models.py https://huggingface.co/spaces/saheb/content-moderation-env/resolve/main/models.py
2.3 kB
| from pydantic import BaseModel, Field | |
| from typing import Literal, Dict, Any, Optional | |
| # Import core typed bases from the OpenEnv runtime package | |
| from openenv.core.env_server.types import Action as BaseAction, Observation as BaseObservation, State | |
| class ModerationAction(BaseAction): | |
| """Action schema for moderation decisions and context lookups.""" | |
| type: Literal["view_post", "view_thread", "categorize", "moderate", "lookup_policy", "escalate"] = Field(description="The type of action to perform") | |
| post_id: Optional[str] = Field(None, description="The ID of the post being acted upon") | |
| decision: Optional[Literal["keep", "warn", "remove", "escalate"]] = Field(None, description="The moderation decision (for type='moderate')") | |
| rationale: Optional[str] = Field(None, description="The policy ID (e.g. P1) supporting the decision") | |
| policy_id: Optional[str] = Field(None, description="The policy ID to look up (for type='lookup_policy')") | |
| category: Optional[str] = Field(None, description="The preliminary category (for type='categorize')") | |
| class ModerationObservation(BaseObservation): | |
| """Observation schema returned by the ContentModerationEnvironment.""" | |
| active_post_summary: Optional[Dict[str, str]] = Field(None, description="A preview of the current active post") | |
| failed_attempts: list[str] = Field(default_factory=list, description="List of decisions previously tried on this post and marked incorrect") | |
| current_post: Optional[Dict[str, Any]] = Field(None, description="Full details of the active post if loaded") | |
| thread_context: Optional[list[Dict[str, Any]]] = Field(None, description="Thread messages if loaded") | |
| last_action_result: str = Field(..., description="A status message describing the result of the last action") | |
| grader_score: Optional[float] = Field(None, description="Final score, only provided when the episode is done") | |
| reward: Optional[float] = Field(None, description="Per-step reward from the last action") | |
| done: Optional[bool] = Field(None, description="Whether the episode has ended") | |
| metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional environment metadata") | |
| class ModerationState(State): | |
| episode_id: str | |
| step_count: int | |
| moderated_count: int | |
| task_name: str |