MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / common_sampler_init

Function common_sampler_init

subprojects/llama.cpp/common/sampling.cpp:179–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179struct common_sampler * common_sampler_init(const struct llama_model * model, struct common_params_sampling & params) {
180 const llama_vocab * vocab = llama_model_get_vocab(model);
181
182 llama_sampler_chain_params lparams = llama_sampler_chain_default_params();
183
184 lparams.no_perf = params.no_perf;
185
186 llama_sampler * grmr = nullptr;
187 llama_sampler * chain = llama_sampler_chain_init(lparams);
188
189 std::vector<llama_sampler *> samplers;
190
191 if (params.grammar.compare(0, 11, "%llguidance") == 0) {
192#ifdef LLAMA_USE_LLGUIDANCE
193 grmr = llama_sampler_init_llg(vocab, "lark", params.grammar.c_str());
194#else
195 GGML_ABORT("llguidance (cmake -DLLAMA_LLGUIDANCE=ON) is not enabled");
196#endif // LLAMA_USE_LLGUIDANCE
197 } else {
198 std::vector<std::string> trigger_patterns;
199 std::vector<llama_token> trigger_tokens;
200 for (const auto & trigger : params.grammar_triggers) {
201 switch (trigger.type) {
202 case COMMON_GRAMMAR_TRIGGER_TYPE_WORD:
203 {
204 const auto & word = trigger.value;
205 trigger_patterns.push_back(regex_escape(word));
206 break;
207 }
208 case COMMON_GRAMMAR_TRIGGER_TYPE_PATTERN:
209 {
210 trigger_patterns.push_back(trigger.value);
211 break;
212 }
213 case COMMON_GRAMMAR_TRIGGER_TYPE_PATTERN_FULL:
214 {
215 const auto & pattern = trigger.value;
216 std::string anchored = "^$";
217 if (!pattern.empty()) {
218 anchored = (pattern.front() != '^' ? "^" : "")
219 + pattern
220 + (pattern.back() != '$' ? "$" : "");
221 }
222 trigger_patterns.push_back(anchored);
223 break;
224 }
225 case COMMON_GRAMMAR_TRIGGER_TYPE_TOKEN:
226 {
227 const auto token = trigger.token;
228 trigger_tokens.push_back(token);
229 break;
230 }
231 default:
232 GGML_ASSERT(false && "unknown trigger type");
233 }
234 }
235
236 std::vector<const char *> trigger_patterns_c;

Callers 6

mtmd_cli_contextMethod · 0.85
mainFunction · 0.85
launch_slot_with_taskMethod · 0.85
mainFunction · 0.85
common_init_resultMethod · 0.85

Calls 15

llama_model_get_vocabFunction · 0.85
llama_sampler_chain_initFunction · 0.85
llama_sampler_init_llgFunction · 0.85
regex_escapeFunction · 0.85
llama_vocab_n_tokensFunction · 0.85
llama_sampler_init_dryFunction · 0.85
llama_model_n_ctx_trainFunction · 0.85
llama_sampler_init_top_kFunction · 0.85

Tested by 2

mainFunction · 0.68