Skip to content

Commit 14539a8

Browse files
committed
Better error reporting in get_default_tokenizer()
1 parent b26a435 commit 14539a8

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

shiny/ui/_chat.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -914,15 +914,6 @@ def _get_token_count(
914914
if self._tokenizer is None:
915915
self._tokenizer = get_default_tokenizer()
916916

917-
if self._tokenizer is None:
918-
raise ValueError(
919-
"A tokenizer is required to impose `token_limits` on messages. "
920-
"To get a generic default tokenizer, install the `tokenizers` "
921-
"package (`pip install tokenizers`). "
922-
"To get a more precise token count, provide a specific tokenizer "
923-
"to the `Chat` constructor."
924-
)
925-
926917
encoded = self._tokenizer.encode(content)
927918
if isinstance(encoded, TokenizersEncoding):
928919
return len(encoded.ids)

shiny/ui/_chat_tokenizer.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,23 @@ def encode(
4545
TokenEncoding = Union[TiktokenEncoding, TokenizersTokenizer]
4646

4747

48-
def get_default_tokenizer() -> TokenizersTokenizer | None:
48+
def get_default_tokenizer() -> TokenizersTokenizer:
4949
try:
5050
from tokenizers import Tokenizer
5151

5252
return Tokenizer.from_pretrained("bert-base-cased") # type: ignore
53-
except Exception:
54-
pass
55-
56-
return None
53+
except ImportError:
54+
raise ValueError(
55+
"A tokenizer is required to impose `token_limits` on messages. "
56+
"To get a generic default tokenizer, install the `tokenizers` "
57+
"package (`pip install tokenizers`). "
58+
"To get a more precise token count, provide a specific tokenizer "
59+
"to the `Chat` constructor."
60+
)
61+
except Exception as e:
62+
raise ValueError(
63+
"Failed to load the default tokenizer. "
64+
"Ensure that the `tokenizers` package is installed and "
65+
"that the `bert-base-cased` model is available. "
66+
f"Error: {e}"
67+
) from e

0 commit comments

Comments
 (0)