from fastapi import FastAPI from .models import StepRequest, StepResponse from .state import load_state, save_state from .engine import process_events, generate_actions, check_and_trigger_global_event app = FastAPI(title="AI Town Engine", version="0.1.0") @app.post("/step", response_model=StepResponse) def step(request: StepRequest) -> StepResponse: """执行一个模拟步骤""" # 加载当前状态 state = load_state() # 处理事件并更新状态 state = process_events(state, request.events) # 检查并触发世界级事件 state, global_event_result = check_and_trigger_global_event(state) # 生成 agent 行动 actions = generate_actions(state) # 保存状态 save_state(state) return StepResponse( world_state=state, actions=actions, global_event=global_event_result ) @app.get("/health") def health(): """健康检查""" return {"status": "ok"}