# WorkWise **Repository Path**: yuke666123/work-wise ## Basic Information - **Project Name**: WorkWise - **Description**: 面向中小微企业 / 团队的智能办公 SaaS,以多 Agent 协同替代行政、文秘、内勤等重复工作,主打轻量化、开箱即用,是试错成本最低、现金流最快的方向。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-15 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WorkWise - 全能办公多 Agent 平台 > 用 AI 替小公司员工干杂活的智能办公 SaaS 工具 [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.104-green.svg)](https://fastapi.tiangolo.com/) [![Vue](https://img.shields.io/badge/Vue-3.4-brightgreen.svg)](https://vuejs.org/) [![Element Plus](https://img.shields.io/badge/Element_Plus-2.5-409EFF.svg)](https://element-plus.org/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📖 项目简介 WorkWise 是一个面向中小微企业的智能办公平台,通过 **5 个 AI Agent 协同工作**,自动处理行政、文秘、内勤等重复性办公任务。用户通过统一的 Web 工作台即可调用全部 AI 能力,无需在多个工具之间切换。 **核心价值**:让 AI 处理琐碎的办公事务,让人专注于真正重要的工作。 --- ## ✨ 功能特性 ### 🧠 核心能力 | 模块 | 功能 | 技术亮点 | |:-----|:-----|:---------| | **📊 工作台** | 聚合任务概览、快速入口、统计卡片 | 渐变色彩 + 响应式布局 | | **📄 文档处理** | PDF / Word / Excel 解析、摘要、关键信息提取 | PyPDF2 + python-docx + openpyxl | | **🎙️ 会议纪要** | 上传音频 → 语音转文字 → 结构化纪要 → 自动提取待办 | Whisper 本地识别 + StepAudio 云端 ASR 双引擎 | | **✅ 待办任务** | 任务创建 / 确认完成 / 逾期催办 / 批量操作 | APScheduler 定时调度 | | **📧 邮件助手** | 邮件起草、润色、往来汇总 | LLM 驱动 + SMTP 发送 | | **📝 每日日报** | 基于当日工作自动生成极简版日报 | 口语化 prompt,像发微信一样简练 | | **⚙️ 个人设置** | 用户偏好、Token 管理、主题切换 | JWT + 自动刷新 | ### 🤖 Agent 架构 ``` ┌─────────────────────────────────────────────────────┐ │ Orchestrator Agent │ │ (总控调度 - 意图识别 / 任务拆解) │ └─────────┬───────┬────────┬────────┬─────────────────┘ │ │ │ │ ┌─────┴──┐ ┌──┴───┐ ┌──┴───┐ ┌──┴────┐ │Document│ │Meeting│ │Task │ │Email │ │ Agent │ │ Agent │ │Agent │ │Agent │ │(文档) │ │(会议) │ │(待办)│ │(邮件) │ └────────┘ └───────┘ └──────┘ └───────┘ ``` - **Orchestrator Agent**:统一管理用户意图识别、任务拆解与分发 - **Document Agent**:解析 PDF / Word / Excel,生成摘要与要点 - **Meeting Agent**:语音转文字、会议纪要生成、待办事项提取 - **Task Agent**:任务 CRUD、定时提醒、逾期催办 - **Email Agent**:邮件撰写润色、往来汇总 --- ## 🏗️ 技术栈 ### 后端 | 类别 | 技术 | 版本 | |:-----|:-----|:-----| | 语言 | Python | 3.10+ | | Web 框架 | FastAPI | 0.104 | | ORM | SQLAlchemy (async) | 2.0 | | 数据库 | PostgreSQL / SQLite | — | | 缓存 | Redis | 7+ | | 认证 | JWT + bcrypt | — | | 任务调度 | APScheduler | 3.10 | | LLM 客户端 | 自研 `LLMClient`(兼容 OpenAI 格式) | — | | 语音识别 | Whisper (本地) + StepAudio 2.5 (云端) | — | | 文档处理 | PyPDF2 + python-docx + openpyxl | — | | 邮件 | aiosmtplib | 3.0 | ### 前端 | 类别 | 技术 | 版本 | |:-----|:-----|:-----| | 框架 | Vue 3 (Composition API) | 3.4 | | 语言 | TypeScript | 5.3 | | UI 库 | Element Plus | 2.5 | | 构建工具 | Vite | 5.0 | | 状态管理 | Pinia | 2.1 | | 路由 | Vue Router | 4.3 | | HTTP | Axios | 1.6 | --- ## 📁 项目结构 ``` WorkWise/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── agents/ # 5 个 AI Agent │ │ │ ├── _llm.py # LLM 客户端(通义千问 / 小米 MiLM) │ │ │ ├── orchestrator.py # 总控调度 Agent │ │ │ ├── document.py # 文档处理 Agent │ │ │ ├── meeting.py # 会议纪要 Agent │ │ │ ├── reminder.py # 待办提醒 Agent │ │ │ ├── email.py # 邮件沟通 Agent │ │ │ ├── whisper_asr.py # Whisper 本地 ASR │ │ │ └── stepaudio_asr.py # StepAudio 2.5 云端 ASR │ │ ├── api/ # API 路由 │ │ │ ├── auth.py # 认证接口 │ │ │ ├── document.py # 文档接口 │ │ │ ├── meeting.py # 会议接口 │ │ │ ├── task.py # 任务接口 │ │ │ ├── email.py # 邮件接口 │ │ │ ├── dashboard.py # 工作台接口 │ │ │ └── daily_report.py # 日报接口 │ │ ├── models/ # SQLAlchemy 数据模型 │ │ ├── schemas/ # Pydantic 校验模型 │ │ ├── services/ # 业务逻辑层 │ │ │ ├── progress.py # 长任务进度追踪 │ │ │ └── daily_report.py # 日报生成逻辑 │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库连接 │ │ └── main.py # FastAPI 入口 │ ├── tests/ # 单元测试 │ ├── uploads/ # 上传文件目录 │ ├── .env.example # 环境变量模板 │ └── requirements.txt # Python 依赖 │ ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API 封装层 │ │ ├── views/ # 页面视图 │ │ │ ├── auth/ # 登录 / 注册 │ │ │ ├── dashboard/ # 工作台 │ │ │ ├── document/ # 文档处理 │ │ │ ├── meeting/ # 会议纪要 │ │ │ ├── task/ # 待办任务 │ │ │ ├── email/ # 邮件助手 │ │ │ ├── daily-report/ # 每日日报 │ │ │ ├── settings/ # 系统设置 │ │ │ └── error/ # 404 等错误页 │ │ ├── components/ # 可复用组件 │ │ │ ├── common/ # 通用组件 │ │ │ └── business/ # 业务组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── layouts/ # 布局组件 │ │ ├── styles/ # 全局样式 │ │ └── types/ # TypeScript 类型定义 │ └── package.json # Node 依赖 │ ├── docker-compose.yml # Docker 编排(PostgreSQL + Redis + 前后端) ├── DEPLOYMENT.md # 部署指南 ├── BUILD_PROMPT.md # 项目构建提示词 └── README.md # 本文件 ``` --- ## 🚀 快速开始 ### 环境要求 | 组件 | 最低版本 | |:-----|:--------| | Python | 3.10+ | | Node.js | 18+ | | npm | 9+ | > 数据库默认使用 SQLite(零配置),生产环境推荐 PostgreSQL。 --- ### 方式一:本地开发(推荐) #### 1. 克隆项目 ```bash git clone https://gitee.com/yuke666123/work-wise.git cd WorkWise ``` #### 2. 启动后端 ```bash cd backend # 创建虚拟环境 python -m venv venv # Windows: venv\Scripts\activate # macOS / Linux: source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量 cp .env.example .env # 编辑 .env,填入 LLM API Key 等配置 # 启动服务(首次启动自动建库) uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` #### 3. 启动前端 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` #### 4. 访问应用 | 服务 | 地址 | |:-----|:-----| | 前端 Web | http://localhost:3000 | | 后端 API 文档 (Swagger) | http://localhost:8000/docs | | 后端 API 文档 (ReDoc) | http://localhost:8000/redoc | | 健康检查 | http://localhost:8000/health | --- ### 方式二:Docker Compose ```bash # 克隆项目 git clone https://gitee.com/yuke666123/work-wise.git cd WorkWise # 配置环境变量 export DASHSCOPE_API_KEY=your-api-key # 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` Docker 编排包含 `backend`、`frontend`、`postgres`、`redis` 四个容器。 --- ## 🔧 环境变量配置 ### backend/.env ```env # ===== 应用 ===== APP_NAME=WorkWise APP_VERSION=1.0.0 DEBUG=true # ===== 数据库(开发用 SQLite,生产推荐 PostgreSQL)===== DATABASE_URL=sqlite+aiosqlite:///./workwise.db # DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/workwise # ===== JWT ===== JWT_SECRET_KEY=your-random-secret-key JWT_ALGORITHM=HS256 JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 JWT_REFRESH_TOKEN_EXPIRE_DAYS=7 # ===== LLM(二选一,优先使用先配置的那个)===== # 通义千问(阿里灵积) DASHSCOPE_API_KEY=your-dashscope-api-key TONGYI_MODEL=qwen-plus # 小米 MiLM MILM_API_KEY=your-milm-api-key # ===== 语音识别 ===== # Whisper 本地模型(tiny/base/small/medium/large) WHISPER_MODEL=small # StepAudio 2.5(云端,备选) STEPAUDIO_API_KEY=your-stepaudio-api-key # ===== 邮件 SMTP ===== SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your-email@gmail.com SMTP_PASSWORD=your-app-password # ===== CORS ===== CORS_ORIGINS=["http://localhost:3000","http://localhost:8080"] # ===== 文件上传 ===== MAX_UPLOAD_SIZE_MB=200 UPLOAD_DIR=./uploads ``` ### frontend/.env ```env VITE_API_BASE_URL=/api/v1 VITE_APP_TITLE=WorkWise ``` --- ## 📚 API 文档 启动后端后,可交互式浏览全部接口: - **Swagger UI** → http://localhost:8000/docs - **ReDoc** → http://localhost:8000/redoc ### 主要接口一览 | 模块 | 方法 | 路径 | 说明 | |:-----|:-----|:-----|:-----| | 认证 | POST | `/api/v1/auth/register` | 用户注册 | | 认证 | POST | `/api/v1/auth/login` | 用户登录 | | 认证 | POST | `/api/v1/auth/refresh` | 刷新 Token | | 文档 | POST | `/api/v1/document/upload` | 上传文档 | | 文档 | POST | `/api/v1/document/summarize` | 生成文档摘要 | | 会议 | POST | `/api/v1/meeting/upload` | 上传音频文件 | | 会议 | POST | `/api/v1/meeting/transcribe` | 语音转文字 | | 会议 | POST | `/api/v1/meeting/minutes` | 生成结构化纪要 | | 任务 | GET | `/api/v1/task/list` | 获取任务列表 | | 任务 | POST | `/api/v1/task/create` | 创建任务 | | 任务 | PATCH | `/api/v1/task/{id}/complete` | 确认任务完成 | | 邮件 | POST | `/api/v1/email/draft` | AI 起草邮件 | | 邮件 | POST | `/api/v1/email/polish` | AI 润色邮件 | | 日报 | POST | `/api/v1/daily-report/generate` | 生成每日日报 | | 工作台 | GET | `/api/v1/dashboard/stats` | 工作台统计数据 | --- ## 🧪 运行测试 ```bash cd backend # 运行全部测试 pytest # 运行指定模块 pytest tests/test_auth.py -v # 生成覆盖率报告 pytest --cov=app --cov-report=html ``` 测试覆盖模块:`auth`、`document`、`meeting`、`task`、`email`、`orchestrator`。 --- ## 🎨 前端设计 ### 色彩系统 项目使用 **雾霾蓝** 主题色系,整体现代简约: - 主渐变:`linear-gradient(135deg, #667eea 0%, #764ba2 100%)` - 状态色:成功绿 `#10b981` / 警告橙 `#f59e0b` / 危险红 `#ef4444` ### 页面特性 | 页面 | 设计亮点 | |:-----|:--------| | 登录 / 注册 | 渐变背景 + 毛玻璃卡片 + 动画过渡 | | 工作台 | 渐变统计卡片 + 时间线 + 快速入口 | | 文档处理 | 拖拽上传 + 处理选项卡片 + 代码块结果展示 | | 会议纪要 | 自定义音频播放器 + 结构化纪要渲染 | | 待办任务 | 胶囊筛选按钮 + 横向状态条卡片 | | 邮件助手 | 类型选择卡片 + 邮件样式实时预览 | | 每日日报 | 极简 Markdown 渲染 + 一键复制 | --- ## 📦 生产部署 ### 方法一:Docker Compose 生产模式 ```bash docker-compose -f docker-compose.prod.yml up -d --build ``` ### 方法二:手动部署 ```bash # 构建前端 cd frontend && npm run build # 产物在 dist/ # 启动后端(生产模式) cd backend uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4 ``` 配合 Nginx 托管前端静态文件并反向代理 `/api/` 到后端。详细配置见 [DEPLOYMENT.md](./DEPLOYMENT.md)。 --- ## 🔄 最近更新 | 版本 | 日期 | 更新内容 | |:-----|:-----|:--------| | 最新 | 2026-07 | 长音频自动切分转写、StepAudio 2.5 集成、图片 OCR、Token 自动刷新、每日日报功能、工作台主题优化 | --- ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request --- ## 📄 许可证 本项目采用 [MIT](./LICENSE) 许可证。 --- ## 👥 团队 - **项目负责人**:余柯,陈政武,张柯 - **代码仓库**:https://gitee.com/yuke666123/work-wise ## 🙏 致谢 - [FastAPI](https://fastapi.tiangolo.com/) - [Vue.js](https://vuejs.org/) - [Element Plus](https://element-plus.org/) - [通义千问](https://dashscope.aliyun.com/) - [Whisper](https://github.com/openai/whisper) - [StepAudio](https://platform.stepfun.com/) --- **⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!**