mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 11:00:55 +03:00
Merge branch 'FlowiseAI:main' into patch-6
This commit is contained in:
@@ -1371,13 +1371,12 @@ export class App {
|
||||
}
|
||||
templates.push(template)
|
||||
})
|
||||
const FlowiseDocsQnA = templates.find((tmp) => tmp.name === 'Flowise Docs QnA')
|
||||
const FlowiseDocsQnAIndex = templates.findIndex((tmp) => tmp.name === 'Flowise Docs QnA')
|
||||
if (FlowiseDocsQnA && FlowiseDocsQnAIndex > 0) {
|
||||
templates.splice(FlowiseDocsQnAIndex, 1)
|
||||
templates.unshift(FlowiseDocsQnA)
|
||||
const sortedTemplates = templates.sort((a, b) => a.templateName.localeCompare(b.templateName))
|
||||
const FlowiseDocsQnAIndex = sortedTemplates.findIndex((tmp) => tmp.templateName === 'Flowise Docs QnA')
|
||||
if (FlowiseDocsQnAIndex > 0) {
|
||||
sortedTemplates.unshift(sortedTemplates.splice(FlowiseDocsQnAIndex, 1)[0])
|
||||
}
|
||||
return res.json(templates.sort((a, b) => a.templateName.localeCompare(b.templateName)))
|
||||
return res.json(sortedTemplates)
|
||||
})
|
||||
|
||||
// ----------------------------------------
|
||||
@@ -1534,7 +1533,7 @@ export class App {
|
||||
if (!chatflow) return `Chatflow ${chatflowid} not found`
|
||||
|
||||
const uploadAllowedNodes = ['llmChain', 'conversationChain', 'mrklAgentChat', 'conversationalAgent']
|
||||
const uploadProcessingNodes = ['chatOpenAI']
|
||||
const uploadProcessingNodes = ['chatOpenAI', 'chatAnthropic']
|
||||
|
||||
const flowObj = JSON.parse(chatflow.flowData)
|
||||
const imgUploadSizeAndTypes: IUploadFileSizeAndTypes[] = []
|
||||
@@ -1653,6 +1652,8 @@ export class App {
|
||||
const newChatMessage = new ChatMessage()
|
||||
Object.assign(newChatMessage, chatMessage)
|
||||
|
||||
if (!newChatMessage.createdDate) newChatMessage.createdDate = new Date()
|
||||
|
||||
const chatmessage = this.AppDataSource.getRepository(ChatMessage).create(newChatMessage)
|
||||
return await this.AppDataSource.getRepository(ChatMessage).save(chatmessage)
|
||||
}
|
||||
|
||||
@@ -533,11 +533,45 @@ export const getVariableValue = (
|
||||
variableDict[`{{${variableFullPath}}}`] = handleEscapeCharacters(convertChatHistoryToText(chatHistory), false)
|
||||
}
|
||||
|
||||
// Split by first occurrence of '.' to get just nodeId
|
||||
const [variableNodeId, _] = variableFullPath.split('.')
|
||||
// Resolve values with following case.
|
||||
// 1: <variableNodeId>.data.instance
|
||||
// 2: <variableNodeId>.data.instance.pathtokey
|
||||
const variableFullPathParts = variableFullPath.split('.')
|
||||
const variableNodeId = variableFullPathParts[0]
|
||||
const executedNode = reactFlowNodes.find((nd) => nd.id === variableNodeId)
|
||||
if (executedNode) {
|
||||
const variableValue = get(executedNode.data, 'instance')
|
||||
let variableValue = get(executedNode.data, 'instance')
|
||||
|
||||
// Handle path such as `<variableNodeId>.data.instance.key`
|
||||
if (variableFullPathParts.length > 3) {
|
||||
let variableObj = null
|
||||
switch (typeof variableValue) {
|
||||
case 'string': {
|
||||
const unEscapedVariableValue = handleEscapeCharacters(variableValue, true)
|
||||
if (unEscapedVariableValue.startsWith('{') && unEscapedVariableValue.endsWith('}')) {
|
||||
try {
|
||||
variableObj = JSON.parse(unEscapedVariableValue)
|
||||
} catch (e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
case 'object': {
|
||||
variableObj = variableValue
|
||||
break
|
||||
}
|
||||
default:
|
||||
break
|
||||
}
|
||||
if (variableObj) {
|
||||
variableObj = get(variableObj, variableFullPathParts.slice(3))
|
||||
variableValue = handleEscapeCharacters(
|
||||
typeof variableObj === 'object' ? JSON.stringify(variableObj) : variableObj,
|
||||
false
|
||||
)
|
||||
}
|
||||
}
|
||||
if (isAcceptVariable) {
|
||||
variableDict[`{{${variableFullPath}}}`] = variableValue
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user