25 lines
953 B
Python
25 lines
953 B
Python
from app.agents.ai import dm_generate
|
|
|
|
|
|
class DMAgent:
|
|
def __init__(self, script: dict):
|
|
self.script = script
|
|
self.current_phase_index = 0
|
|
self.released_clues = []
|
|
|
|
def get_opening(self) -> str:
|
|
title = self.script["title"]
|
|
bg = self.script.get("background", "")
|
|
return f"欢迎来到【{title}】。{bg}"
|
|
|
|
async def act(self, phase_index: int, player_progress: str = "", context: str = "") -> dict:
|
|
result = await dm_generate(self.script, phase_index, self.released_clues, context)
|
|
if result:
|
|
return result
|
|
phases = self.script.get("phases", [])
|
|
phase = phases[phase_index] if phase_index < len(phases) else phases[-1]
|
|
return {"action": "narrate", "content": f"【{phase['name']}】{phase['description']}"}
|
|
|
|
def get_replay_summary(self) -> str:
|
|
return f"剧本:{self.script['title']}\n真相:{self.script.get('truth', '')}"
|