Skip to main content

llama_cpp_bindings/model/
grammar_trigger.rs

1use crate::token::LlamaToken;
2
3/// Grammar trigger kinds used for lazy grammar sampling.
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum GrammarTriggerType {
6    /// Trigger on a specific token.
7    Token = 0,
8    /// Trigger on a literal word.
9    Word = 1,
10    /// Trigger on a regex pattern.
11    Pattern = 2,
12    /// Trigger on a fully anchored regex pattern.
13    PatternFull = 3,
14}
15
16/// Lazy grammar trigger from chat template generation.
17#[derive(Debug, Clone, PartialEq, Eq)]
18pub struct GrammarTrigger {
19    /// Trigger kind.
20    pub trigger_type: GrammarTriggerType,
21    /// Trigger text or pattern.
22    pub value: String,
23    /// Token id for token triggers.
24    pub token: Option<LlamaToken>,
25}