Eric Botti
commited on
Commit
·
bee27cc
1
Parent(s):
250cc97
enhanced output formatting
Browse files- src/agent_interfaces.py +3 -3
- src/game.py +2 -1
- src/output_formats.py +2 -2
- src/prompts.py +1 -9
src/agent_interfaces.py
CHANGED
@@ -100,12 +100,12 @@ class HumanAgentInterface(BaseAgentInterface):
|
|
100 |
|
101 |
is_human = True
|
102 |
|
103 |
-
def respond_to_formatted(self, message: Message, output_format:
|
104 |
"""For Human agents, we can trust them enough to format their own responses... for now"""
|
105 |
response = super().respond_to(message)
|
106 |
# only works because current outputs have only 1 field...
|
107 |
-
field_name = output_format.model_fields.copy().popitem()[0]
|
108 |
-
output = output_format.model_validate({field_name: response.content})
|
109 |
|
110 |
return output
|
111 |
|
|
|
100 |
|
101 |
is_human = True
|
102 |
|
103 |
+
def respond_to_formatted(self, message: Message, output_format: OutputFormat, **kwargs) -> OutputFormatModel:
|
104 |
"""For Human agents, we can trust them enough to format their own responses... for now"""
|
105 |
response = super().respond_to(message)
|
106 |
# only works because current outputs have only 1 field...
|
107 |
+
field_name = output_format.output_format_model.model_fields.copy().popitem()[0]
|
108 |
+
output = output_format.output_format_model.model_validate({field_name: response.content})
|
109 |
|
110 |
return output
|
111 |
|
src/game.py
CHANGED
@@ -68,7 +68,7 @@ class Game:
|
|
68 |
self.players.append(Player(name, player_id, interface))
|
69 |
|
70 |
# Add Observer - an Agent who can see all the messages, but doesn't actually play
|
71 |
-
if self.verbose or self.debug and not self.human_index:
|
72 |
self.observer = HumanAgentCLI("{self.game_id}-observer")
|
73 |
else:
|
74 |
self.observer = None
|
@@ -238,6 +238,7 @@ class Game:
|
|
238 |
# Point Logic
|
239 |
# If the Chameleon guesses the correct animal = +1 Point to the Chameleon
|
240 |
if chameleon_animal_guess.lower() == herd_animal.lower():
|
|
|
241 |
chameleon.points += 1
|
242 |
# If the Chameleon guesses the incorrect animal = +1 Point to each Herd player
|
243 |
else:
|
|
|
68 |
self.players.append(Player(name, player_id, interface))
|
69 |
|
70 |
# Add Observer - an Agent who can see all the messages, but doesn't actually play
|
71 |
+
if (self.verbose or self.debug) and not self.human_index:
|
72 |
self.observer = HumanAgentCLI("{self.game_id}-observer")
|
73 |
else:
|
74 |
self.observer = None
|
|
|
238 |
# Point Logic
|
239 |
# If the Chameleon guesses the correct animal = +1 Point to the Chameleon
|
240 |
if chameleon_animal_guess.lower() == herd_animal.lower():
|
241 |
+
|
242 |
chameleon.points += 1
|
243 |
# If the Chameleon guesses the incorrect animal = +1 Point to each Herd player
|
244 |
else:
|
src/output_formats.py
CHANGED
@@ -79,10 +79,10 @@ class ChameleonGuessFormat(BaseModel):
|
|
79 |
|
80 |
|
81 |
class HerdVoteFormat(BaseModel):
|
82 |
-
vote: str = Field("The name of the player you are voting for")
|
83 |
-
"""The name of the player you are voting for"""
|
84 |
player_names: List[str] = Field([], exclude=True)
|
85 |
"""The names of the players in the game"""
|
|
|
|
|
86 |
|
87 |
@field_validator('vote')
|
88 |
@classmethod
|
|
|
79 |
|
80 |
|
81 |
class HerdVoteFormat(BaseModel):
|
|
|
|
|
82 |
player_names: List[str] = Field([], exclude=True)
|
83 |
"""The names of the players in the game"""
|
84 |
+
vote: str = Field("The name of the player you are voting for")
|
85 |
+
"""The name of the player you are voting for"""
|
86 |
|
87 |
@field_validator('vote')
|
88 |
@classmethod
|
src/prompts.py
CHANGED
@@ -37,16 +37,9 @@ Below are the responses from all the other players.
|
|
37 |
{player_responses}
|
38 |
"""
|
39 |
|
40 |
-
_chameleon_guess_decision = """\
|
41 |
-
You now have the opportunity to guess what animal the other players are pretending to be.
|
42 |
-
If you guess correctly you will WIN, if you guess incorrectly you will LOSE.
|
43 |
-
If you believe you know what animal the other players are pretending to be make choose to GUESS, otherwise choose to PASS.
|
44 |
-
Your response should be one of ("GUESS", "PASS")
|
45 |
-
Your Response:
|
46 |
-
"""
|
47 |
-
|
48 |
_chameleon_guess_animal = """\
|
49 |
What animal do you think the other players are pretending to be?
|
|
|
50 |
"""
|
51 |
|
52 |
_vote_prompt = """\
|
@@ -58,7 +51,6 @@ prompts = {
|
|
58 |
"assign_herd": _assign_herd,
|
59 |
"assign_chameleon": _assign_chameleon,
|
60 |
"player_describe_animal": _player_describe_animal,
|
61 |
-
"chameleon_guess_decision": _all_responses + _chameleon_guess_decision,
|
62 |
"chameleon_guess_animal": _chameleon_guess_animal,
|
63 |
"response": "Your response:",
|
64 |
"vote": _all_responses + _vote_prompt
|
|
|
37 |
{player_responses}
|
38 |
"""
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
_chameleon_guess_animal = """\
|
41 |
What animal do you think the other players are pretending to be?
|
42 |
+
Guess the name of the animal not it's plural form e.g. guess "animal" not "animals"
|
43 |
"""
|
44 |
|
45 |
_vote_prompt = """\
|
|
|
51 |
"assign_herd": _assign_herd,
|
52 |
"assign_chameleon": _assign_chameleon,
|
53 |
"player_describe_animal": _player_describe_animal,
|
|
|
54 |
"chameleon_guess_animal": _chameleon_guess_animal,
|
55 |
"response": "Your response:",
|
56 |
"vote": _all_responses + _vote_prompt
|