Spaces:
Running
Running
| from __future__ import annotations | |
| import json | |
| from typing import List, Any | |
| from quiz.models import Quest | |
| from services.model_router import ModelRouter | |
| from services.json_parser import extract_json | |
| from config.prompts import QUEST_AGENT_SYSTEM | |
| class QuestAgent: | |
| def __init__(self, router: ModelRouter): self._router = router | |
| def generate(self, concepts: Any) -> List[Quest]: | |
| raw = self._router.reason(f"Generate quests from:\n{json.dumps(concepts)}", QUEST_AGENT_SYSTEM) | |
| try: | |
| data = extract_json(raw) | |
| except ValueError as exc: | |
| raise ValueError(f"QuestAgent: {exc}") from exc | |
| return [Quest(name=q["name"], topics=q.get("topics",[]), boss_topic=q.get("boss_topic",""), | |
| difficulty=q.get("difficulty","medium")) for q in data.get("quests",[])] | |