Skip to main content

TokenizerSpec

Struct TokenizerSpec 

Source
pub struct TokenizerSpec {
    pub tokenizer_json: PathBuf,
    pub added_tokens: HashMap<u32, String>,
    pub chat_template: Option<String>,
    pub add_bos: Option<bool>,
}
Expand description

Where to find the tokenizer and which special tokens it defines.

Fields§

§tokenizer_json: PathBuf

Path to the HuggingFace tokenizer.json.

§added_tokens: HashMap<u32, String>

Added special tokens parsed from tokenizer_config.json (added_tokens_decoder): token id → token string (e.g. <|im_end|>).

§chat_template: Option<String>

Raw chat template string (Jinja) if present in tokenizer_config.json. Phase 1 uses a built-in ChatML wrap instead of evaluating Jinja.

§add_bos: Option<bool>

Whether prompts should be prefixed with BOS (HF add_bos_token / GGUF tokenizer.ggml.add_bos_token). None = unspecified, which the engine treats as “prepend when the model declares a BOS id”. Qwen2 declares a BOS id but sets this to false; ignoring it prepends <|endoftext|> to every prompt.

Implementations§

Source§

impl TokenizerSpec

Source

pub fn special_token_id(&self, token: &str) -> Option<u32>

Looks up the id of an added special token by its string, e.g. spec.special_token_id("<|im_end|>").

Source

pub fn chatml_wrap(&self, user_prompt: &str) -> Option<String>

Wraps a user prompt in the ChatML template used by SmolLM2-style instruction models. Returns None if the tokenizer does not define <|im_start|> / <|im_end|> tokens.

Source

pub fn chat_template_kind(&self) -> ChatTemplate

Which chat template this tokenizer’s special tokens imply.

Source

pub fn wrap_messages(&self, messages: &[(String, String)]) -> String

Wraps (role, content) message pairs into the model’s chat format, ending with the assistant turn left open for generation. Unknown roles are coerced to user (same convention as serve).

Trait Implementations§

Source§

impl Clone for TokenizerSpec

Source§

fn clone(&self) -> TokenizerSpec

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TokenizerSpec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<C> CloneExpand for C
where C: Clone,

Source§

fn __expand_clone_method(&self, _scope: &mut Scope) -> C

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more