pub struct TemplateCodec { /* private fields */ }Implementations§
Source§impl TemplateCodec
impl TemplateCodec
pub fn load(model_path: &Path) -> Result<TemplateCodec, Status>
pub fn from_tokenizer(tok: Arc<dyn Tokenizer>) -> Result<TemplateCodec, Status>
pub fn verified(&self) -> bool
pub fn tool_wire_kind(&self) -> &'static str
pub fn tool_body_is_json(&self) -> bool
pub fn template_digest(&self) -> u64
pub fn render_identity(&self) -> String
pub fn render_turns_structured( &self, messages: &[ChatMessage], tools: &[String], ) -> Option<Vec<u32>>
pub fn render_turns_structured_with( &self, messages: &[ChatMessage], tools: &[String], kwargs: &Map<String, Value>, ) -> Option<Vec<u32>>
pub fn try_render_turns_structured_with( &self, messages: &[ChatMessage], tools: &[String], kwargs: &Map<String, Value>, ) -> Result<Vec<u32>, String>
pub fn render_conversation( &self, messages: &[(&str, &str)], tools: &[String], add_generation_prompt: bool, ) -> String
pub fn render_conversation_tokens( &self, messages: &[(&str, &str)], tools: &[String], add_generation_prompt: bool, ) -> Option<Vec<u32>>
Trait Implementations§
Source§impl TextCodec for TemplateCodec
impl TextCodec for TemplateCodec
fn encode(&self, text: &str) -> Vec<u32>
fn encode_content(&self, text: &str) -> Vec<u32>
fn encode_pieces(&self, pieces: &[(&str, bool)]) -> Vec<u32>
fn chat_template_source(&self) -> Option<String>
fn token_bytes(&self, token: u32) -> Vec<u8> ⓘ
fn marker_literal(&self, token: u32) -> String
fn render_fim(&self, prefix: &str, suffix: &str, mode: u8) -> Option<Vec<u32>>
fn behavior_fingerprint(&self) -> Option<BehaviorFingerprint>
fn renders_per_message(&self) -> bool
fn render_prompt_structured( &self, messages: &[ChatMessage], tools: &[String], ) -> Option<Vec<u32>>
fn supports_reasoning_effort(&self) -> bool
fn supports_enable_thinking(&self) -> bool
fn reasoning_effort_levels(&self) -> Vec<&'static str>
fn validate_template_kwargs( &self, kwargs: &Map<String, Value>, ) -> Result<(), String>
fn render_prompt_structured_with( &self, messages: &[ChatMessage], tools: &[String], kwargs: &Map<String, Value>, ) -> Option<Vec<u32>>
fn trailing_generation_prompt( &self, messages: &[ChatMessage], tools: &[String], kwargs: &Map<String, Value>, span: &[u32], ) -> usize
fn template_refusal( &self, messages: &[ChatMessage], tools: &[String], kwargs: &Map<String, Value>, ) -> Option<String>
fn render_prompt( &self, messages: &[(u32, String)], tools: &[String], ) -> Option<Vec<u32>>
fn channel_markers(&self) -> Vec<(u32, u32, u32)>
fn channelizer(&self) -> Box<dyn Channelizer>
fn parse_tool_call_with( &self, raw: &str, schemas: Option<&ToolSchemas>, ) -> Option<(String, String)>
fn named_tool_call(&self, raw: &str) -> Option<(String, String)>
fn call_grammar(&self, tool_jsons: &[String]) -> Option<String>
fn structural_tag( &self, tool_jsons: &[String], at_least_one: bool, ) -> Option<String>
fn response_format_tag(&self, json_schema: &str) -> Option<String>
fn turn_terminators(&self) -> Vec<u32>
fn tool_envelope(&self) -> ToolEnvelope
fn tool_fragment_mode(&self) -> ToolFragmentMode
fn decode(&self, tokens: &[u32]) -> String
fn stream_prologue(&self) -> Vec<u32>
fn render_message(&self, _role: u32, _text: &str) -> Option<Vec<u32>>
fn generation_prefix(&self, _state: TurnState) -> Option<Vec<u32>>
fn empty_think_tokens(&self) -> Option<Vec<u32>>
fn generation_prefix_with( &self, state: TurnState, thinking: Option<bool>, ) -> Option<Vec<u32>>
fn render_system_full( &self, system: Option<&str>, tool_jsons: &[String], _kwargs: &Map<String, Value>, ) -> Option<Vec<u32>>
fn turn_separator(&self) -> Option<Vec<u32>>
fn render_system_with_tools( &self, _system: Option<&str>, _tool_jsons: &[String], ) -> Option<Vec<u32>>
fn render_tool_result(&self, _name: &str, _content: &str) -> Option<Vec<u32>>
fn render_assistant_with_tool_calls( &self, _content: &str, _calls: &[(String, String)], ) -> Option<Vec<u32>>
Source§fn render_assistant_with_tool_calls_after_query(
&self,
content: &str,
calls: &[(String, String)],
) -> Option<Vec<u32>>
fn render_assistant_with_tool_calls_after_query( &self, content: &str, calls: &[(String, String)], ) -> Option<Vec<u32>>
The same turn where no user query follows it in the conversation (a
step of a tool loop): some templates render that turn differently from
one a later query put in history (Qwen’s open its reasoning block).
fn render_turn_with_tokens( &self, _role: u32, _pre_text: &str, _inner: &[u32], _post_text: &str, ) -> Option<Vec<u32>>
fn render_block(&self, role: u32, kind: u32, payload: &str) -> Option<Vec<u32>>
fn tool_call_delimiters(&self) -> Option<(String, String)>
fn parse_tool_call(&self, raw: &str) -> Option<(String, String)>
Auto Trait Implementations§
impl !Freeze for TemplateCodec
impl !RefUnwindSafe for TemplateCodec
impl !UnwindSafe for TemplateCodec
impl Send for TemplateCodec
impl Sync for TemplateCodec
impl Unpin for TemplateCodec
impl UnsafeUnpin for TemplateCodec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more