🚀 下一代 AI 智能办公助手 | Next-Gen AI DocMind Assistant
核心亮点 • 功能特性 • AI 技术栈 • 快速开始 • 架构设计
基于 Retrieval-Augmented Generation 技术,实现:
- 📄 多格式文档解析 - PDF、Word、Excel、PPT、Markdown、JSON、XML 等
- 🔍 语义检索 - 向量化存储 + 相似度匹配,精准定位知识点
- ⚡ 实时向量化 - 文件上传后自动分块、嵌入、索引
- 🎯 上下文增强 - 检索结果注入 LLM Prompt,提升回答准确性
采用 Server-Sent Events (SSE) 技术:
- 💬 实时流式响应 - 打字机效果,无需等待完整回复
- 🧩 多模态交互 - 支持文本、文件、知识库混合对话
- 🔧 工具调用可视化 - Agent 思考过程、工具调用实时展示
- 📊 任务进度追踪 - 复杂任务分步骤展示执行进度
不仅仅只是聊天机器人,更是你的智能办公助手:
- 📝 PPT 智能生成 - 一句话生成大纲,自动匹配模板
- 🎤 演讲稿撰写 - 根据主题自动生成演讲内容
- 📚 文档智能分析 - 总结、对比、提取关键信息
- 🎓 面试训练模式 - AI 模拟面试,实时反馈提升
- 支持多轮对话,上下文理解
- 知识库管理,RAG 检索增强
- 文件上传与智能解析(PDF、Word、Excel、PPT 等)
- 实时流式响应,打字机效果
- Agent 模式 - 支持工具调用、任务分解
- 一句话生成专业演示文稿
- 多种主题模板可选
- 自动大纲生成与编辑
- 在线预览与导出
- 根据主题自动生成演讲稿
- 智能优化与润色
- 支持多种演讲风格
- 与 PPT 内容联动
- 支持多种文档格式上传
- 自动分块与向量化(RAG 核心)
- 语义检索,精准定位
- 会话级文件管理
- 文件激活/停用控制
- 完整中英双语界面
- 一键语言切换
- 可扩展更多语言
| 技术 | 说明 | 应用场景 |
|---|---|---|
| RAG | Retrieval-Augmented Generation | 知识库问答、文档检索 |
| SSE | Server-Sent Events | 流式对话、实时进度 |
| Vector DB | 向量数据库 | 文档向量化存储 |
| Embedding | 文本嵌入 | 语义相似度计算 |
| Agent | AI 智能体 | 工具调用、任务分解 |
- React 18 - 现代化 UI 框架
- TypeScript - 类型安全的 JavaScript
- Vite - 极速构建工具
- Tailwind CSS - 原子化 CSS 框架
- Radix UI - 无障碍 headless 组件
- shadcn/ui - 精美的 React 组件库
- Framer Motion - 流畅的动画效果
- Lucide React - 优雅的图标库
- React Context - 全局状态管理
- TanStack Query - 服务端状态管理
- i18next - 国际化方案
- Axios - HTTP 客户端
- date-fns - 日期处理
本项目为纯前端实现,需要配合后端服务使用。API 接口遵循 RESTful + SSE 规范。
- Node.js >= 18.0.0
- npm >= 9.0.0 或 yarn >= 1.22.0
- 后端 API 服务(需自行实现或对接)
- 克隆仓库
git clone https://github.com/yourusername/smart-office-ai.git
cd smart-office-ai- 进入客户端目录并安装依赖
cd client
npm install
# 或
yarn install- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置你的后端 API 地址
# VITE_API_BASE_URL=http://your-backend-api.com/smart-office- 启动开发服务器
npm run dev
# 或
yarn dev- 打开浏览器访问
http://localhost:5173
npm run build
# 或
yarn build构建后的文件将位于 dist/ 目录。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 文件上传 │────▶│ 文档解析 │────▶│ 智能分块 │
└─────────────┘ └─────────────┘ └──────┬──────┘
│
┌─────────────┐ ┌─────────────┐ ▼
│ 语义检索 │◀────│ 向量数据库 │◀────┌─────────────┐
└──────┬──────┘ └─────────────┘ │ Embedding │
│ └─────────────┘
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Prompt构建 │────▶│ LLM推理 │────▶│ 流式输出 │
└─────────────┘ └─────────────┘ └─────────────┘
Client Server
│ │
│ POST /chat/stream │
│ ──────────────────────▶│
│ │
│ ◀── SSE: SESSION_START│
│ ◀── SSE: THINKING │
│ ◀── SSE: TOOL_CALL │
│ ◀── SSE: CONTENT │
│ ◀── SSE: DONE │
client/
├── public/ # 静态资源
├── src/
│ ├── components/
│ │ ├── agent/ # AI 助手组件
│ │ │ ├── ThinkingProcess.tsx # 思考过程展示
│ │ │ ├── ToolCallCard.tsx # 工具调用卡片
│ │ │ ├── TaskProgressPanel.tsx # 任务进度面板
│ │ │ ├── KnowledgeBankPanel.tsx # 知识库面板
│ │ │ └── StreamingContent.tsx # 流式内容
│ │ ├── common/ # 通用组件
│ │ ├── layout/ # 布局组件
│ │ └── ui/ # UI 基础组件
│ ├── contexts/
│ │ └── AgentContext.tsx # Agent 状态管理
│ ├── hooks/ # 自定义 Hooks
│ ├── i18n/ # 国际化配置
│ ├── lib/ # 工具函数
│ ├── pages/
│ │ └── Agent.tsx # AI 助手主页面
│ ├── services/
│ │ └── agentApi.ts # API 服务(SSE、RAG)
│ └── types/
│ └── agent.ts # TypeScript 类型
├── .env.example # 环境变量示例
└── ...
| 变量名 | 说明 | 示例 |
|---|---|---|
VITE_API_BASE_URL |
后端 API 基础地址 | http://localhost:8080/smart-office |
注意:本项目为前端实现,需要自行开发或对接后端服务。API 接口规范可参考
src/services/agentApi.ts中的定义。
前端期望的后端接口包括:
- 认证相关:登录、注册、密码重置
- PPT 生成:创建任务、查询进度、获取结果
- 演讲稿:生成、编辑、预览
- AI 对话:SSE 流式对话、会话管理
- RAG 知识库:文件上传、向量化状态查询
- 用户管理:设置、通知、订阅
具体接口定义请参考 client/src/services/ 目录下的 API 服务文件。
- 使用 TypeScript 严格模式
- 遵循 ESLint 和 Prettier 配置
- 组件使用 PascalCase 命名
- 工具函数使用 camelCase 命名
feat: 新功能
fix: 修复问题
docs: 文档更新
style: 代码格式调整
refactor: 重构代码
test: 测试相关
chore: 构建/工具相关
我们欢迎所有形式的贡献!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的修改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
截图将在后续版本补充
- RAG 知识库系统
- SSE 流式对话
- AI Agent 工具调用
- 支持更多文档格式(Markdown、CSV 等)
- 团队协作功能
- 移动端适配优化
- 插件系统
- 更多语言支持
本项目基于 MIT 许可证开源。
Made with ❤️ by DocMind AI Team