Commit Graph

12 Commits

Author SHA1 Message Date
shinalok 38d2edeeec Phase 25: Separate RAG sources into collapsible box below chatbot
- Add source_box gr.HTML component below chatbot
- Add _sources_html() helper rendering <details> expand/collapse
- Handle __sources token in respond(): update source_box independently of thinking_box
- Reset both thinking_box and source_box on each new message

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 16:15:06 +09:00
shinalok 55ea69d902 Fix details close-on-update: use div during streaming, details on complete
During streaming: _live_html (plain div) shows only the current line —
no DOM reset, no closing issue. __thinking shows last non-empty line,
__meta shows the full trimmed message.
On completion: _thinking_html (<details>) shows all accumulated content
collapsed, expands on click.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:50:21 +09:00
shinalok 18609a4f7d Collapsible thinking box with details/summary, thinking on by default
- Thinking box uses <details>/<summary> — collapsed by default, expands on click
- Simple __status header shown before content arrives (no expand needed)
- show_thinking checkbox default changed to True

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:34:47 +09:00
shinalok 5cf8bdabfd Handle __status tokens for instant thinking box feedback
__status tokens show immediately in the thinking box but do not
accumulate in thinking_acc. When real content (__meta/__thinking)
arrives it overwrites the status message naturally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:08:30 +09:00
shinalok 4956ab7085 Replace gr.Markdown thinking box with gr.HTML for reliable streaming
gr.Markdown visible toggling is unreliable in Gradio streaming generators.
Switched to gr.HTML with inline styles — empty string hides the element,
HTML string shows the styled box. No visibility state needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 11:30:57 +09:00
shinalok 2348f17791 Move progress logs into thinking box alongside LLM reasoning
Both __meta (LangGraph/search progress) and __thinking (LLM reasoning)
tokens now stream into the thinking box instead of the chatbot.
Chatbot shows only the final answer. Thinking box shows the full
analysis pipeline: [LangGraph → ...], 문서 검색 중, thinking content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 10:56:01 +09:00
shinalok 8c859971d1 Add thinking box UI and fix async event loop errors
- Show thinking progress in a separate animated box above chatbot
  (🤔 사고 중... while streaming, 💭 사고 완료 when answer starts)
- Fix ValueError: add missing 5th yield value (thinking_box) to all
  respond() yield statements
- Fix [Reset] and other sync handlers: replace asyncio.get_event_loop()
  .run_until_complete() with asyncio.run() for AnyIO thread compatibility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 10:33:15 +09:00
shinalok 0424cf4b31 Add thinking process visualization to WebUI
- Introduced "thinking box" UI to display intermediate thought processes.
- Added CSS styling for the thinking box with scrollable and formatted design.
- Updated response handling to show thinking progress and completion dynamically.
- Enhanced Gradio outputs to include the new thinking box component.
2026-06-01 10:26:29 +09:00
shinalok 6435af5837 Separate TTS text from metadata tokens in respond()
Filter __meta dict tokens from TTS accumulator so progress messages
([LangGraph], thinking blocks, source references) are displayed in chat
but not read aloud. Answer tokens continue to accumulate in tts_text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 23:08:22 +09:00
shinalok 7fa45afc7f Fix TTS to use pure response content without meta tokens 2026-05-31 23:05:28 +09:00
shinalok cf68e19f38 Add cross-platform TTS support and update dependencies 2026-05-30 23:54:41 +09:00
shinalok 9455b591de Add initial implementation of Youlbot WebUI with Gradio frontend 2026-05-30 22:09:53 +09:00