| 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.") |
|
|