Skip to content

Commit 54e2ad3

Browse files
authored
Change to a tie on timeout or error, enforce max length for guess or question (#260)
* change to a tie on timeout or error, enforce max length for guess or response * fix timeouts * CR
1 parent a769e3f commit 54e2ad3

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

kaggle_environments/envs/llm_20_questions/llm_20_questions.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,13 @@ def guesser_action(active, inactive, step):
9191
if not active.action:
9292
active.status = ERROR
9393
elif active.observation.turnType == ASK:
94-
active.observation.questions.append(active.action)
95-
inactive.observation.questions.append(active.action)
94+
question = active.action[:2000]
95+
active.observation.questions.append(question)
96+
inactive.observation.questions.append(question)
9697
elif active.observation.turnType == GUESS:
97-
active.observation.guesses.append(active.action)
98-
inactive.observation.guesses.append(active.action)
98+
guess = active.action[:100]
99+
active.observation.guesses.append(guess)
100+
inactive.observation.guesses.append(guess)
99101
if active.action and keyword_guessed(active.action):
100102
guessed = True
101103
score = 20 - int(step / 3)
@@ -165,15 +167,17 @@ def interpreter(state, env):
165167
step = state[0].observation.step
166168

167169
end_early = (active1 and active1.status) in (TIMEOUT, ERROR) or (active2 and active2.status in (TIMEOUT, ERROR))
170+
either_guessed = False
168171

169172
if active1 is not None:
170173
guessed = False
171174
if active1.observation.role == GUESSER:
172175
guessed = guesser_action(active1, inactive1, step)
176+
either_guessed = guessed
173177
else:
174178
answerer_action(active1, inactive1)
175179
if active1.status in (TIMEOUT, ERROR):
176-
end_game(active1, inactive1, -1, active1.status, DONE)
180+
end_game(active1, inactive1, 0, active1.status, DONE)
177181
elif end_early:
178182
end_game(active1, inactive1, 0, DONE, DONE)
179183
else:
@@ -183,15 +187,16 @@ def interpreter(state, env):
183187
guessed = False
184188
if active2.observation.role == GUESSER:
185189
guessed = guesser_action(active2, inactive2, step)
190+
either_guessed = either_guessed or guessed
186191
else:
187192
answerer_action(active2, inactive2)
188193
if active2.status in (TIMEOUT, ERROR):
189-
end_game(active2, inactive2, -1, active2.status, DONE)
194+
end_game(active2, inactive2, 0, active2.status, DONE)
190195
elif end_early:
191196
end_game(active2, inactive2, 0, DONE, DONE)
192197
else:
193198
increment_turn(active2, inactive2, step, guessed)
194-
199+
195200
return state
196201

197202

0 commit comments

Comments
 (0)