Files

27 lines
1.2 KiB
Python

from app.agents.ai import npc_generate
class NPCAgent:
def __init__(self, role: dict, background: str, public_info: str):
self.role = role
self.background = background
self.public_info = public_info
self.memory = []
async def respond(self, phase_name: str, recent_messages: list = None, player_message: str = "", is_private: bool = False,
known_clues: list[str] = None, phase_goal: str = "", all_roles: list[dict] = None) -> dict:
if recent_messages is None:
recent_messages = []
recent = [
f"{m.get('sender_name', m.get('sender', ''))}: {m.get('content', '')}"
for m in recent_messages[-5:]
]
result = await npc_generate(self.role, self.background, phase_name, recent, player_message, is_private,
known_clues, phase_goal, all_roles)
if result:
content = result.get("content", "")
if content:
self.memory.append({"role": "assistant", "content": content})
return result
return {"content": f"{self.role['name']}陷入了沉思……", "action": "speak"}