Spaces:
Build error
Build error
Download headroom/tokenizers/__init__.py from minhtudragon/headroom_3: direct link, hf CLI and curl.
- Browser
- Download file 2.03 kB
-
https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/tokenizers/__init__.py
- Command line
-
hf download hf://spaces/minhtudragon/headroom_3@823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/tokenizers/__init__.py
-
curl -L -o __init__.py https://huggingface.co/spaces/minhtudragon/headroom_3/resolve/823b8dc3bb2c57bc3f7b6cabcbacaa82ef77d077/headroom/tokenizers/__init__.py
2.03 kB
| """Pluggable tokenizer system for universal LLM support. | |
| This module provides a registry-based tokenizer system that supports | |
| multiple backends: | |
| 1. tiktoken - OpenAI models (GPT-3.5, GPT-4, GPT-4o) | |
| 2. HuggingFace - Open models (Llama, Mistral, Falcon, etc.) | |
| 3. Anthropic - Claude models (via SDK or estimation) | |
| 4. Estimation - Fallback for unknown models | |
| Usage: | |
| from headroom.tokenizers import TokenizerRegistry, get_tokenizer | |
| # Auto-detect tokenizer from model name | |
| tokenizer = get_tokenizer("gpt-4o") | |
| tokens = tokenizer.count_text("Hello, world!") | |
| # Get tokenizer for specific backend | |
| tokenizer = get_tokenizer("llama-3-8b", backend="huggingface") | |
| # Register custom tokenizer | |
| TokenizerRegistry.register("my-model", my_tokenizer) | |
| """ | |
| from .base import BaseTokenizer, TokenCounter | |
| from .estimator import CharacterCounter, EstimatingTokenCounter | |
| from .registry import ( | |
| TokenizerRegistry, | |
| get_tokenizer, | |
| list_supported_models, | |
| register_tokenizer, | |
| ) | |
| from .tiktoken_counter import TiktokenCounter | |
| # Lazy imports for optional dependencies | |
| def get_huggingface_tokenizer(): | |
| """Get HuggingFaceTokenizer class (requires transformers).""" | |
| from .huggingface import HuggingFaceTokenizer | |
| return HuggingFaceTokenizer | |
| def get_mistral_tokenizer(): | |
| """Get MistralTokenizer class (requires mistral-common).""" | |
| from .mistral import MistralTokenizer | |
| return MistralTokenizer | |
| def is_mistral_tokenizer_available() -> bool: | |
| """Check if Mistral tokenizer is available.""" | |
| from .mistral import is_mistral_available | |
| return is_mistral_available() | |
| __all__ = [ | |
| # Registry | |
| "TokenizerRegistry", | |
| "get_tokenizer", | |
| "register_tokenizer", | |
| "list_supported_models", | |
| # Base classes | |
| "TokenCounter", | |
| "BaseTokenizer", | |
| # Implementations | |
| "TiktokenCounter", | |
| "EstimatingTokenCounter", | |
| "CharacterCounter", | |
| # Lazy loaders | |
| "get_huggingface_tokenizer", | |
| "get_mistral_tokenizer", | |
| "is_mistral_tokenizer_available", | |
| ] | |