|
|
|
|
@ -30,7 +30,6 @@ import {
|
|
|
|
|
} from '@/app/components/base/file-uploader/utils'
|
|
|
|
|
import type { FileEntity } from '@/app/components/base/file-uploader/types'
|
|
|
|
|
import { getThreadMessages } from '@/app/components/base/chat/utils'
|
|
|
|
|
import type { NodeTracing } from '@/types/workflow'
|
|
|
|
|
|
|
|
|
|
type GetAbortController = (abortController: AbortController) => void
|
|
|
|
|
type SendCallback = {
|
|
|
|
|
@ -359,21 +358,7 @@ export const useChat = (
|
|
|
|
|
responseItem.workflowProcess!.tracing!.push({
|
|
|
|
|
...data,
|
|
|
|
|
status: NodeRunningStatus.Running,
|
|
|
|
|
details: [],
|
|
|
|
|
} as any)
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onIterationNext: ({ data }) => {
|
|
|
|
|
const tracing = responseItem.workflowProcess!.tracing!
|
|
|
|
|
const iterations = tracing.find(item => item.node_id === data.node_id
|
|
|
|
|
&& (item.execution_metadata?.parallel_id === data.execution_metadata?.parallel_id || item.parallel_id === data.execution_metadata?.parallel_id))!
|
|
|
|
|
iterations.details!.push([])
|
|
|
|
|
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
@ -382,20 +367,19 @@ export const useChat = (
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onIterationFinish: ({ data }) => {
|
|
|
|
|
const tracing = responseItem.workflowProcess!.tracing!
|
|
|
|
|
const iterationsIndex = tracing.findIndex(item => item.node_id === data.node_id
|
|
|
|
|
&& (item.execution_metadata?.parallel_id === data.execution_metadata?.parallel_id || item.parallel_id === data.execution_metadata?.parallel_id))!
|
|
|
|
|
tracing[iterationsIndex] = {
|
|
|
|
|
...tracing[iterationsIndex],
|
|
|
|
|
...data,
|
|
|
|
|
status: NodeRunningStatus.Succeeded,
|
|
|
|
|
} as any
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
const currentTracingIndex = responseItem.workflowProcess!.tracing!.findIndex(item => item.id === data.id)
|
|
|
|
|
if (currentTracingIndex > -1) {
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentTracingIndex] = {
|
|
|
|
|
...responseItem.workflowProcess!.tracing[currentTracingIndex],
|
|
|
|
|
...data,
|
|
|
|
|
}
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onNodeStarted: ({ data }) => {
|
|
|
|
|
if (data.iteration_id)
|
|
|
|
|
@ -416,15 +400,7 @@ export const useChat = (
|
|
|
|
|
if (data.iteration_id)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
const currentIndex = responseItem.workflowProcess!.tracing!.findIndex((item) => {
|
|
|
|
|
if (!item.execution_metadata?.parallel_id)
|
|
|
|
|
return item.node_id === data.node_id
|
|
|
|
|
return item.node_id === data.node_id && (item.execution_metadata?.parallel_id === data.execution_metadata?.parallel_id || item.parallel_id === data.execution_metadata?.parallel_id)
|
|
|
|
|
})
|
|
|
|
|
if (responseItem.workflowProcess!.tracing[currentIndex].retryDetail)
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentIndex].retryDetail?.push(data as NodeTracing)
|
|
|
|
|
else
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentIndex].retryDetail = [data as NodeTracing]
|
|
|
|
|
responseItem.workflowProcess!.tracing!.push(data)
|
|
|
|
|
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
@ -437,26 +413,59 @@ export const useChat = (
|
|
|
|
|
if (data.iteration_id)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
const currentIndex = responseItem.workflowProcess!.tracing!.findIndex((item) => {
|
|
|
|
|
if (!item.execution_metadata?.parallel_id)
|
|
|
|
|
return item.node_id === data.node_id
|
|
|
|
|
return item.node_id === data.node_id && (item.execution_metadata?.parallel_id === data.execution_metadata?.parallel_id || item.parallel_id === data.execution_metadata?.parallel_id)
|
|
|
|
|
})
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentIndex] = {
|
|
|
|
|
...(responseItem.workflowProcess!.tracing[currentIndex]?.extras
|
|
|
|
|
? { extras: responseItem.workflowProcess!.tracing[currentIndex].extras }
|
|
|
|
|
: {}),
|
|
|
|
|
...(responseItem.workflowProcess!.tracing[currentIndex]?.retryDetail
|
|
|
|
|
? { retryDetail: responseItem.workflowProcess!.tracing[currentIndex].retryDetail }
|
|
|
|
|
: {}),
|
|
|
|
|
...data,
|
|
|
|
|
} as any
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
const currentTracingIndex = responseItem.workflowProcess!.tracing!.findIndex(item => item.id === data.id)
|
|
|
|
|
if (currentTracingIndex > -1) {
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentTracingIndex] = {
|
|
|
|
|
...responseItem.workflowProcess!.tracing[currentTracingIndex],
|
|
|
|
|
...data,
|
|
|
|
|
}
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onAgentLog: ({ data }) => {
|
|
|
|
|
const currentNodeIndex = responseItem.workflowProcess!.tracing!.findIndex(item => item.node_id === data.node_id)
|
|
|
|
|
if (currentNodeIndex > -1) {
|
|
|
|
|
const current = responseItem.workflowProcess!.tracing![currentNodeIndex]
|
|
|
|
|
|
|
|
|
|
if (current.execution_metadata) {
|
|
|
|
|
if (current.execution_metadata.agent_log) {
|
|
|
|
|
const currentLogIndex = current.execution_metadata.agent_log.findIndex(log => log.id === data.id)
|
|
|
|
|
if (currentLogIndex > -1) {
|
|
|
|
|
current.execution_metadata.agent_log[currentLogIndex] = {
|
|
|
|
|
...current.execution_metadata.agent_log[currentLogIndex],
|
|
|
|
|
...data,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
current.execution_metadata.agent_log.push(data)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
current.execution_metadata.agent_log = [data]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
current.execution_metadata = {
|
|
|
|
|
agent_log: [data],
|
|
|
|
|
} as any
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
responseItem.workflowProcess!.tracing[currentNodeIndex] = {
|
|
|
|
|
...current,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateCurrentQAOnTree({
|
|
|
|
|
placeholderQuestionId,
|
|
|
|
|
questionItem,
|
|
|
|
|
responseItem,
|
|
|
|
|
parentId: params.parent_message_id,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
|