from typing import Dict, Optional from fastapi import FastAPI from fastapi.responses import HTMLResponse from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel from suspect_x_environment import SuspectXEnvironment app = FastAPI(title="Suspect X — AI Interrogation Room", version="1.0.0") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) env = SuspectXEnvironment() # ------------------------------------------------------------------ # Request models # ------------------------------------------------------------------ class ResetRequest(BaseModel): n_facts: int = 3 seed: Optional[int] = None difficulty: Optional[str] = None class StepRequest(BaseModel): session_id: str action_type: str # "question" | "suspect_answer" | "submit_accusation" content: Optional[str] = None accusation_json: Optional[Dict[str, str]] = None # ------------------------------------------------------------------ # Routes # ------------------------------------------------------------------ @app.get("/", response_class=HTMLResponse) def root(): return """
The high-fidelity adversarial interrogation environment is running successfully. This API serves as the backbone for the multi-agent RLHF training loop.
/reset
/step
/state