diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index dbb91ed..d589823 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -1423,6 +1423,19 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF // 使用清理后的消息 const cleanedMessage = { ...message, parts: cleanedParts }; + const assistantTextParts = message.role === "assistant" + ? cleanedParts.filter((part: any) => part.type === "text" && part.text) + : []; + const hasAssistantImages = assistantTextParts.some((part: any) => + extractImageUrls(part.text || "").length > 0 + ); + const hasAssistantText = assistantTextParts.some((part: any) => { + const textWithoutImages = (part.text || "") + .replace(/!\[(?:thumb)?\|\|\|[^|]+\|\|\|[^\]]*\]\([^)]+\)/g, "") + .trim(); + return textWithoutImages.length > 0; + }); + const isImageOnlyAssistant = message.role === "assistant" && hasAssistantImages && !hasAssistantText; return (