Skip to content

提示 04:流式聊天响应

目标: 实现塔罗解读的 AI 驱动流式聊天响应。

设计需求:

  • 暗黑/极简风格: 干净的气泡,微妙的阴影(无边框),深靛蓝/黑色主题。
  • 流式 UI: 文本应以打字机效果出现。使用 react-native-markdown-display 等库进行格式化。
  • 仪式节奏:
    • 聊天不应大量涌出文本。应感觉有节制(打字速度:每字符 20-30ms)。
    • 如果用户中断,停止流式输出。
  • 音频:
    • 如果用户点击"收听",需要播放响应的音频流(来自我们的 TTS API)。
    • 处理后台音频播放(应适当地暂停/恢复)。

技术规范:

  • 流式传输: 使用 fetch(配合 ReadableStreamtext() 轮询,采用 Web 应用当前使用的方式——目前在 Web 上使用 ReadableStream)。
  • Markdown: 使用 react-native-markdown-display
  • 触觉反馈: 每个流式 token/字符产生微小的"滴答"震动,或降低强度(每 5 个字符一次)。
  • 状态: currentMessageIndexchatMessages(数组)。

上下文:

  • Web 应用使用自定义的 TypewriterMarkdown.tsx
  • 聊天输入(ChatUserInput.tsx)处理消息发送/重试逻辑。

交付物:

  • src/components/Chat/ChatBubble.tsx
  • src/components/Chat/TypewriterText.tsx
  • src/components/Chat/ChatInput.tsx

Internal documentation for MysticX team