This commit is contained in:
hailin 2025-05-29 20:34:59 +08:00
parent fa170db990
commit b7941a45b9
1 changed files with 15 additions and 4 deletions

View File

@ -314,15 +314,26 @@ export const Message: FC<MessageProps> = ({
(() => {
const [showThink, setShowThink] = useState(false)
// 动态提取 <think> 内容块
const thinkMatch = message.content.match(/<think>([\s\S]*?)<\/think>/i)
const thinkContent = thinkMatch?.[1] || ""
const visibleContent = message.content.replace(/<think>[\s\S]*?<\/think>/i, "").trim()
// 思考区域(如果匹配到了)
const thinkContent = thinkMatch?.[1]?.trim() || ""
// 可见区域 = 原始内容去除 <think> 区域
const visibleContent = thinkMatch
? message.content.replace(thinkMatch[0], "").trim()
: message.content.trim()
return (
<div className="space-y-2">
{/* 主内容显示 */}
<MessageMarkdown content={visibleContent} />
{thinkMatch && (
{/* 有 <think> 匹配时,才展示按钮 */}
{thinkMatch && thinkContent && (
<div className="mt-2 text-sm text-muted-foreground">
<button
className="text-blue-500 hover:underline"
@ -333,7 +344,7 @@ export const Message: FC<MessageProps> = ({
{showThink && (
<div className="mt-2 rounded bg-gray-100 p-3 text-sm dark:bg-gray-800">
<MessageMarkdown content={thinkContent.trim()} />
<MessageMarkdown content={thinkContent} />
</div>
)}
</div>