feat: Implement live reasoning streaming with timing display
- Update ReasoningBlock to start expanded and show live reasoning content - Add timing tracking with start/end timestamps for reasoning duration - Auto-collapse reasoning blocks after completion with 500ms delay - Show timing summary (e.g. 'Thought for 0.4s') instead of content when collapsed - Add streaming cursor animation and real-time content updates - Update types to support reasoning timing and streaming state - Stream reasoning content live as tokens arrive during thinking phase This provides a much better UX where users can see the model thinking in real-time, then get a clean timing summary after completion.
This commit is contained in:
parent
68ecdebbc0
commit
bfe2bd5816
1 changed files with 137 additions and 43 deletions
|
|
@ -39,8 +39,13 @@ const ChatMessage: React.FC<ChatMessageProps> = ({
|
|||
}`}
|
||||
>
|
||||
{/* Show reasoning block for assistant messages with reasoning */}
|
||||
{message.role === "assistant" && "reasoning" in message && message.reasoning && (
|
||||
<ReasoningBlock reasoning={message.reasoning} />
|
||||
{message.role === "assistant" && "reasoning" in message && (message.reasoning || message.isReasoningStreaming) && (
|
||||
<ReasoningBlock
|
||||
reasoning={message.reasoning || ""}
|
||||
isStreaming={message.isReasoningStreaming}
|
||||
startTime={message.reasoningStartTime}
|
||||
endTime={message.reasoningEndTime}
|
||||
/>
|
||||
)}
|
||||
|
||||
<div className="prose prose-zinc">
|
||||
|
|
|
|||
Loading…
Reference in a new issue