pramodmisra's picture
Fix: Correct import paths and env factory pattern
e72cd90
"""
FastAPI Application for Insurance Claims Environment
This is the server entrypoint that creates the FastAPI app
and exposes the environment via HTTP/WebSocket.
"""
from openenv.core.env_server import create_fastapi_app
# Support both package import and direct import (for HF Spaces)
try:
from ..models import ClaimsAction, ClaimsObservation
from .claims_environment import ClaimsEnvironment
except ImportError:
from models import ClaimsAction, ClaimsObservation
from server.claims_environment import ClaimsEnvironment
# Create FastAPI app using OpenEnv helper
# Note: Pass the CLASS, not an instance (OpenEnv creates instances per session)
app = create_fastapi_app(ClaimsEnvironment, ClaimsAction, ClaimsObservation)
# Add custom endpoints for environment info
@app.get("/info")
async def get_info():
"""Return environment information."""
return {
"name": "Insurance Claims Processing Environment",
"version": "1.0.0",
"description": "RL environment for training LLMs to process insurance claims",
"problem_statement": "3.1 - Professional Tasks (World Modeling)",
"partner_theme": "Scaler AI Labs - Enterprise Workflows",
"valid_actions": ClaimsEnvironment.VALID_ACTIONS,
"action_costs": ClaimsEnvironment.ACTION_TIME_COSTS,
"reward_structure": {
"correct_decision": "+10",
"wrong_decision": "-5",
"fraud_caught": "+5",
"fraud_missed": "-10",
"query_cost": "-0.1 to -0.5",
"efficiency_bonus": "+1 (if <= 4 steps)",
"efficiency_penalty": "-0.2 per step over 8",
},
}
@app.get("/scenarios")
async def get_scenarios():
"""Return list of available scenarios (for debugging)."""
try:
from .mock_systems import CLAIM_SCENARIOS
except ImportError:
from server.mock_systems import CLAIM_SCENARIOS
return {
"total_scenarios": len(CLAIM_SCENARIOS),
"scenarios": [
{
"claim_id": s.claim_id,
"claim_type": s.claim_type,
"complexity": s.complexity,
"amount": s.claim_amount,
}
for s in CLAIM_SCENARIOS
],
}