diff --git a/web/src/components/svg-icon.tsx b/web/src/components/svg-icon.tsx index 8931a292f..3f97bf0d0 100644 --- a/web/src/components/svg-icon.tsx +++ b/web/src/components/svg-icon.tsx @@ -65,6 +65,27 @@ const SvgIcon = memo( }, ); +SvgIcon.displayName = 'SvgIcon'; + +const themeIcons = [ + LLMFactory.FishAudio, + LLMFactory.TogetherAI, + LLMFactory.Meituan, + LLMFactory.Longcat, + LLMFactory.MinerU, +]; + +const svgIcons = [ + LLMFactory.LocalAI, + // LLMFactory.VolcEngine, + // LLMFactory.MiniMax, + LLMFactory.Gemini, + LLMFactory.StepFun, + LLMFactory.MinerU, + LLMFactory.PaddleOCR, + // LLMFactory.DeerAPI, +]; + export const LlmIcon = ({ name, height = 48, @@ -79,14 +100,7 @@ export const LlmIcon = ({ imgClass?: string; }) => { const isDark = useIsDarkTheme(); - const themeIcons = [ - LLMFactory.FishAudio, - LLMFactory.TogetherAI, - LLMFactory.Meituan, - LLMFactory.Longcat, - LLMFactory.MinerU, - ]; - let icon = useMemo(() => { + const icon = useMemo(() => { const icontemp = IconMap[name as keyof typeof IconMap]; if (themeIcons.includes(name as LLMFactory)) { if (isDark) { @@ -98,16 +112,6 @@ export const LlmIcon = ({ return icontemp; }, [name, isDark]); - const svgIcons = [ - LLMFactory.LocalAI, - // LLMFactory.VolcEngine, - // LLMFactory.MiniMax, - LLMFactory.Gemini, - LLMFactory.StepFun, - LLMFactory.MinerU, - LLMFactory.PaddleOCR, - // LLMFactory.DeerAPI, - ]; if (svgIcons.includes(name as LLMFactory)) { return ( { }); }, []); + const addPrologue = useCallback((prologue: string) => { + setDerivedMessages((pre) => { + if (pre.length > 0) { + return [ + { + ...pre[0], + content: prologue, + }, + ...pre.slice(1), + ]; + } + + return [ + { + role: MessageType.Assistant, + content: prologue, + id: buildMessageUuid({ + role: MessageType.Assistant, + }), + }, + ]; + }); + }, []); + const removeLatestMessage = useCallback(() => { setDerivedMessages((pre) => { const nextMessages = pre?.slice(0, -2) ?? []; @@ -607,6 +631,7 @@ export const useSelectDerivedMessages = () => { removeAllMessages, scrollToBottom, removeAllMessagesExceptFirst, + addPrologue, }; }; diff --git a/web/src/pages/agent/chat/use-send-agent-message.ts b/web/src/pages/agent/chat/use-send-agent-message.ts index 186f3ac29..a40c08740 100644 --- a/web/src/pages/agent/chat/use-send-agent-message.ts +++ b/web/src/pages/agent/chat/use-send-agent-message.ts @@ -243,6 +243,7 @@ export const useSendAgentMessage = ({ removeAllMessages, removeAllMessagesExceptFirst, scrollToBottom, + addPrologue, } = useSelectDerivedMessages(); const { addEventList: addEventListFun } = useContext(AgentChatLogContext); const { @@ -417,12 +418,11 @@ export const useSendAgentMessage = ({ return; } if (prologue) { - addNewestOneAnswer({ - answer: prologue, - }); + addPrologue(prologue); } }, [ addNewestOneAnswer, + addPrologue, agentId, isTaskMode, prologue,