Skip to content

Commit 5adb9c1

Browse files
laipz8200alexcodelf
authored andcommitted
fix: tiktoken cannot be loaded without internet (langgenius#12478)
Signed-off-by: -LAN- <[email protected]>
1 parent 8156212 commit 5adb9c1

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

api/core/model_runtime/model_providers/__base/tokenizers/gpt2_tokenzier.py

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
from threading import Lock
22
from typing import Any
33

4-
import tiktoken
5-
64
_tokenizer: Any = None
75
_lock = Lock()
86

@@ -33,9 +31,17 @@ def get_encoder() -> Any:
3331
if _tokenizer is None:
3432
# Try to use tiktoken to get the tokenizer because it is faster
3533
#
36-
_tokenizer = tiktoken.get_encoding("gpt2")
37-
# base_path = abspath(__file__)
38-
# gpt2_tokenizer_path = join(dirname(base_path), "gpt2")
39-
# _tokenizer = TransformerGPT2Tokenizer.from_pretrained(gpt2_tokenizer_path)
34+
try:
35+
import tiktoken
36+
37+
_tokenizer = tiktoken.get_encoding("gpt2")
38+
except Exception:
39+
from os.path import abspath, dirname, join
40+
41+
from transformers import GPT2Tokenizer as TransformerGPT2Tokenizer # type: ignore
42+
43+
base_path = abspath(__file__)
44+
gpt2_tokenizer_path = join(dirname(base_path), "gpt2")
45+
_tokenizer = TransformerGPT2Tokenizer.from_pretrained(gpt2_tokenizer_path)
4046

4147
return _tokenizer

0 commit comments

Comments
 (0)