mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Add common punctuation to Erato stop strings that start with a newline #2894
This commit is contained in:
@@ -492,11 +492,32 @@ function getBadWordPermutations(text) {
|
|||||||
|
|
||||||
export function getNovelGenerationData(finalPrompt, settings, maxLength, isImpersonate, isContinue, _cfgValues, type) {
|
export function getNovelGenerationData(finalPrompt, settings, maxLength, isImpersonate, isContinue, _cfgValues, type) {
|
||||||
console.debug('NovelAI generation data for', type);
|
console.debug('NovelAI generation data for', type);
|
||||||
|
const isKayra = nai_settings.model_novel.includes('kayra');
|
||||||
|
const isErato = nai_settings.model_novel.includes('erato');
|
||||||
|
|
||||||
const tokenizerType = getTokenizerTypeForModel(nai_settings.model_novel);
|
const tokenizerType = getTokenizerTypeForModel(nai_settings.model_novel);
|
||||||
|
const stoppingStrings = getStoppingStrings(isImpersonate, isContinue);
|
||||||
|
|
||||||
|
// Llama 3 tokenizer, huh?
|
||||||
|
if (isErato) {
|
||||||
|
const additionalStopStrings = [];
|
||||||
|
for (const stoppingString of stoppingStrings) {
|
||||||
|
if (stoppingString.startsWith('\n')) {
|
||||||
|
additionalStopStrings.push('.' + stoppingString);
|
||||||
|
additionalStopStrings.push('!' + stoppingString);
|
||||||
|
additionalStopStrings.push('?' + stoppingString);
|
||||||
|
additionalStopStrings.push('*' + stoppingString);
|
||||||
|
additionalStopStrings.push('"' + stoppingString);
|
||||||
|
additionalStopStrings.push('_' + stoppingString);
|
||||||
|
additionalStopStrings.push('...' + stoppingString);
|
||||||
|
additionalStopStrings.push(')' + stoppingString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stoppingStrings.push(...additionalStopStrings);
|
||||||
|
}
|
||||||
|
|
||||||
const stopSequences = (tokenizerType !== tokenizers.NONE)
|
const stopSequences = (tokenizerType !== tokenizers.NONE)
|
||||||
? getStoppingStrings(isImpersonate, isContinue)
|
? stoppingStrings.map(t => getTextTokens(tokenizerType, t))
|
||||||
.map(t => getTextTokens(tokenizerType, t))
|
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
const badWordIds = (tokenizerType !== tokenizers.NONE)
|
const badWordIds = (tokenizerType !== tokenizers.NONE)
|
||||||
@@ -515,8 +536,6 @@ export function getNovelGenerationData(finalPrompt, settings, maxLength, isImper
|
|||||||
console.log(finalPrompt);
|
console.log(finalPrompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
const isKayra = nai_settings.model_novel.includes('kayra');
|
|
||||||
const isErato = nai_settings.model_novel.includes('erato');
|
|
||||||
|
|
||||||
if (isErato) {
|
if (isErato) {
|
||||||
finalPrompt = '<|startoftext|>' + finalPrompt;
|
finalPrompt = '<|startoftext|>' + finalPrompt;
|
||||||
|
Reference in New Issue
Block a user