Spaces:
Sleeping
Sleeping
File size: 1,474 Bytes
a9411e7 | 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | from pydantic import BaseModel, Field
from typing import Optional, Dict, List, Literal
# ACTION MODEL
class Action(BaseModel):
action_type: Literal[
"interrogate",
"analyze_evidence",
"check_cctv",
"search_police_records",
"query_web_information",
"visit_location",
"request_additional_data",
"search_past_cases",
"conclude_case"
]
target_id: Optional[str] = None
parameters: Optional[Dict[str, str]] = None
# SUSPECT MODEL
class Suspect(BaseModel):
id: str
name: str
confidence: float = Field(ge=0.0, le=1.0)
status: Literal["unknown", "suspected", "cleared"]
# OBSERVATION MODEL
class Observation(BaseModel):
case_id: str
case_description: str
initial_facts: List[str]
discovered_clues: List[str]
previous_case_history: List[str]
suspects: List[Suspect]
available_actions: List[Literal[
"interrogate",
"analyze_evidence",
"check_cctv",
"search_police_records",
"query_web_information",
"visit_location",
"request_additional_data",
"search_past_cases",
"conclude_case"
]]
time_remaining: int
budget_remaining: int
steps_taken: int
max_steps: int
done: bool = False
reward: float = 0.0
metadata: Optional[Dict] = None
valid_targets: Optional[List[str]] = None |