meta / models.py
teja944's picture
Upload 13 files
9fdf681 verified
from pydantic import BaseModel, ConfigDict, Field
from typing import List, Literal, Optional
import openenv.core.env_server.types as openenv_types
class Observation(openenv_types.Observation):
ticket_id: str = Field(default="", description="Unique ID of the ticket")
customer_message: str = Field(default="", description="The current message from the customer")
history: List[str] = Field(default_factory=list, description="Conversation history")
missing_info: List[str] = Field(default_factory=list, description="Fields required before routing")
status: str = Field(default="OPEN", description="Ticket status")
refund_processed: bool = Field(default=False, description="True if a refund was already executed")
class Action(openenv_types.Action):
action_type: Literal["ROUTE", "ASK_INFO", "REFUND", "CLOSE"] = Field(..., description="Type of action to take")
argument: str = Field(..., description="The category to route to, the question to ask, or the order ID to refund")
class State(openenv_types.State):
ticket_id: str = Field(default="", description="Unique ID of the ticket")
customer_message: str = Field(default="", description="The current message from the customer")
history: List[str] = Field(default_factory=list, description="Conversation history")
missing_info: List[str] = Field(default_factory=list, description="Fields required before routing")
status: str = Field(default="OPEN", description="Ticket status")
refund_processed: bool = Field(default=False, description="True if a refund was already executed")
class Reward(BaseModel):
value: float = Field(..., description="Numerical reward between -1.0 and 1.0")
feedback: str = Field(..., description="Incremental feedback for the agent")