From 288be3fbd8a63cc82fb72c7da10c6a073d8c714a Mon Sep 17 00:00:00 2001 From: StyleZhang Date: Fri, 27 Sep 2024 10:30:36 +0800 Subject: [PATCH] fix: chat message end --- .../components/base/chat/chat/check-input-forms-hooks.ts | 2 -- web/app/components/base/chat/chat/hooks.ts | 5 +++-- web/app/components/base/chat/chat/type.ts | 2 ++ .../components/workflow/panel/debug-and-preview/hooks.ts | 6 +++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/web/app/components/base/chat/chat/check-input-forms-hooks.ts b/web/app/components/base/chat/chat/check-input-forms-hooks.ts index 1b246cc51e..bf6dd6f26a 100644 --- a/web/app/components/base/chat/chat/check-input-forms-hooks.ts +++ b/web/app/components/base/chat/chat/check-input-forms-hooks.ts @@ -14,8 +14,6 @@ export const useCheckInputsForms = () => { let fileIsUploading = false const requiredVars = inputsForm.filter(({ required }) => required) - console.log(inputs, inputsForm, 'inputs, inputsForm') - if (requiredVars?.length) { requiredVars.forEach(({ variable, label, type }) => { if (hasEmptyInput) diff --git a/web/app/components/base/chat/chat/hooks.ts b/web/app/components/base/chat/chat/hooks.ts index d392f807ee..fa923ca009 100644 --- a/web/app/components/base/chat/chat/hooks.ts +++ b/web/app/components/base/chat/chat/hooks.ts @@ -416,6 +416,8 @@ export const useChat = ( return } responseItem.citation = messageEnd.metadata?.retriever_resources || [] + const processedFilesFromResponse = getProcessedFilesFromResponse(messageEnd.files || []) + responseItem.allFiles = uniqBy([...(responseItem.allFiles || []), ...(processedFilesFromResponse || [])], 'id') const newListWithAnswer = produce( chatListRef.current.filter(item => item.id !== responseItem.id && item.id !== placeholderAnswerId), @@ -520,8 +522,6 @@ export const useChat = ( return item.node_id === data.node_id && (item.execution_metadata?.parallel_id === data.execution_metadata.parallel_id) }) responseItem.workflowProcess!.tracing[currentIndex] = data as any - const processedFilesFromResponse = getProcessedFilesFromResponse(data.files || []) - responseItem.allFiles = uniqBy([...(responseItem.allFiles || []), ...(processedFilesFromResponse || [])], 'id') handleUpdateChatList(produce(chatListRef.current, (draft) => { const currentIndex = draft.findIndex(item => item.id === responseItem.id) draft[currentIndex] = { @@ -552,6 +552,7 @@ export const useChat = ( params.token, params.appId, pathname, + formSettings, ]) const handleAnnotationEdited = useCallback((query: string, answer: string, index: number) => { diff --git a/web/app/components/base/chat/chat/type.ts b/web/app/components/base/chat/chat/type.ts index cbafd11d6f..365c38c790 100644 --- a/web/app/components/base/chat/chat/type.ts +++ b/web/app/components/base/chat/chat/type.ts @@ -3,6 +3,7 @@ import type { Annotation, MessageRating } from '@/models/log' import type { VisionFile } from '@/types/app' import type { FileEntity } from '@/app/components/base/file-uploader/types' import type { InputVarType } from '@/app/components/workflow/types' +import type { FileResponse } from '@/types/workflow' export type MessageMore = { time: string @@ -114,6 +115,7 @@ export type Metadata = { export type MessageEnd = { id: string metadata: Metadata + files?: FileResponse[] } export type MessageReplace = { diff --git a/web/app/components/workflow/panel/debug-and-preview/hooks.ts b/web/app/components/workflow/panel/debug-and-preview/hooks.ts index 0418d19fd7..58a4561e2c 100644 --- a/web/app/components/workflow/panel/debug-and-preview/hooks.ts +++ b/web/app/components/workflow/panel/debug-and-preview/hooks.ts @@ -274,6 +274,8 @@ export const useChat = ( }, onMessageEnd: (messageEnd) => { responseItem.citation = messageEnd.metadata?.retriever_resources || [] + const processedFilesFromResponse = getProcessedFilesFromResponse(messageEnd.files || []) + responseItem.allFiles = uniqBy([...(responseItem.allFiles || []), ...(processedFilesFromResponse || [])], 'id') const newListWithAnswer = produce( chatListRef.current.filter(item => item.id !== responseItem.id && item.id !== placeholderAnswerId), @@ -386,8 +388,6 @@ export const useChat = ( : {}), ...data, } as any - const processedFilesFromResponse = getProcessedFilesFromResponse(data.files || []) - responseItem.allFiles = uniqBy([...(responseItem.allFiles || []), ...(processedFilesFromResponse || [])], 'id') handleUpdateChatList(produce(chatListRef.current, (draft) => { const currentIndex = draft.findIndex(item => item.id === responseItem.id) draft[currentIndex] = { @@ -398,7 +398,7 @@ export const useChat = ( }, }, ) - }, [handleRun, handleResponding, handleUpdateChatList, notify, t, updateCurrentQA, config.suggested_questions_after_answer?.enabled]) + }, [handleRun, handleResponding, handleUpdateChatList, notify, t, updateCurrentQA, config.suggested_questions_after_answer?.enabled, formSettings]) return { conversationId: conversationId.current,