MCPcopy Create free account
hub / github.com/abetlen/llama-cpp-python / add_grammar_lazy_patterns

Method add_grammar_lazy_patterns

llama_cpp/_internals.py:759–783  ·  view source on GitHub ↗
(
        self,
        model: LlamaModel,
        grammar: LlamaGrammar,
        trigger_patterns: List[str],
        trigger_tokens: List[int],
    )

Source from the content-addressed store, hash-verified

757 llama_cpp.llama_sampler_chain_add(self.sampler, sampler)
758
759 def add_grammar_lazy_patterns(
760 self,
761 model: LlamaModel,
762 grammar: LlamaGrammar,
763 trigger_patterns: List[str],
764 trigger_tokens: List[int],
765 ):
766 # Convert patterns to C array
767 pattern_ptrs = (ctypes.c_char_p * len(trigger_patterns))()
768 for i, pattern in enumerate(trigger_patterns):
769 pattern_ptrs[i] = pattern.encode("utf-8")
770
771 # Convert tokens to C array
772 token_array = (llama_cpp.llama_token * len(trigger_tokens))(*trigger_tokens)
773
774 sampler = llama_cpp.llama_sampler_init_grammar_lazy_patterns(
775 model.vocab,
776 grammar._grammar.encode("utf-8"),
777 grammar._root.encode("utf-8"),
778 pattern_ptrs,
779 len(trigger_patterns),
780 token_array,
781 len(trigger_tokens),
782 )
783 llama_cpp.llama_sampler_chain_add(self.sampler, sampler)
784
785 def add_penalties(
786 self,

Callers

nothing calls this directly

Calls 1

encodeMethod · 0.45

Tested by

no test coverage detected