Skip to content

splendone/MeetMind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智能会议记录系统

项目简介

智能会议记录系统是一个基于微信小程序的智能会议管理平台,提供录音转文字、AI摘要生成、任务提取与分配等功能,帮助团队高效管理会议和任务。

核心功能

  • 会议管理:创建会议、参会人员管理、会议日程
  • 🎙️ 录音转写:集成腾讯云语音识别API,支持实时/离线转写
  • 🤖 AI摘要生成:调用文心一言API生成会议纪要
  • 📋 智能提取:基于NLP技术提取待办事项、关键决策、行动项
  • 📝 任务分配:待办事项分配、进度跟踪、消息提醒
  • ☁️ 云端存储:会议记录同步、分享链接生成、权限管理

技术栈

前端

  • 框架:微信小程序原生框架
  • UI组件:WeUI
  • 网络请求:封装的request工具

后端

  • 运行时:Node.js 18+
  • 框架:Express.js
  • 语言:TypeScript
  • 认证:JWT + 微信登录

数据库

  • 关系型:MySQL 8.0
  • 缓存:Redis 7.0
  • 文档型:MongoDB 6.0

第三方服务

  • 语音识别:腾讯云语音识别
  • AI大模型:百度文心一言
  • 对象存储:腾讯云COS
  • 消息推送:微信小程序订阅消息

项目结构

meeting-recorder/
├── backend/                 # 后端服务
│   ├── src/
│   │   ├── config/         # 配置文件
│   │   ├── controllers/    # 控制器
│   │   ├── services/       # 业务逻辑
│   │   ├── models/         # 数据模型
│   │   ├── routes/         # 路由
│   │   ├── middlewares/    # 中间件
│   │   ├── utils/          # 工具函数
│   │   ├── types/          # TypeScript类型定义
│   │   └── app.ts          # 应用入口
│   ├── tests/              # 测试文件
│   ├── package.json
│   └── tsconfig.json
├── miniprogram/            # 微信小程序
│   ├── pages/              # 页面
│   │   ├── index/          # 首页
│   │   ├── meeting/        # 会议相关页面
│   │   ├── task/           # 任务相关页面
│   │   └── profile/        # 个人中心
│   ├── components/         # 组件
│   ├── utils/              # 工具函数
│   ├── api/                # API封装
│   ├── images/             # 图片资源
│   ├── app.js
│   └── app.json
├── sql/                    # 数据库脚本
│   └── init.sql
├── docs/                   # 文档
├── SYSTEM_DESIGN.md        # 系统设计文档
└── README.md

快速开始

环境要求

  • Node.js 18+
  • MySQL 8.0+
  • Redis 7.0+
  • MongoDB 6.0+
  • 微信开发者工具

后端部署

  1. 安装依赖
cd backend
npm install
  1. 配置环境变量

复制 .env.example.env 并配置:

cp .env.example .env

编辑 .env 文件,填入实际配置:

# 服务配置
NODE_ENV=development
PORT=3000

# JWT配置
JWT_SECRET=your-super-secret-key

# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your-password
MYSQL_DATABASE=meeting_recorder

# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379

# MongoDB配置
MONGODB_URI=mongodb://localhost:27017/meeting_recorder

# 微信小程序配置
WX_APPID=your-appid
WX_SECRET=your-secret

# 腾讯云配置
TENCENT_SECRET_ID=your-secret-id
TENCENT_SECRET_KEY=your-secret-key
COS_BUCKET=your-bucket-name
COS_REGION=ap-guangzhou

# 百度文心一言配置
BAIDU_API_KEY=your-api-key
BAIDU_SECRET_KEY=your-secret-key
  1. 初始化数据库
# 登录MySQL
mysql -u root -p

# 执行初始化脚本
source sql/init.sql
  1. 启动服务
# 开发模式
npm run dev

# 生产模式
npm run build
npm start

服务将运行在 http://localhost:3000

前端部署

  1. 配置API地址

编辑 miniprogram/app.js,修改 baseUrl

globalData: {
  baseUrl: 'http://your-api-domain.com/api/v1'
}
  1. 导入微信开发者工具
  • 打开微信开发者工具
  • 选择 "导入项目"
  • 选择 miniprogram 目录
  • 填入AppID(测试可选择"测试号")
  1. 配置服务器域名

