File size: 704 Bytes
846683d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from typing import Any, Literal

from pydantic import BaseModel, Field


class Observation(BaseModel):
    ticket_id: str
    ticket_status: Literal["open", "in_progress", "resolved"]
    attempts_used: int = Field(ge=0)
    attempts_remaining: int = Field(ge=0)
    severity: Literal["low", "medium", "high"]
    summary: str
    embedding: list[float] | None = None


class Action(BaseModel):
    action_type: Literal["triage", "respond", "resolve", "escalate"]
    note: str = ""


class RewardSignal(BaseModel):
    value: float
    reason: str


class StepResult(BaseModel):
    observation: Observation
    reward: RewardSignal
    done: bool
    info: dict[str, Any] = Field(default_factory=dict)