fix: workflow chat preview (#13455)

pull/13460/head
zxhlyh 1 year ago committed by GitHub
parent 4a43e165fb
commit aa3dc9002c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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

Loading…
Cancel
Save