import { MessageType } from '@/constants/chat'; import { useGetFileIcon } from '@/pages/chat/hooks'; import { Spin } from 'antd'; import { useSendNextMessage } from './hooks'; import MessageInput from '@/components/message-input'; import MessageItem from '@/components/next-message-item'; import PdfDrawer from '@/components/pdf-drawer'; import { useClickDrawer } from '@/components/pdf-drawer/hooks'; import { useFetchAgent } from '@/hooks/use-agent-request'; import { useFetchUserInfo } from '@/hooks/user-setting-hooks'; import { Message } from '@/interfaces/database/chat'; import { buildMessageUuidWithRole } from '@/utils/chat'; import { get } from 'lodash'; import { useCallback } from 'react'; import { useParams } from 'umi'; import DebugContent from '../debug-content'; import { BeginQuery } from '../interface'; import { buildBeginQueryWithObject } from '../utils'; const AgentChatBox = () => { const { sendLoading, handleInputChange, handlePressEnter, value, loading, ref, derivedMessages, stopOutputMessage, sendFormMessage, findReferenceByMessageId, } = useSendNextMessage(); const { visible, hideModal, documentId, selectedChunk, clickDocumentButton } = useClickDrawer(); useGetFileIcon(); const { data: userInfo } = useFetchUserInfo(); const { data: canvasInfo } = useFetchAgent(); const { id: canvasId } = useParams(); const getInputs = useCallback((message: Message) => { return get(message, 'data.inputs', {}) as Record; }, []); const buildInputList = useCallback( (message: Message) => { return Object.entries(getInputs(message)).map(([key, val]) => { return { ...val, key, }; }); }, [getInputs], ); const handleOk = useCallback( (message: Message) => (values: BeginQuery[]) => { const inputs = getInputs(message); const nextInputs = buildBeginQueryWithObject(inputs, values); sendFormMessage({ inputs: nextInputs, id: canvasId, }); }, [canvasId, getInputs, sendFormMessage], ); return ( <>
{derivedMessages?.map((message, i) => { return ( ); })}
); }; export default AgentChatBox;