在微信小程序后台配置:

  • request合法域名:添加后端API域名
  • uploadFile合法域名:添加对象存储域名
  • downloadFile合法域名:添加对象存储域名

API文档

认证接口

登录

POST /api/v1/auth/login
Body: {
  "code": "wx_code"
}
Response: {
  "code": 0,
  "data": {
    "user": {...},
    "accessToken": "xxx",
    "refreshToken": "xxx"
  }
}

会议接口

创建会议

POST /api/v1/meetings
Headers: Authorization: Bearer {token}
Body: {
  "title": "项目讨论会",
  "description": "讨论Q1项目计划",
  "start_time": "2024-01-15T10:00:00Z",
  "end_time": "2024-01-15T12:00:00Z",
  "location": "会议室A",
  "participants": [2, 3, 4]
}

获取会议列表

GET /api/v1/meetings?page=1&pageSize=10&status=scheduled
Headers: Authorization: Bearer {token}

生成会议摘要

POST /api/v1/meetings/:id/summary
Headers: Authorization: Bearer {token}

任务接口

创建任务

POST /api/v1/tasks
Headers: Authorization: Bearer {token}
Body: {
  "meeting_id": 1,
  "title": "完成需求文档",
  "description": "详细描述功能需求",
  "assignee_id": 2,
  "priority": "high",
  "due_date": "2024-01-20T18:00:00Z"
}

完成任务

POST /api/v1/tasks/:id/complete
Headers: Authorization: Bearer {token}

核心流程

会议记录流程

  1. 用户创建会议并添加参会人员
  2. 会议开始时启动录音
  3. 会议结束后上传录音文件
  4. 系统自动调用语音识别API进行转写
  5. 转写完成后触发AI摘要生成
  6. AI分析会议内容,提取关键决策和待办事项
  7. 自动创建任务并分配给相关人员
  8. 发送通知提醒任务负责人

录音转写流程

  1. 小程序录音上传到云存储
  2. 后端创建转写任务加入队列
  3. Worker异步调用腾讯云ASR API
  4. 分段转写并合并结果
  5. 存储到MongoDB
  6. 更新会议转写状态

AI摘要生成流程

  1. 获取转写文本
  2. 构建Prompt发送给文心一言
  3. AI返回结构化摘要数据
  4. 解析JSON并存储
  5. 自动创建任务
  6. 发送通知

安全措施

  • ✅ JWT Token认证
  • ✅ HTTPS/TLS加密传输
  • ✅ 参数校验和SQL注入防护
  • ✅ XSS防护
  • ✅ 接口限流
  • ✅ 敏感数据加密存储
  • ✅ 操作日志审计

性能优化

  • ✅ Redis缓存热点数据
  • ✅ 数据库索引优化
  • ✅ CDN加速静态资源
  • ✅ 异步队列处理耗时任务
  • ✅ 批量操作减少数据库查询

开发规范

代码规范

  • 使用TypeScript进行类型检查
  • 遵循ESLint规则
  • 使用Prettier格式化代码
  • 编写清晰的注释和文档

Git规范

  • 使用语义化的commit message
  • 功能开发使用feature分支
  • 提交前进行代码review
  • 保持main分支稳定

测试规范

  • 编写单元测试覆盖核心逻辑
  • 集成测试验证API接口
  • 上线前进行完整的功能测试

常见问题

1. 数据库连接失败

检查MySQL/Redis/MongoDB服务是否启动,配置是否正确。

2. 微信登录失败

确认AppID和AppSecret配置正确,网络可访问微信API。

3. 语音识别失败

检查腾讯云密钥配置,确认账户余额充足。

4. AI摘要生成失败

检查百度API密钥配置,确认API额度未用完。

后续计划

  • 支持实时语音转写
  • 会议直播功能
  • 多语言支持
  • 移动端App(iOS/Android)
  • 集成企业微信/钉钉
  • 数据统计和可视化
  • AI智能问答

贡献指南

欢迎贡献代码、提出问题和建议!

  1. Fork本仓库
  2. 创建feature分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

联系方式

如有问题或建议,请提交Issue或联系开发团队。


注意:本项目为演示项目,生产环境使用前请完善安全措施和错误处理。

About

集成AI的智能会议助手小程序

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published