# Sampler Updates Note Please refer to ${SDK\_ROOT}/examples/Genie/configs/sampler.json for the parameters that can be updated Genie provides the flexibility of updating a single parameter and multiple params in one API call The APIs used for this exercise are: [GenieSamplerConfig\_createFromJson](https://docs.qualcomm.com/doc/80-63442-100/topic/function_GenieSampler_8h_1a2ace87fa3f10b77e38c701b357af07fa.html#exhale-function-geniesampler-8h-1a2ace87fa3f10b77e38c701b357af07fa) [GenieDialog\_getSampler](https://docs.qualcomm.com/doc/80-63442-100/topic/function_GenieDialog_8h_1a0e4b39749e037211d0c00bf5b1f71afe.html#exhale-function-geniedialog-8h-1a0e4b39749e037211d0c00bf5b1f71afe) [GenieSamplerConfig\_setParam](https://docs.qualcomm.com/doc/80-63442-100/topic/function_GenieSampler_8h_1aaff7bb2ad2731bed8d52b57961156b52.html#exhale-function-geniesampler-8h-1aaff7bb2ad2731bed8d52b57961156b52) [GenieDialogSampler\_applyConfig](https://docs.qualcomm.com/doc/80-63442-100/topic/function_GenieSampler_8h_1a32113d7ff630e244c328b4c023247c51.html#exhale-function-geniesampler-8h-1a32113d7ff630e244c328b4c023247c51) ## Example on how to update sampler parameters in between queries # Create dialog config GenieDialogConfig_Handle_t dialogConfigHandle = NULL; GenieDialogConfig_createFromJson(dialogConfigStr, &dialogConfigHandle); # Create dialog GenieDialog_Handle_t dialogHandle = NULL; GenieDialog_create(dialogConfigHandle, &dialogHandle); # Query with original config GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback) # Get dialog sampler handle GenieDialogSampler_Handle_t samplerHandle = NULL; GenieDialog_getSampler(dialogHandle, &samplerHandle); # Create sampler config with a new sampler config GenieSamplerConfig_Handle_t samplerConfigHandle = NULL; GenieSamplerConfig_createFromJson(samplerConfigStr, &samplerConfigHandle); # Apply the new sampler config GenieDialogSampler_applyConfig(samplerHandle, samplerConfigHandle); # Query with updated config GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback) # Update single parameter GenieSamplerConfig_setParam(samplerConfigHandle, "top-p", "0.8"); GenieSamplerConfig_setParam(samplerConfigHandle, "top-k", "30"); # Apply the new sampler config GenieDialogSampler_applyConfig(samplerHandle, samplerConfigHandle); # Query with updated config GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback) # Update multiple parameters(top-k and top-p) std::string valueStr = "\"sampler\" : {\n \"top-k\" : 20,\n \"top-p\" : 0.75\n } " GenieSamplerConfig_setParam(samplerConfigHandle, "", valueStr.c_str()); # Apply the new sampler config GenieDialogSampler_applyConfig(samplerHandle, samplerConfigHandle); # Query with updated config GenieDialog_query(dialogHandle, promptStr, GenieDialog_SentenceCode_t::GENIE_DIALOG_SENTENCE_COMPLETE, queryCallback) Copy to clipboard Last Published: Oct 02, 2025 [Previous Topic Model inference using token to token feature on Windows](https://docs.qualcomm.com/bundle/publicresource/80-63442-100/topics/token_query.md) [Next Topic Engine Sharing](https://docs.qualcomm.com/bundle/publicresource/80-63442-100/topics/engine_sharing.md)