This commit is contained in:
parent
fa170db990
commit
b7941a45b9
|
|
@ -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 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 (
|
return (
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
|
{/* 主内容显示 */}
|
||||||
<MessageMarkdown content={visibleContent} />
|
<MessageMarkdown content={visibleContent} />
|
||||||
|
|
||||||
{thinkMatch && (
|
{/* 有 <think> 匹配时,才展示按钮 */}
|
||||||
|
{thinkMatch && thinkContent && (
|
||||||
<div className="mt-2 text-sm text-muted-foreground">
|
<div className="mt-2 text-sm text-muted-foreground">
|
||||||
<button
|
<button
|
||||||
className="text-blue-500 hover:underline"
|
className="text-blue-500 hover:underline"
|
||||||
|
|
@ -333,7 +344,7 @@ export const Message: FC<MessageProps> = ({
|
||||||
|
|
||||||
{showThink && (
|
{showThink && (
|
||||||
<div className="mt-2 rounded bg-gray-100 p-3 text-sm dark:bg-gray-800">
|
<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>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue