Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Upload folder using huggingface_hub
Browse files- apps/app.py +2 -2
- apps/multiagent_draft.py +28 -19
- apps/multiagent_scenarios.py +2 -2
- core/agent.py +6 -1
apps/app.py
CHANGED
@@ -53,8 +53,8 @@ class FantasyDraftApp:
|
|
53 |
self.current_draft = None
|
54 |
self.draft_output = ""
|
55 |
|
56 |
-
# Use basic multiagent draft
|
57 |
-
draft_generator = run_interactive_mock_draft()
|
58 |
|
59 |
for output in draft_generator:
|
60 |
if isinstance(output, tuple):
|
|
|
53 |
self.current_draft = None
|
54 |
self.draft_output = ""
|
55 |
|
56 |
+
# Use basic multiagent draft with custom prompts
|
57 |
+
draft_generator = run_interactive_mock_draft(custom_prompts=self.custom_prompts)
|
58 |
|
59 |
for output in draft_generator:
|
60 |
if isinstance(output, tuple):
|
apps/multiagent_draft.py
CHANGED
@@ -21,12 +21,19 @@ USE_ENHANCED = False
|
|
21 |
class DraftAgent:
|
22 |
"""Base class for draft agents with specific strategies."""
|
23 |
|
24 |
-
def __init__(self, team_name: str, strategy: str, color: str, icon: str):
|
25 |
self.team_name = team_name
|
26 |
self.strategy = strategy
|
27 |
self.color = color
|
28 |
self.icon = icon
|
29 |
-
self.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
self.picks = []
|
31 |
self.conversation_memory = []
|
32 |
|
@@ -90,8 +97,8 @@ Don't be polite - show confidence and give as good as you get."""
|
|
90 |
class ZeroRBAgent(DraftAgent):
|
91 |
"""Agent that follows Zero RB strategy."""
|
92 |
|
93 |
-
def __init__(self, team_name: str):
|
94 |
-
super().__init__(team_name, "Zero RB Strategy", "#E3F2FD", "π")
|
95 |
self.person_emoji = "π€" # Analytical nerd
|
96 |
|
97 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
@@ -168,8 +175,8 @@ Use terms like "value", "steal", "while others reached" - not raw numbers."""
|
|
168 |
class BPAAgent(DraftAgent):
|
169 |
"""Agent that follows Best Player Available strategy."""
|
170 |
|
171 |
-
def __init__(self, team_name: str):
|
172 |
-
super().__init__(team_name, "Best Player Available", "#E8F5E9", "π")
|
173 |
self.person_emoji = "π§βπΌ" # Business-like, calculated
|
174 |
|
175 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
@@ -215,8 +222,8 @@ Don't use raw ADP numbers - use terms like "best available", "top-ranked", "obvi
|
|
215 |
class RobustRBAgent(DraftAgent):
|
216 |
"""Agent that follows Robust RB strategy."""
|
217 |
|
218 |
-
def __init__(self, team_name: str):
|
219 |
-
super().__init__(team_name, "Robust RB Strategy", "#FFF3E0", "π")
|
220 |
self.person_emoji = "π§" # Old-school, traditional
|
221 |
|
222 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
@@ -291,8 +298,8 @@ Focus on your "foundation" and "championship formula" - avoid raw rankings."""
|
|
291 |
class UpsideAgent(DraftAgent):
|
292 |
"""Agent that hunts for upside/breakout players."""
|
293 |
|
294 |
-
def __init__(self, team_name: str):
|
295 |
-
super().__init__(team_name, "Upside Hunter", "#FFFDE7", "π")
|
296 |
self.person_emoji = "π€ " # Risk-taking cowboy
|
297 |
|
298 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
@@ -358,8 +365,8 @@ Use exciting terms like "breakout", "league-winner", "explosive" - not rankings.
|
|
358 |
class UserAdvisorAgent(DraftAgent):
|
359 |
"""Agent that advises the user during their picks."""
|
360 |
|
361 |
-
def __init__(self):
|
362 |
-
super().__init__("Your Advisor", "Strategic Advisor", "#FFEBEE", "π")
|
363 |
self.person_emoji = "π§" # Wise advisor
|
364 |
self.user_picks = []
|
365 |
|
@@ -453,18 +460,20 @@ class CommissionerAgent:
|
|
453 |
class MultiAgentMockDraft:
|
454 |
"""Orchestrates the multi-agent mock draft."""
|
455 |
|
456 |
-
def __init__(self, user_pick_position: int = 4):
|
457 |
-
# Initialize agents
|
|
|
|
|
458 |
self.agents = {
|
459 |
-
1: ZeroRBAgent("Team 1"),
|
460 |
-
2: BPAAgent("Team 2"),
|
461 |
-
3: RobustRBAgent("Team 3"),
|
462 |
-
5: UpsideAgent("Team 5")
|
463 |
}
|
464 |
|
465 |
# Add Team 6 as BPA if it's not the user position
|
466 |
if 6 != user_pick_position:
|
467 |
-
self.agents[6] = BPAAgent("Team 6")
|
468 |
self.agents[6].person_emoji = "π¨βπ«" # Professor, methodical
|
469 |
|
470 |
self.user_position = user_pick_position
|
|
|
21 |
class DraftAgent:
|
22 |
"""Base class for draft agents with specific strategies."""
|
23 |
|
24 |
+
def __init__(self, team_name: str, strategy: str, color: str, icon: str, custom_instructions: Optional[str] = None):
|
25 |
self.team_name = team_name
|
26 |
self.strategy = strategy
|
27 |
self.color = color
|
28 |
self.icon = icon
|
29 |
+
self.custom_instructions = custom_instructions
|
30 |
+
|
31 |
+
# Create agent with custom instructions if provided
|
32 |
+
if custom_instructions:
|
33 |
+
self.agent = FantasyDraftAgent(custom_instructions=custom_instructions)
|
34 |
+
else:
|
35 |
+
self.agent = FantasyDraftAgent()
|
36 |
+
|
37 |
self.picks = []
|
38 |
self.conversation_memory = []
|
39 |
|
|
|
97 |
class ZeroRBAgent(DraftAgent):
|
98 |
"""Agent that follows Zero RB strategy."""
|
99 |
|
100 |
+
def __init__(self, team_name: str, custom_instructions: Optional[str] = None):
|
101 |
+
super().__init__(team_name, "Zero RB Strategy", "#E3F2FD", "π", custom_instructions)
|
102 |
self.person_emoji = "π€" # Analytical nerd
|
103 |
|
104 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
|
|
175 |
class BPAAgent(DraftAgent):
|
176 |
"""Agent that follows Best Player Available strategy."""
|
177 |
|
178 |
+
def __init__(self, team_name: str, custom_instructions: Optional[str] = None):
|
179 |
+
super().__init__(team_name, "Best Player Available", "#E8F5E9", "π", custom_instructions)
|
180 |
self.person_emoji = "π§βπΌ" # Business-like, calculated
|
181 |
|
182 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
|
|
222 |
class RobustRBAgent(DraftAgent):
|
223 |
"""Agent that follows Robust RB strategy."""
|
224 |
|
225 |
+
def __init__(self, team_name: str, custom_instructions: Optional[str] = None):
|
226 |
+
super().__init__(team_name, "Robust RB Strategy", "#FFF3E0", "π", custom_instructions)
|
227 |
self.person_emoji = "π§" # Old-school, traditional
|
228 |
|
229 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
|
|
298 |
class UpsideAgent(DraftAgent):
|
299 |
"""Agent that hunts for upside/breakout players."""
|
300 |
|
301 |
+
def __init__(self, team_name: str, custom_instructions: Optional[str] = None):
|
302 |
+
super().__init__(team_name, "Upside Hunter", "#FFFDE7", "π", custom_instructions)
|
303 |
self.person_emoji = "π€ " # Risk-taking cowboy
|
304 |
|
305 |
def make_pick(self, available_players: List[str], draft_board: Dict) -> Tuple[str, str]:
|
|
|
365 |
class UserAdvisorAgent(DraftAgent):
|
366 |
"""Agent that advises the user during their picks."""
|
367 |
|
368 |
+
def __init__(self, custom_instructions: Optional[str] = None):
|
369 |
+
super().__init__("Your Advisor", "Strategic Advisor", "#FFEBEE", "π", custom_instructions)
|
370 |
self.person_emoji = "π§" # Wise advisor
|
371 |
self.user_picks = []
|
372 |
|
|
|
460 |
class MultiAgentMockDraft:
|
461 |
"""Orchestrates the multi-agent mock draft."""
|
462 |
|
463 |
+
def __init__(self, user_pick_position: int = 4, custom_prompts: Optional[Dict[int, str]] = None):
|
464 |
+
# Initialize agents with custom prompts if provided
|
465 |
+
self.custom_prompts = custom_prompts or {}
|
466 |
+
|
467 |
self.agents = {
|
468 |
+
1: ZeroRBAgent("Team 1", self.custom_prompts.get(1)),
|
469 |
+
2: BPAAgent("Team 2", self.custom_prompts.get(2)),
|
470 |
+
3: RobustRBAgent("Team 3", self.custom_prompts.get(3)),
|
471 |
+
5: UpsideAgent("Team 5", self.custom_prompts.get(5))
|
472 |
}
|
473 |
|
474 |
# Add Team 6 as BPA if it's not the user position
|
475 |
if 6 != user_pick_position:
|
476 |
+
self.agents[6] = BPAAgent("Team 6", self.custom_prompts.get(6))
|
477 |
self.agents[6].person_emoji = "π¨βπ«" # Professor, methodical
|
478 |
|
479 |
self.user_position = user_pick_position
|
apps/multiagent_scenarios.py
CHANGED
@@ -151,13 +151,13 @@ def create_mock_draft_visualization(draft: MultiAgentMockDraft,
|
|
151 |
return output
|
152 |
|
153 |
|
154 |
-
def run_interactive_mock_draft():
|
155 |
"""Run an interactive mock draft demo that yields formatted output."""
|
156 |
|
157 |
try:
|
158 |
# Initialize the draft
|
159 |
print("Initializing MultiAgentMockDraft...")
|
160 |
-
draft = MultiAgentMockDraft(user_pick_position=4)
|
161 |
print("Draft initialized successfully")
|
162 |
|
163 |
# Skip introductions and go straight to commissioner welcome
|
|
|
151 |
return output
|
152 |
|
153 |
|
154 |
+
def run_interactive_mock_draft(custom_prompts=None):
|
155 |
"""Run an interactive mock draft demo that yields formatted output."""
|
156 |
|
157 |
try:
|
158 |
# Initialize the draft
|
159 |
print("Initializing MultiAgentMockDraft...")
|
160 |
+
draft = MultiAgentMockDraft(user_pick_position=4, custom_prompts=custom_prompts)
|
161 |
print("Draft initialized successfully")
|
162 |
|
163 |
# Skip introductions and go straight to commissioner welcome
|
core/agent.py
CHANGED
@@ -24,10 +24,11 @@ if not os.getenv("OPENAI_API_KEY"):
|
|
24 |
|
25 |
|
26 |
class FantasyDraftAgent:
|
27 |
-
def __init__(self, framework: str = "tinyagent", model_id: str = "gpt-4o-mini"):
|
28 |
"""Initialize the Fantasy Draft Agent."""
|
29 |
self.framework = framework
|
30 |
self.model_id = model_id
|
|
|
31 |
|
32 |
# Draft state management
|
33 |
self.draft_state = {
|
@@ -89,6 +90,10 @@ class FantasyDraftAgent:
|
|
89 |
|
90 |
def _get_instructions(self) -> str:
|
91 |
"""Get the agent's system instructions."""
|
|
|
|
|
|
|
|
|
92 |
return """You are an expert fantasy football draft assistant with deep knowledge of:
|
93 |
- Player values, tiers, and ADP (Average Draft Position)
|
94 |
- Draft strategy (Zero RB, Hero RB, Robust RB, etc.)
|
|
|
24 |
|
25 |
|
26 |
class FantasyDraftAgent:
|
27 |
+
def __init__(self, framework: str = "tinyagent", model_id: str = "gpt-4o-mini", custom_instructions: Optional[str] = None):
|
28 |
"""Initialize the Fantasy Draft Agent."""
|
29 |
self.framework = framework
|
30 |
self.model_id = model_id
|
31 |
+
self.custom_instructions = custom_instructions
|
32 |
|
33 |
# Draft state management
|
34 |
self.draft_state = {
|
|
|
90 |
|
91 |
def _get_instructions(self) -> str:
|
92 |
"""Get the agent's system instructions."""
|
93 |
+
# Use custom instructions if provided, otherwise use default
|
94 |
+
if self.custom_instructions:
|
95 |
+
return self.custom_instructions
|
96 |
+
|
97 |
return """You are an expert fantasy football draft assistant with deep knowledge of:
|
98 |
- Player values, tiers, and ADP (Average Draft Position)
|
99 |
- Draft strategy (Zero RB, Hero RB, Robust RB, etc.)
|