chat error

This commit is contained in:
StyleZhang 2024-04-02 12:01:12 +08:00
parent 396a3e0456
commit 9d7ab0400d
4 changed files with 21 additions and 6 deletions

View File

@ -17,7 +17,7 @@ const BasicContent: FC<BasicContentProps> = ({
if (annotation?.logAnnotation)
return <Markdown content={annotation?.logAnnotation.content || ''} />
return <Markdown content={content} />
return <Markdown content={content} className={`${item.isError && '!text-[#F04438]'}`} />
}
export default memo(BasicContent)

View File

@ -57,6 +57,7 @@ export type WorkflowProcess = {
}
export type ChatItem = IChatItem & {
isError?: boolean
workflowProcess?: WorkflowProcess
}

View File

@ -225,11 +225,25 @@ export const useChat = (
questionItem,
})
},
async onCompleted(hasError?: boolean) {
async onCompleted(hasError?: boolean, errorMessage?: string) {
handleResponding(false)
if (hasError)
if (hasError) {
if (errorMessage) {
responseItem.content = errorMessage
responseItem.isError = true
const newListWithAnswer = produce(
chatListRef.current.filter(item => item.id !== responseItem.id && item.id !== placeholderAnswerId),
(draft) => {
if (!draft.find(item => item.id === questionId))
draft.push({ ...questionItem })
draft.push({ ...responseItem })
})
handleUpdateChatList(newListWithAnswer)
}
return
}
if (config?.suggested_questions_after_answer?.enabled && !hasStopResponded.current && onGetSuggestedQuestions) {
const { data }: any = await onGetSuggestedQuestions(

View File

@ -44,7 +44,7 @@ export type IOnFile = (file: VisionFile) => void
export type IOnMessageEnd = (messageEnd: MessageEnd) => void
export type IOnMessageReplace = (messageReplace: MessageReplace) => void
export type IOnAnnotationReply = (messageReplace: AnnotationReply) => void
export type IOnCompleted = (hasError?: boolean) => void
export type IOnCompleted = (hasError?: boolean, errorMessage?: string) => void
export type IOnError = (msg: string, code?: string) => void
export type IOnWorkflowStarted = (workflowStarted: WorkflowStartedResponse) => void
@ -159,7 +159,7 @@ const handleStream = (
errorCode: bufferObj?.code,
})
hasError = true
onCompleted?.(true)
onCompleted?.(true, bufferObj?.message)
return
}
if (bufferObj.event === 'message' || bufferObj.event === 'agent_message') {
@ -212,7 +212,7 @@ const handleStream = (
errorMessage: `${e}`,
})
hasError = true
onCompleted?.(true)
onCompleted?.(true, e as string)
return
}
if (!hasError)