feat(ui): 实现 ask_user_question 工具的前端支持

- 添加 AskUserQuestion 组件,支持单选/多选和自定义输入
- 添加 Question 相关类型定义 (QuestionOption, Question, QuestionMessagePart)
- 在 useChat 中处理 ask_user_question 工具完成事件,转换为问题 UI
- 添加 answerQuestion 回调用于提交用户回答
- 更新 ChatMessage 组件支持渲染问题类型的消息部分
This commit is contained in:
2025-12-16 23:14:25 +08:00
parent 791c4a4616
commit 3b170738ee
8 changed files with 556 additions and 12 deletions
+3 -2
View File
@@ -48,6 +48,7 @@ export function ChatPage({
streamingMessage,
sendMessage,
cancelProcessing,
answerQuestion,
} = useChat({
sessionId,
onError: (error) => {
@@ -265,13 +266,13 @@ export function ChatPage({
<AnimatePresence mode="popLayout">
{messages.map((message) => (
<ChatMessage key={message.id} message={message} />
<ChatMessage key={message.id} message={message} onAnswerQuestion={answerQuestion} />
))}
</AnimatePresence>
{/* 流式消息 - 复用 ChatMessage 组件 */}
{streamingMessage && (
<ChatMessage message={streamingMessage} isStreaming />
<ChatMessage message={streamingMessage} isStreaming onAnswerQuestion={answerQuestion} />
)}
{isLoading && !streamingMessage && <TypingIndicator />}