KoboldCpp: Allow grammar to keep place during continue (#5444) * allow grammar to keep place during continue * lint * fix: require kai flag for grammar to be set * fix: don't retain if grammar is empty * fix: default to undefined if not retain --------- Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
Signed| @@ -202,6 +202,7 @@ export function getKoboldGenerationData(finalPrompt, settings, maxLength, maxCon | ||
| 202 | 202 | mirostat_eta: (kai_flags.can_use_mirostat || isHorde) ? kai_settings.mirostat_eta : undefined, |
| 203 | 203 | use_default_badwordsids: (kai_flags.can_use_default_badwordsids || isHorde) ? kai_settings.use_default_badwordsids : undefined, |
| 204 | 204 | grammar: (kai_flags.can_use_grammar || isHorde) ? substituteParams(kai_settings.grammar) : undefined, |
| 205 | + grammar_retain_state: (kai_flags.can_use_grammar && !!isContinue) ? true : undefined, | |
| 205 | 206 | sampler_seed: kai_settings.seed >= 0 ? kai_settings.seed : undefined, |
| 206 | 207 | api_server: kai_settings.api_server, |
| 207 | 208 | }; |
| @@ -1756,6 +1756,7 @@ export function createTextGenGenerationData(settings, model, finalPrompt = null, | ||
| 1756 | 1756 | |
| 1757 | 1757 | if (settings.type === KOBOLDCPP) { |
| 1758 | 1758 | params.grammar = settings.grammar_string || undefined; |
| 1759 | + params.grammar_retain_state = (settings.grammar_string && !!isContinue) ? true : undefined; | |
| 1759 | 1760 | params.trim_stop = true; |
| 1760 | 1761 | params.dry_sequence_breakers = params.parseSequenceBreakers(); |
| 1761 | 1762 | } |