| 492 | | 492 | |
| 493 | export function getNovelGenerationData(finalPrompt, settings, maxLength, isImpersonate, isContinue, _cfgValues, type) { | 493 | export function getNovelGenerationData(finalPrompt, settings, maxLength, isImpersonate, isContinue, _cfgValues, type) { |
| 494 | console.debug('NovelAI generation data for', type); | 494 | console.debug('NovelAI generation data for', type); |
| | 495 | const isKayra = nai_settings.model_novel.includes('kayra'); |
| | 496 | const isErato = nai_settings.model_novel.includes('erato'); |
| 495 | | 497 | |
| 496 | const tokenizerType = getTokenizerTypeForModel(nai_settings.model_novel); | 498 | const tokenizerType = getTokenizerTypeForModel(nai_settings.model_novel); |
| | 499 | const stoppingStrings = getStoppingStrings(isImpersonate, isContinue); |
| | 500 | |
| | 501 | // Llama 3 tokenizer, huh? |
| | 502 | if (isErato) { |
| | 503 | const additionalStopStrings = []; |
| | 504 | for (const stoppingString of stoppingStrings) { |
| | 505 | if (stoppingString.startsWith('\n')) { |
| | 506 | additionalStopStrings.push('.' + stoppingString); |
| | 507 | additionalStopStrings.push('!' + stoppingString); |
| | 508 | additionalStopStrings.push('?' + stoppingString); |
| | 509 | additionalStopStrings.push('*' + stoppingString); |
| | 510 | additionalStopStrings.push('"' + stoppingString); |
| | 511 | additionalStopStrings.push('_' + stoppingString); |
| | 512 | additionalStopStrings.push('...' + stoppingString); |
| | 513 | additionalStopStrings.push(')' + stoppingString); |
| | 514 | } |
| | 515 | } |
| | 516 | stoppingStrings.push(...additionalStopStrings); |
| | 517 | } |
| | 518 | |
| 497 | const stopSequences = (tokenizerType !== tokenizers.NONE) | 519 | const stopSequences = (tokenizerType !== tokenizers.NONE) |
| 498 | ? getStoppingStrings(isImpersonate, isContinue) | 520 | ? stoppingStrings.map(t => getTextTokens(tokenizerType, t)) |
| 499 | .map(t => getTextTokens(tokenizerType, t)) | | |
| 500 | : undefined; | 521 | : undefined; |
| 501 | | 522 | |
| 502 | const badWordIds = (tokenizerType !== tokenizers.NONE) | 523 | const badWordIds = (tokenizerType !== tokenizers.NONE) |