Refactor sequence breaker parsing in getTextGenGenerationData function
| @@ -1338,6 +1338,16 @@ export async function getTextGenGenerationData(finalPrompt, maxTokens, isImperso | |||
| 1338 | 'nsigma': settings.nsigma, | 1338 | 'nsigma': settings.nsigma, |
| 1339 | 'top_n_sigma': settings.nsigma, | 1339 | 'top_n_sigma': settings.nsigma, |
| 1340 | 'min_keep': settings.min_keep, | 1340 | 'min_keep': settings.min_keep, |
| 1341 | parseSequenceBreakers: function () { | ||
| 1342 | try { | ||
| 1343 | return JSON.parse(this.dry_sequence_breakers); | ||
| 1344 | } catch { | ||
| 1345 | if (typeof this.dry_sequence_breakers === 'string') { | ||
| 1346 | return this.dry_sequence_breakers.split(','); | ||
| 1347 | } | ||
| 1348 | return undefined; | ||
| 1349 | } | ||
| 1350 | }, | ||
| 1341 | }; | 1351 | }; |
| 1342 | const nonAphroditeParams = { | 1352 | const nonAphroditeParams = { |
| 1343 | 'rep_pen': settings.rep_pen, | 1353 | 'rep_pen': settings.rep_pen, |
| @@ -1439,17 +1449,7 @@ export async function getTextGenGenerationData(finalPrompt, maxTokens, isImperso | |||
| 1439 | params.dynatemp_max = params.dynatemp_high; | 1449 | params.dynatemp_max = params.dynatemp_high; |
| 1440 | delete params.dynatemp_low; | 1450 | delete params.dynatemp_low; |
| 1441 | delete params.dynatemp_high; | 1451 | delete params.dynatemp_high; |
| 1442 | const sequenceBreakers = (() => { | 1452 | params.dry_sequence_breakers = params.parseSequenceBreakers(); |
| 1443 | try { | ||
| 1444 | return JSON.parse(params.dry_sequence_breakers); | ||
| 1445 | } catch { | ||
| 1446 | if (typeof params.dry_sequence_breakers === 'string') { | ||
| 1447 | return params.dry_sequence_breakers.split(','); | ||
| 1448 | } | ||
| 1449 | return undefined; | ||
| 1450 | } | ||
| 1451 | })(); | ||
| 1452 | params.dry_sequence_breakers = sequenceBreakers; | ||
| 1453 | } | 1453 | } |
| 1454 | 1454 | ||
| 1455 | if (settings.type === TABBY) { | 1455 | if (settings.type === TABBY) { |
| @@ -1485,17 +1485,7 @@ export async function getTextGenGenerationData(finalPrompt, maxTokens, isImperso | |||
| 1485 | : []; | 1485 | : []; |
| 1486 | const tokenBans = toIntArray(banned_tokens); | 1486 | const tokenBans = toIntArray(banned_tokens); |
| 1487 | logitBiasArray.push(...tokenBans.map(x => [Number(x), false])); | 1487 | logitBiasArray.push(...tokenBans.map(x => [Number(x), false])); |
| 1488 | const sequenceBreakers = (() => { | 1488 | const sequenceBreakers = params.parseSequenceBreakers(); |
| 1489 | try { | ||
| 1490 | return JSON.parse(params.dry_sequence_breakers); | ||
| 1491 | } catch { | ||
| 1492 | if (typeof params.dry_sequence_breakers === 'string') { | ||
| 1493 | return params.dry_sequence_breakers.split(','); | ||
| 1494 | } | ||
| 1495 | |||
| 1496 | return undefined; | ||
| 1497 | } | ||
| 1498 | })(); | ||
| 1499 | const llamaCppParams = { | 1489 | const llamaCppParams = { |
| 1500 | 'logit_bias': logitBiasArray, | 1490 | 'logit_bias': logitBiasArray, |
| 1501 | // Conflicts with ooba's grammar_string | 1491 | // Conflicts with ooba's grammar_string |