grok_tokenizer#
Bases: BaseTokenizer “)
Source Code in griptape/tokenizers/grok_tokenizer.py
@define()
class GrokTokenizer(BaseTokenizer):
# https://docs.x.ai/docs/models?cluster=us-east-1#model-constraints
MODEL_PREFIXES_TO_MAX_INPUT_TOKENS = {
"grok-2-vision": 32768,
"grok-2": 131072,
"grok-vision-beta": 8192,
"grok-beta": 131072,
}
MODEL_PREFIXES_TO_MAX_OUTPUT_TOKENS = {"grok": 4096}
base_url: str = field(default="https://api.x.ai", kw_only=True, metadata={"serializable": True})
api_key: str = field(kw_only=True, default=None)
headers: dict = field(
default=Factory(lambda self: {"Authorization": f"Bearer {self.api_key}"}, takes_self=True), kw_only=True
)
def count_tokens(self, text: str) -> int:
response = requests.post(
urljoin(self.base_url, "/v1/tokenize-text"),
headers=self.headers,
json={"text": text, "model": self.model},
)
response.raise_for_status()
return len(response.json()["token_ids"])
MODEL_PREFIXES_TO_MAX_INPUT_TOKENS = {'grok-2-vision': 32768, 'grok-2': 131072, 'grok-vision-beta': 8192, 'grok-beta': 131072}class-attribute instance-attributeMODEL_PREFIXES_TO_MAX_OUTPUT_TOKENS = {'grok': 4096}class-attribute instance-attributeapi_key = field(kw_only=True, default=None)class-attribute instance-attributebase_url = field(default='https://api.x.ai', kw_only=True, metadata={'serializable': True})class-attribute instance-attributeheaders = field(default=Factory(lambda self: {'Authorization': f'Bearer {self.api_key}'}, takes_self=True), kw_only=True)class-attribute instance-attribute
count_tokens(text)#
Source Code in griptape/tokenizers/grok_tokenizer.py
def count_tokens(self, text: str) -> int:
response = requests.post(
urljoin(self.base_url, "/v1/tokenize-text"),
headers=self.headers,
json={"text": text, "model": self.model},
)
response.raise_for_status()
return len(response.json()["token_ids"])