fix: retry input and whisper (#785)

This commit is contained in:
Archer
2024-01-25 15:41:29 +08:00
committed by GitHub
parent 318116627c
commit 2c6dbe13d9
2 changed files with 32 additions and 38 deletions

View File

@@ -586,42 +586,6 @@ const ChatBox = (
},
[onUpdateVariable]
);
const HumanChatCard = useCallback(
({ item, index }: { item: ChatSiteItemType; index: number }) => {
return (
<>
{/* control icon */}
<Flex w={'100%'} alignItems={'center'} justifyContent={'flex-end'}>
<ChatControllerComponent
chat={item}
onDelete={
onDelMessage
? () => {
delOneMessage({ dataId: item.dataId, index });
}
: undefined
}
onRetry={useCallback(() => retryInput(index), [index])}
/>
<ChatAvatar src={userAvatar} type={'Human'} />
</Flex>
{/* content */}
<Box mt={['6px', 2]} textAlign={'right'}>
<Card
className="markdown"
{...MessageCardStyle}
bg={'primary.200'}
borderRadius={'8px 0 8px 8px'}
textAlign={'left'}
>
<Markdown source={item.value} isChatting={false} />
</Card>
</Box>
</>
);
},
[]
);
return (
<Flex flexDirection={'column'} h={'100%'}>
@@ -645,7 +609,37 @@ const ChatBox = (
<Box id={'history'}>
{chatHistory.map((item, index) => (
<Box key={item.dataId} py={5}>
{item.obj === 'Human' && <HumanChatCard item={item} index={index} />}
{item.obj === 'Human' && (
<>
{/* control icon */}
<Flex w={'100%'} alignItems={'center'} justifyContent={'flex-end'}>
<ChatControllerComponent
chat={item}
onDelete={
onDelMessage
? () => {
delOneMessage({ dataId: item.dataId, index });
}
: undefined
}
onRetry={() => retryInput(index)}
/>
<ChatAvatar src={userAvatar} type={'Human'} />
</Flex>
{/* content */}
<Box mt={['6px', 2]} textAlign={'right'}>
<Card
className="markdown"
{...MessageCardStyle}
bg={'primary.200'}
borderRadius={'8px 0 8px 8px'}
textAlign={'left'}
>
<Markdown source={item.value} isChatting={false} />
</Card>
</Box>
</>
)}
{item.obj === 'AI' && (
<>
<Flex w={'100%'} alignItems={'center'}>

View File

@@ -78,7 +78,7 @@ export const useSpeech = (props?: { shareId?: string }) => {
const duration = Math.round((Date.now() - startTimestamp.current) / 1000);
formData.append('files', blob, 'recording.webm');
formData.append('file', blob, 'recording.webm');
formData.append('metadata', JSON.stringify({ duration, shareId }));
setIsTransCription(true);