File size: 1,261 Bytes
a3d65ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Client for the Customer Support Ticket Resolution Environment.
"""

from openenv.core.env_client import EnvClient
from support_ticket_env.models import SupportAction, SupportObservation, SupportState


class SupportTicketEnv(EnvClient[SupportAction, SupportObservation, SupportState]):
    """
    OpenEnv client for the Support Ticket Resolution environment.

    Usage (async):
        async with SupportTicketEnv(base_url="http://localhost:8000") as env:
            result = await env.reset(task_id=1)
            result = await env.step(SupportAction(action_type="classify", category="billing"))

    Usage (sync):
        with SupportTicketEnv(base_url="http://localhost:8000").sync() as env:
            result = env.reset(task_id=2)
            result = env.step(SupportAction(action_type="classify", category="technical"))
            result = env.step(SupportAction(action_type="escalate"))
    """

    def _parse_action(self, action: SupportAction) -> dict:
        return action.model_dump()

    def _parse_result(self, data: dict) -> SupportObservation:
        obs_data = data.get("observation", data)
        return SupportObservation(**obs_data)

    def _parse_state(self, data: dict) -> SupportState:
        return SupportState(**data)