Skip to content

Commit df10a87

Browse files
committed
Address fifth round of review comments
1 parent 4a2db4d commit df10a87

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

keras_hub/src/vllm/tokenizer.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,11 @@ def decode(self, token_ids, skip_special_tokens=False, **kwargs):
291291
for token_id in token_ids
292292
if int(token_id) not in special_ids
293293
]
294+
# Empty input (or everything filtered as special) decodes to "".
295+
# len(), not truthiness: token_ids may be a numpy array, whose
296+
# truth value is ambiguous.
297+
if len(token_ids) == 0:
298+
return ""
294299
text = self.tokenizer.detokenize(token_ids)
295300
np_text = ops.convert_to_numpy(text)
296301
if hasattr(np_text, "item"):

keras_hub/src/vllm/tokenizer_test.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ def test_unknown_token_raises_in_convert_to_string(self):
8181
with self.assertRaises(KeyError):
8282
self.adapter.convert_tokens_to_string(["b", "not_a_token"])
8383

84+
def test_decode_empty_and_all_special(self):
85+
self.assertEqual(self.adapter.decode([]), "")
86+
# bos/eos only, all filtered out.
87+
self.assertEqual(
88+
self.adapter.decode([1, 2], skip_special_tokens=True), ""
89+
)
90+
self.assertEqual(self.adapter.decode(np.array([], dtype="int32")), "")
91+
8492
def test_special_ids_drop_missing_token(self):
8593
# pad is absent, so only bos/eos ids appear (no defaulted id).
8694
self.assertEqual(self.adapter.all_special_ids, [1, 2])

0 commit comments

Comments
 (0)