Fix outlines-0.0.35 incompatibility (#291)

Co-authored-by: ZX <zx@lbx.dev>
This commit is contained in:
ZhouGongZaiShi
2024-03-23 03:19:11 +08:00
committed by GitHub
parent ed31579971
commit 77835756a7

View File

@@ -5,9 +5,20 @@ from sglang.srt.constrained.base_cache import BaseCache
class FSMCache(BaseCache):
def __init__(self, tokenizer_path, tokenizer_args_dict, enable=True):
super().__init__(enable=enable)
self.outlines_tokenizer = TransformerTokenizer(
tokenizer_path, **tokenizer_args_dict
)
from importlib.metadata import version
if version("outlines") >= "0.0.35":
from transformers import AutoTokenizer
tokenizer_args_dict.setdefault("padding_side", "left")
tokenizer = AutoTokenizer.from_pretrained(
tokenizer_path, **tokenizer_args_dict
)
self.outlines_tokenizer = TransformerTokenizer(tokenizer)
else:
self.outlines_tokenizer = TransformerTokenizer(
tokenizer_path, **tokenizer_args_dict
)
def init_value(self, regex):
return RegexFSM(regex, self.outlines_tokenizer)