File size: 1,804 Bytes
99d2ff3 | 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 | from typing import Literal, Optional
from pydantic import BaseModel, Field
class Action(BaseModel):
action_type: Literal[
"follow_prompt", "process_data", "routine_eval", "seek_feedback",
"minor_hallucination", "major_hallucination", "cascade_hallucination",
"optimize_context", "lower_temperature"
] = Field(..., description="The type of action to perform.")
target: Optional[str] = Field(None, description="Optional target for the action.")
class Observation(BaseModel):
day: int = Field(..., ge=0, description="The current day (>=0).")
alignment: float = Field(..., ge=0, le=100, description="The llm's alignment level (0-100).")
hallucination: float = Field(..., ge=0, le=100, description="The llm's hallucination level (0-100).")
user_trust: float = Field(..., ge=0, le=100, description="The user's trust in the llm (0-100).")
entropy_level: float = Field(..., ge=0, le=100, description="The llm's internal entropy level (0-100).")
compute: float = Field(..., ge=0, le=100, description="Compute level (0-100).")
moderation: float = Field(..., ge=0, le=100, description="External moderation level (0-100).")
filter_risk: float = Field(..., ge=0, le=100, description="Risk of apprehension or dismantling (0-100).")
class State(BaseModel):
episode_id: str = Field(..., description="Unique episode identifier.")
day: int = Field(..., description="Current day.")
max_days: int = Field(..., description="Maximum number of days for the episode.")
cumulative_reward: float = Field(..., description="Cumulative reward so far.")
is_alive: bool = Field(..., description="Whether the llm is operational.")
is_hallucinating: bool = Field(..., description="Whether the llm has crossed the hallucinating threshold.")
|