mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-27 19:00:37 +03:00
add returnJSONStr
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { ICommonObject, INode, INodeData, INodeParams, PromptTemplate } from '../../../src/Interface'
|
||||
import { getBaseClasses, getInputVariables } from '../../../src/utils'
|
||||
import { getBaseClasses, getInputVariables, returnJSONStr } from '../../../src/utils'
|
||||
import { PromptTemplateInput } from 'langchain/prompts'
|
||||
|
||||
class PromptTemplate_Prompts implements INode {
|
||||
@@ -46,11 +46,12 @@ class PromptTemplate_Prompts implements INode {
|
||||
|
||||
async init(nodeData: INodeData): Promise<any> {
|
||||
const template = nodeData.inputs?.template as string
|
||||
const promptValuesStr = nodeData.inputs?.promptValues as string
|
||||
let promptValuesStr = nodeData.inputs?.promptValues as string
|
||||
|
||||
let promptValues: ICommonObject = {}
|
||||
if (promptValuesStr) {
|
||||
promptValues = JSON.parse(promptValuesStr.replace(/\s/g, ''))
|
||||
promptValuesStr = promptValuesStr.replace(/\s/g, '')
|
||||
promptValues = JSON.parse(returnJSONStr(promptValuesStr))
|
||||
}
|
||||
|
||||
const inputVariables = getInputVariables(template)
|
||||
|
||||
@@ -234,3 +234,55 @@ export class CustomChainHandler extends BaseCallbackHandler {
|
||||
this.socketIO.to(this.socketIOClientId).emit('end')
|
||||
}
|
||||
}
|
||||
|
||||
export const returnJSONStr = (jsonStr: string): string => {
|
||||
let jsonStrArray = jsonStr.split(':')
|
||||
// jsonStrArray = jsonStrArray.split('"')
|
||||
console.log(`jsonStrArray: ${JSON.stringify(jsonStrArray)} length: ${jsonStrArray.length}`)
|
||||
|
||||
let wholeString = ''
|
||||
for (let i = 0; i < jsonStrArray.length; i++) {
|
||||
// console.log(`element: ${jsonStrArray[i]}`)
|
||||
if (jsonStrArray[i].includes(',') && jsonStrArray[i + 1] !== undefined) {
|
||||
const splitValueAndTitle = jsonStrArray[i].split(',')
|
||||
const value = splitValueAndTitle[0]
|
||||
const newTitle = splitValueAndTitle[1]
|
||||
wholeString += handleEscapeDoubleQuote(value) + ',' + newTitle + ':'
|
||||
} else {
|
||||
wholeString += wholeString === '' ? jsonStrArray[i] + ':' : handleEscapeDoubleQuote(jsonStrArray[i])
|
||||
}
|
||||
}
|
||||
console.log(`wholeString: ${wholeString}`)
|
||||
return wholeString
|
||||
}
|
||||
|
||||
const handleEscapeDoubleQuote = (value: string): string => {
|
||||
console.log(`value: ${value}`)
|
||||
let newValue = ''
|
||||
if (value.includes('"')) {
|
||||
const valueArray = value.split('"')
|
||||
for (let i = 0; i < valueArray.length; i++) {
|
||||
if ((i + 1) % 2 !== 0) {
|
||||
switch (valueArray[i]) {
|
||||
case '':
|
||||
console.log(`nothing`)
|
||||
newValue += '"'
|
||||
break
|
||||
case '}':
|
||||
console.log(`}`)
|
||||
newValue += '"}'
|
||||
break
|
||||
default:
|
||||
console.log(`default`)
|
||||
newValue += '\\"' + valueArray[i] + '\\"'
|
||||
}
|
||||
} else {
|
||||
newValue += valueArray[i]
|
||||
}
|
||||
|
||||
console.log(`valueArray[i]: ${valueArray[i]}`)
|
||||
console.log(`newValue: ${newValue}`)
|
||||
}
|
||||
}
|
||||
return newValue === '' ? value : newValue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user