Feat: Add agent log-sheet in cavas and log-sheet in share's page (#9072)

### What problem does this PR solve?

Feat: Add agent log-sheet in cavas and log-sheet in share's page #3221 

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
chanx
2025-07-28 16:48:46 +08:00
committed by GitHub
parent cc0227cf6e
commit 381f9df941
12 changed files with 520 additions and 256 deletions

View File

@ -1,4 +1,5 @@
import { SharedFrom } from '@/constants/chat';
import { IEventList } from '@/hooks/use-send-message';
import { useSendAgentMessage } from '@/pages/agent/chat/use-send-agent-message';
import trim from 'lodash/trim';
import { useSearchParams } from 'umi';
@ -27,14 +28,16 @@ export const useGetSharedChatSearchParams = () => {
};
};
export function useSendNextSharedMessage() {
export const useSendNextSharedMessage = (
addEventList: (data: IEventList, messageId: string) => void,
) => {
const { from, sharedId: conversationId } = useGetSharedChatSearchParams();
const url = `/api/v1/${from === SharedFrom.Agent ? 'agentbots' : 'chatbots'}/${conversationId}/completions`;
const ret = useSendAgentMessage(url);
const ret = useSendAgentMessage(url, addEventList);
return {
...ret,
hasError: false,
};
}
};

View File

@ -11,6 +11,7 @@ import {
} from '@/hooks/use-agent-request';
import { cn } from '@/lib/utils';
import i18n from '@/locales/config';
import { useCacheChatLog } from '@/pages/agent/hooks/use-cache-chat-log';
import { useSendButtonDisabled } from '@/pages/chat/hooks';
import { buildMessageUuidWithRole } from '@/utils/chat';
import React, { forwardRef, useCallback, useMemo } from 'react';
@ -31,7 +32,13 @@ const ChatContainer = () => {
const { uploadCanvasFile, loading } =
useUploadCanvasFileWithProgress(conversationId);
const {
addEventList,
setCurrentMessageId,
currentEventListWithoutMessageById,
clearEventList,
currentMessageId,
} = useCacheChatLog();
const {
handlePressEnter,
handleInputChange,
@ -43,9 +50,22 @@ const ChatContainer = () => {
stopOutputMessage,
findReferenceByMessageId,
appendUploadResponseList,
} = useSendNextSharedMessage();
} = useSendNextSharedMessage(addEventList);
const sendDisabled = useSendButtonDisabled(value);
// useEffect(() => {
// if (derivedMessages.length) {
// const derivedMessagesFilter = derivedMessages.filter(
// (message) => message.role === MessageType.Assistant,
// );
// if (derivedMessagesFilter.length) {
// const message = derivedMessagesFilter[derivedMessagesFilter.length - 1];
// setCurrentMessageId(message.id);
// }
// }
// }, [derivedMessages, setCurrentMessageId]);
const useFetchAvatar = useMemo(() => {
return from === SharedFrom.Agent
? useFetchAgentAvatar
@ -81,6 +101,11 @@ const ChatContainer = () => {
return (
<MessageItem
visibleAvatar={visibleAvatar}
conversationId={conversationId}
currentEventListWithoutMessageById={
currentEventListWithoutMessageById
}
setCurrentMessageId={setCurrentMessageId}
key={buildMessageUuidWithRole(message)}
avatarDialog={avatarData.avatar}
item={message}
@ -103,7 +128,6 @@ const ChatContainer = () => {
</div>
<div ref={ref} />
</div>
<NextMessageInput
isShared
value={value}