创建的文件:
lib/types.ts- 类型定义(AgentMode, Session, MessageMetadata, Source, ToolCall, PlanStep 等)lib/session.ts- 会话管理工具(localStorage 持久化)lib/api-client.ts- API 客户端(封装后端 HTTP 调用)providers/theme-provider.tsx- 主题切换 Providerproviders/session-provider.tsx- 会话状态管理 Provider
功能:
- ✅ 完整的 TypeScript 类型系统
- ✅ 会话本地存储和管理
- ✅ 统一的 API 调用接口
- ✅ 全局状态管理(主题 + 会话)
创建的文件:
components/layout/app-header.tsx- 顶部导航栏(主题切换)components/layout/app-sidebar.tsx- 左侧边栏(导航 + 会话列表)components/layout/app-layout.tsx- 布局容器组件
功能:
- ✅ 响应式布局(Header + Sidebar + Main)
- ✅ 5 个主要路由导航(Chat / RAG / Workflows / Research / Settings)
- ✅ 会话列表展示(最近 10 条)
- ✅ 新建对话按钮
- ✅ 主题切换(浅色/深色/系统)
创建的文件:
app/api/chat/route.ts- Chat API 路由处理器
功能:
- ✅ 使用 Edge Runtime 支持流式响应
- ✅ 转发请求到 Python 后端
- ✅ 错误处理和响应封装
- ✅ SSE (Server-Sent Events) 流式输出
创建的文件:
components/chat/chat-mode-selector.tsx- 模式选择器(5 种模式)components/chat/chat-header.tsx- Chat 页面头部(模式切换 + 模型选择 + 调试按钮)components/chat/chat-right-panel.tsx- 右侧详情面板(Sources / Tools / Reasoning / JSON)components/chat/chat-panel.tsx- 主对话面板(核心组件)
功能:
- ✅ 5 种模式切换(basic-agent / rag / workflow / deep-research / guarded)
- ✅ 模型选择器集成
- ✅ 调试面板开关
- ✅ 右侧详情面板(可折叠)
使用的 AI Elements 组件:
- ✅
Conversation- 对话容器 - ✅
Message- 消息展示 - ✅
PromptInput- 输入框(支持停止按钮) - ✅
Suggestion- 建议提示词 - ✅
Sources- RAG 来源展示 - ✅
Reasoning- 推理过程展示 - ✅
Tool- 工具调用展示 - ✅
Plan- 计划步骤展示 - ✅
Task- 任务信息展示 - ✅
Checkpoint- 检查点展示 - ✅
ChainOfThought- 思维链展示 - ✅
ModelSelector- 模型选择器
特色功能:
- ✅ 点击消息查看详细元数据
- ✅ 4 个 Tab(来源 / 工具 / 推理 / JSON)
- ✅ 空状态提示
- ✅ 建议提示词快速输入
功能:
- ✅ 使用 AI SDK 的
useChathook - ✅ 实时流式输出
- ✅ 加载状态展示
- ✅ 错误处理(toast 提示)
- ✅ 会话自动保存和恢复
- ✅ 消息计数更新
- ✅ 会话标题自动生成
创建的页面:
app/page.tsx- 首页(自动重定向到 /chat)app/chat/page.tsx- Chat 页面(✅ 完整实现)app/rag/page.tsx- RAG 页面(骨架)app/workflows/page.tsx- 工作流页面(骨架)app/deep-research/page.tsx- 深度研究页面(骨架)app/settings/page.tsx- 设置页面(骨架)
-
现代化设计
- 使用 shadcn/ui 组件库
- Tailwind CSS 样式
- 深色/浅色主题支持
-
响应式布局
- 左侧边栏(固定宽度 256px)
- 主内容区(自适应)
- 右侧详情面板(固定宽度 320px,可折叠)
-
交互体验
- 流式输出动画
- 加载状态提示
- 错误 Toast 提示
- 建议提示词快速输入
- 会话列表快速切换
- 框架: Next.js 16 (App Router + Turbopack)
- UI 库: shadcn/ui + Tailwind CSS
- AI SDK: Vercel AI SDK v6 (@ai-sdk/react)
- AI 组件: AI Elements (30+ 组件)
- 状态管理: React Context + localStorage
- 主题: next-themes
- 图标: lucide-react
- 通知: sonner
cd frontend
pnpm install创建 .env.local 文件:
NEXT_PUBLIC_API_URL=http://localhost:8000pnpm dev确保 Python 后端正在运行:
cd ../backend
./start_server.sh-
5 种模式切换
- basic-agent - 基础对话
- rag - RAG 问答
- workflow - 学习工作流
- deep-research - 深度研究
- guarded - 安全模式
-
对话功能
- 流式输出
- 消息历史
- 停止生成
- 重新生成
- 错误处理
-
高级功能
- 模型选择器
- 建议提示词
- 右侧详情面板
- 调试模式
- 会话管理
-
元数据展示
- RAG 来源(Sources)
- 工具调用(Tools)
- 推理过程(Reasoning)
- 计划步骤(Plan)
- 任务信息(Task)
- 检查点(Checkpoint)
- 思维链(Chain of Thought)
- 消息编辑和删除
- 消息搜索
- 导出对话(Markdown / JSON)
- 上传文件支持
- 语音输入
- 会话分组
- 会话搜索
- 会话标签
- 会话导出/导入
- 会话分享
- RAG 模式:文档上传和索引
- Workflow 模式:工作流可视化
- Deep Research 模式:研究进度展示
- Guarded 模式:安全策略配置
- 消息虚拟滚动
- 图片懒加载
- 代码高亮优化
- 缓存策略
-
后端对接
- 确保后端
/chat接口返回 SSE 格式 - 消息格式需符合 AI SDK 规范
- 元数据通过
annotations字段传递
- 确保后端
-
环境变量
.env.local文件不会被提交到 Git- 需要手动创建并配置
-
AI Elements 组件
- 已安装在
components/ai-elements/目录 - 可以根据需要自定义样式
- 参考文档:https://v6.ai-sdk.dev/elements
- 已安装在
-
类型安全
- 所有类型定义在
lib/types.ts - 使用 TypeScript 严格模式
- 确保类型一致性
- 所有类型定义在
-
后端接口适配
- 需要后端返回符合 AI SDK 格式的流式响应
- 元数据结构需要统一
-
会话持久化
- 目前使用 localStorage,刷新页面会保留
- 未来可以考虑使用数据库
-
模型选择器
- AI Elements 的 ModelSelector 需要配置可用模型列表
- 需要在 Settings 页面添加模型管理
Sprint 1 已经完成了一个功能完整、可用的 Chat MVP!
核心成就:
- ✅ 完整的项目架构
- ✅ 5 种模式支持
- ✅ 流式输出
- ✅ 会话管理
- ✅ AI Elements 组件集成
- ✅ 现代化 UI/UX
下一步: 继续 Sprint 2,增强 Chat 功能,并开始实现其他页面(RAG / Workflows / Research / Settings)。