Feat: Interrupt streaming #6515 (#6723)

### What problem does this PR solve?

Feat: Interrupt streaming #6515
### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2025-04-01 17:26:54 +08:00
committed by GitHub
parent ead5f7aba9
commit 132eae9d5b
11 changed files with 86 additions and 18 deletions

View File

@ -40,6 +40,7 @@ const ChatContainer = ({ controller }: IProps) => {
handlePressEnter,
regenerateMessage,
removeMessageById,
stopOutputMessage,
} = useSendNextMessage(controller);
const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } =
@ -100,6 +101,7 @@ const ChatContainer = ({ controller }: IProps) => {
createConversationBeforeUploadDocument={
createConversationBeforeUploadDocument
}
stopOutputMessage={stopOutputMessage}
></MessageInput>
</Flex>
<PdfDrawer

View File

@ -375,6 +375,10 @@ export const useSendNextMessage = (controller: AbortController) => {
const { setConversationIsNew, getConversationIsNew } =
useSetChatRouteParams();
const stopOutputMessage = useCallback(() => {
controller.abort();
}, [controller]);
const sendMessage = useCallback(
async ({
message,
@ -490,6 +494,7 @@ export const useSendNextMessage = (controller: AbortController) => {
ref,
derivedMessages,
removeMessageById,
stopOutputMessage,
};
};

View File

@ -37,6 +37,7 @@ const ChatContainer = () => {
ref,
derivedMessages,
hasError,
stopOutputMessage,
} = useSendSharedMessage();
const sendDisabled = useSendButtonDisabled(value);
@ -105,6 +106,7 @@ const ChatContainer = () => {
sendLoading={sendLoading}
uploadMethod="external_upload_and_parse"
showUploadIcon={false}
stopOutputMessage={stopOutputMessage}
></MessageInput>
</Flex>
{visible && (

View File

@ -49,7 +49,7 @@ export const useSendSharedMessage = () => {
const { createSharedConversation: setConversation } =
useCreateNextSharedConversation();
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
const { send, answer, done } = useSendMessageWithSse(
const { send, answer, done, stopOutputMessage } = useSendMessageWithSse(
`/api/v1/${from === SharedFrom.Agent ? 'agentbots' : 'chatbots'}/${conversationId}/completions`,
);
const {
@ -144,5 +144,6 @@ export const useSendSharedMessage = () => {
loading: false,
derivedMessages,
hasError,
stopOutputMessage,
};
};