# Summary **Repository Path**: kyrin_soft/summary ## Basic Information - **Project Name**: Summary - **Description**: AI会议纪要生成应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-16 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 会议纪要生成应用 基于 AI 的自动化会议纪要生成应用,支持语音识别、智能内容生成和文档导出。 ## 功能特性 - **模板管理**:上传、预览、删除会议纪要模板 - **会议纪要生成**:上传会议录音,自动生成结构化会议纪要 - **在线预览**:实时查看生成的会议纪要 - **文档导出**:导出为标准 Word 文档格式 - **任务追踪**:实时查看生成任务状态和进度 ## 技术栈 ### 后端 - Django 5.0 + Django REST Framework - LangGraph(AI 工作流编排) - DeepSeek(文本生成) - 阿里百炼(语音转文字) - Python 3.10+ ### 前端 - React 18 + TypeScript - Vite 5(构建工具) - Ant Design 5(UI 组件库) - React Router 6(路由管理) - Axios(HTTP 客户端) ## 快速开始 ### 前置要求 - Python 3.10+ - Node.js 18+ - pip - npm ### 后端启动 ```bash cd backend # 创建虚拟环境 python3 -m venv venv source venv/bin/activate # Linux/Mac # venv\Scripts\activate # Windows # 安装依赖(使用清华镜像) pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple # 配置环境变量 cp .env.example .env # 编辑 .env 文件,填入必要的配置信息 # 数据库迁移 python manage.py makemigrations python manage.py migrate # 启动开发服务器 python manage.py runserver ``` 后端服务将在 http://localhost:8000 启动 ### 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务将在 http://localhost:5173 启动 ## 配置说明 ### 后端配置(.env) ```bash # Django 配置 DJANGO_SECRET_KEY=your-secret-key-change-this-in-production DJANGO_DEBUG=True DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1 # AI 服务配置 DEEPSEEK_API_KEY=your-deepseek-api-key DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 ALIBABA_CLOUD_ACCESS_KEY_ID=your-access-key-id ALIBABA_CLOUD_ACCESS_KEY_SECRET=your-access-key-secret ALIBABA_BAILIAN_ENDPOINT=https://bailian.cn-beijing.aliyuncs.com # 文件上传配置 MAX_UPLOAD_SIZE_MB=100 # 异步任务配置 MAX_WORKER_THREADS=4 TASK_TIMEOUT_SECONDS=600 ``` ### 获取 API Key 1. **DeepSeek API Key** - 访问 https://platform.deepseek.com/ - 注册并创建 API Key 2. **阿里百炼 API Key** - 访问 https://bailian.console.aliyun.com/ - 开通服务并获取 Access Key ## 项目结构 ``` . ├── backend/ # 后端服务 │ ├── config/ # Django 配置 │ ├── template_app/ # 模板管理模块 │ ├── meeting_minutes_app/ # 会议纪要管理模块 │ ├── workflow/ # LangGraph 工作流 │ ├── services/ # AI 服务集成 │ ├── media/ # 文件存储 │ └── logs/ # 日志文件 ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── components/ # 复用组件 │ │ ├── pages/ # 页面组件 │ │ ├── services/ # API 服务 │ │ └── types/ # TypeScript 类型 │ └── package.json └── openspec/ # OpenSpec 规格文档 ``` ## API 文档 启动后端服务后,访问以下地址查看 API 文档: - Swagger UI: http://localhost:8000/api/docs/ - ReDoc: http://localhost:8000/api/redoc/ ### 主要 API 端点 #### 模板管理 - `POST /api/templates/` - 上传模板 - `GET /api/templates/` - 获取模板列表(分页) - `GET /api/templates/{id}/` - 获取模板详情 - `GET /api/templates/{id}/preview/` - 预览模板 - `DELETE /api/templates/{id}/soft_delete/` - 删除模板 #### 会议纪要管理 - `POST /api/minutes/` - 创建会议纪要(提交任务) - `GET /api/minutes/` - 获取会议纪要列表(分页) - `GET /api/minutes/{id}/` - 获取会议纪要详情 - `GET /api/minutes/{id}/preview/` - 预览会议纪要 - `GET /api/minutes/{id}/export/` - 导出会议纪要(下载 Word) - `GET /api/minutes/{id}/task_status/` - 获取任务状态 ## 使用流程 1. **上传模板** - 登录系统,进入模板管理页面 - 上传会议纪要模板(支持 .docx, .doc, .md 格式) 2. **创建会议纪要** - 进入会议纪要管理页面 - 点击"新建"按钮 - 选择模板并上传会议录音 - 提交后系统自动处理 3. **查看进度** - 在会议纪要列表中查看任务状态 - 支持的状态:待处理、处理中、已完成、失败 4. **预览和导出** - 处理完成后,可在线预览会议纪要 - 或直接导出为 Word 文档 ## 开发 ### 代码风格 #### Python ```bash # 格式化代码 black . isort . # 代码检查 flake8 ``` #### TypeScript ```bash # 格式化代码 npm run format # 类型检查 npm run type-check ``` ### 运行测试 ```bash # 后端测试 cd backend pytest # 前端测试 cd frontend npm test ``` ## 部署 ### 生产环境配置 1. **后端部署** - 使用 Gunicorn 或 uWSGI 作为 WSGI 服务器 - 配置 Nginx 作为反向代理 - 使用 PostgreSQL 作为数据库 - 配置环境变量 2. **前端部署** - 构建生产版本:`npm run build` - 将 dist 目录部署到静态文件服务器 - 配置 Nginx 提供 SPA 路由支持 ### Docker 部署(可选) ```bash # 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ## 故障排除 ### 常见问题 1. **API 调用失败** - 检查 API Key 是否正确配置 - 检查网络连接 - 查看 logs/django.log 日志文件 2. **任务一直处于"处理中"状态** - 检查异步任务调度器是否正常启动 - 查看任务日志 - 检查 MAX_WORKER_THREADS 配置 3. **文件上传失败** - 检查文件大小是否超过限制 - 检查文件格式是否支持 - 检查 media 目录权限 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 许可证 MIT License ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交 GitHub Issue - 发送邮件至:your-email@example.com