fix: lorebook matches excluding dummy prefix/suffix
This commit is contained in:
@@ -55,7 +55,8 @@ export async function loadLoreBookV3Prompt(){
|
|||||||
const recursiveScanning = char.loreSettings?.recursiveScanning ?? true
|
const recursiveScanning = char.loreSettings?.recursiveScanning ?? true
|
||||||
let recursivePrompt:{
|
let recursivePrompt:{
|
||||||
prompt: string,
|
prompt: string,
|
||||||
source: string
|
source: string,
|
||||||
|
data: string
|
||||||
}[] = []
|
}[] = []
|
||||||
let matchLog:{
|
let matchLog:{
|
||||||
prompt: string,
|
prompt: string,
|
||||||
@@ -75,23 +76,27 @@ export async function loadLoreBookV3Prompt(){
|
|||||||
let mList:{
|
let mList:{
|
||||||
source:string
|
source:string
|
||||||
prompt:string
|
prompt:string
|
||||||
|
data:string
|
||||||
}[] = sliced.map((msg, i) => {
|
}[] = sliced.map((msg, i) => {
|
||||||
if(msg.role === 'user'){
|
if(msg.role === 'user'){
|
||||||
return {
|
return {
|
||||||
source: `message ${i} by user`,
|
source: `message ${i} by user`,
|
||||||
prompt: `\x01{{${DBState.db.username}}}:` + msg.data + '\x01'
|
prompt: `\x01{{${DBState.db.username}}}:` + msg.data + '\x01',
|
||||||
|
data: msg.data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return {
|
return {
|
||||||
source: `message ${i} by char`,
|
source: `message ${i} by char`,
|
||||||
prompt: `\x01{{${msg.name ?? (msg.saying ? findCharacterbyId(msg.saying)?.name : null) ?? char.name}}}:` + msg.data + '\x01'
|
prompt: `\x01{{${msg.name ?? (msg.saying ? findCharacterbyId(msg.saying)?.name : null) ?? char.name}}}:` + msg.data + '\x01',
|
||||||
|
data: msg.data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).concat(recursivePrompt.map((msg) => {
|
}).concat(recursivePrompt.map((msg) => {
|
||||||
return {
|
return {
|
||||||
source: 'lorebook ' + msg.source,
|
source: 'lorebook ' + msg.source,
|
||||||
prompt: msg.prompt
|
prompt: msg.prompt,
|
||||||
|
data: msg.data
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
@@ -106,7 +111,7 @@ export async function loadLoreBookV3Prompt(){
|
|||||||
arg.keys[0] = regexString.replace('/'+regexFlag,'')
|
arg.keys[0] = regexString.replace('/'+regexFlag,'')
|
||||||
try {
|
try {
|
||||||
const regex = new RegExp(arg.keys[0],regexFlag)
|
const regex = new RegExp(arg.keys[0],regexFlag)
|
||||||
const d = regex.test(mText.prompt)
|
const d = regex.test(mText.data)
|
||||||
if(d){
|
if(d){
|
||||||
matchLog.push({
|
matchLog.push({
|
||||||
prompt: mText.prompt,
|
prompt: mText.prompt,
|
||||||
@@ -127,7 +132,8 @@ export async function loadLoreBookV3Prompt(){
|
|||||||
mList = mList.map((m) => {
|
mList = mList.map((m) => {
|
||||||
return {
|
return {
|
||||||
source: m.source,
|
source: m.source,
|
||||||
prompt: m.prompt.toLocaleLowerCase().replace(/\{\{\/\/(.+?)\}\}/g,'').replace(/\{\{comment:(.+?)\}\}/g,'')
|
prompt: m.prompt.toLocaleLowerCase().replace(/\{\{\/\/(.+?)\}\}/g,'').replace(/\{\{comment:(.+?)\}\}/g,''),
|
||||||
|
data: m.data.toLocaleLowerCase().replace(/\{\{\/\/(.+?)\}\}/g,'').replace(/\{\{comment:(.+?)\}\}/g,'')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -135,7 +141,7 @@ export async function loadLoreBookV3Prompt(){
|
|||||||
let allModeMatched = true
|
let allModeMatched = true
|
||||||
|
|
||||||
for(const m of mList){
|
for(const m of mList){
|
||||||
let mText = m.prompt
|
let mText = m.data
|
||||||
if(arg.fullWordMatching){
|
if(arg.fullWordMatching){
|
||||||
const splited = mText.split(' ')
|
const splited = mText.split(' ')
|
||||||
for(const key of arg.keys){
|
for(const key of arg.keys){
|
||||||
|
|||||||
Reference in New Issue
Block a user