Pārlūkot izejas kodu

fix: frontend for <think> tags conflicting with original <details> tags (#14039)

tags/1.0.0
Junjie.M pirms 8 mēnešiem
vecāks
revīzija
d96c368660
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam

+ 3
- 0
web/app/components/base/markdown-blocks/think-block.tsx Parādīt failu

const displayContent = removeEndThink(children) const displayContent = removeEndThink(children)
const { t } = useTranslation() const { t } = useTranslation()


if (!(props['data-think'] ?? false))
return (<details {...props}>{children}</details>)

return ( return (
<details {...(!isComplete && { open: true })} className="group"> <details {...(!isComplete && { open: true })} className="group">
<summary className="text-gray-500 font-bold list-none pl-2 flex items-center cursor-pointer select-none whitespace-nowrap"> <summary className="text-gray-500 font-bold list-none pl-2 flex items-center cursor-pointer select-none whitespace-nowrap">

+ 2
- 6
web/app/components/base/markdown.tsx Parādīt failu

} }


const preprocessThinkTag = (content: string) => { const preprocessThinkTag = (content: string) => {
if (!(content.trim().startsWith('<think>\n') || content.trim().startsWith('<details style=')))
return content

return flow([ return flow([
(str: string) => str.replaceAll('<think>\n', '<details>\n'),
(str: string) => str.replaceAll('\n</think>', '\n[ENDTHINKFLAG]</details>'),
(str: string) => str.replaceAll('\n</details>', '\n[ENDTHINKFLAG]</details>'),
(str: string) => str.replace('<think>\n', '<details data-think=true>\n'),
(str: string) => str.replace('\n</think>', '\n[ENDTHINKFLAG]</details>'),
])(content) ])(content)
} }



Notiek ielāde…
Atcelt
Saglabāt