# Screen2Feishu - AI任务管理Web应用 ## 项目简介 Screen2Feishu是一个基于AI技术的任务管理Web应用,能够自动分析截图和任务描述,识别任务信息并写入飞书多维表格。 ## 核心功能 ### 📸 图片上传分析 - 上传截图,AI自动分析图片内容 - 识别任务描述、优先级、发起人等信息 - 自动匹配飞书用户,处理重名情况 - 将分析结果写入飞书多维表格 ### ⚙️ 智能配置 - 内存处理模式:不保存图片文件,节省存储空间 - 用户匹配机制:自动匹配飞书用户列表 - 随机匹配回退:重名时随机选择最近联系人 - 缓存管理:自动管理用户缓存,提高匹配效率 ### 📊 实时反馈 - 显示AI分析结果 - 显示操作状态和进度 - 系统配置信息展示 - 用户缓存状态监控 ## 快速开始 ### 1. 环境准备 ```bash # 安装Python依赖 pip install -r requirements.txt ``` ### 2. 配置文件 复制配置文件模板并编辑: ```bash cp config.example.yaml config.yaml ``` 编辑 `config.yaml` 文件,填入你的配置: ```yaml ai: api_key: "your_api_key" base_url: "https://api.openai.com/v1" model: "gpt-4o" feishu: app_id: "your_app_id" app_secret: "your_app_secret" app_token: "your_app_token" table_id: "your_table_id" system: memory_processing: false # 是否启用内存处理 post_process: "keep" # 文件处理策略 user_matching: enabled: true # 是否启用用户匹配 fallback_to_random: true # 是否启用随机匹配回退 cache_enabled: true # 是否启用缓存 cache_file: "./data/user_cache.json" ``` ### 3. 启动应用 ```bash # 使用启动脚本(推荐) python start_web_app.py # 或者直接启动 python web_app.py ``` ### 4. 访问界面 打开浏览器,访问:`http://localhost:5000` ## 使用指南 ### 图片上传分析 1. **选择图片**:点击上传区域或拖拽图片到指定区域 2. **上传分析**:点击"上传并分析"按钮 3. **查看结果**:系统会显示AI分析结果和操作状态 4. **自动处理**:任务会自动写入飞书多维表格 ### AI分析结果 系统会识别以下信息: - **任务描述**:从图片中提取的任务内容 - **优先级**:紧急、较紧急、一般、普通 - **状态**:未开始、进行中、已完成 - **发起人**:识别到的任务发起人姓名 - **部门**:发起人所属部门 - **开始日期**:任务开始时间 - **截止日期**:任务截止时间 ### 用户匹配机制 1. **自动匹配**:系统从飞书API获取用户列表 2. **精确匹配**:根据姓名精确匹配用户 3. **模糊匹配**:根据姓名包含关系匹配用户 4. **随机回退**:重名时随机选择最近联系人 5. **人工确认**:无法匹配时标记为待确认 ## 配置说明 ### 内存处理模式 ```yaml system: memory_processing: true # 启用内存处理,不保存图片文件 ``` **优点**: - 不占用磁盘空间 - 处理速度更快 - 隐私保护更好 **缺点**: - 无法保留原始截图 - 无法回溯分析过程 ### 用户匹配配置 ```yaml system: user_matching: enabled: true # 启用用户匹配 fallback_to_random: true # 启用随机匹配回退 cache_enabled: true # 启用缓存 cache_file: "./data/user_cache.json" # 缓存文件路径 ``` **缓存机制**: - 自动从飞书API获取用户列表 - 缓存有效期24小时 - 支持手动刷新缓存 ### 文件处理策略 ```yaml system: post_process: "keep" # 保留原始文件 # post_process: "delete" # 删除原始文件 # post_process: "move" # 移动到processed_images目录 ``` ## API接口 ### 1. 上传图片分析 **接口**:`POST /api/upload` **请求**: ```javascript // 使用FormData上传图片 const formData = new FormData(); formData.append('image', file); fetch('/api/upload', { method: 'POST', body: formData }); ``` **响应**: ```json { "success": true, "message": "任务已成功添加到飞书", "ai_result": { "task_description": "任务描述", "priority": "紧急", "status": "未开始", "initiator": "张三", "department": "研发部", "start_date": "2026-03-03", "due_date": "2026-03-10", "任务发起方": {"id": "user_123"}, "任务发起方.部门": "研发部" } } ``` ### 2. 获取用户缓存信息 **接口**:`GET /api/user_cache` **响应**: ```json { "success": true, "stats": { "user_count": 10, "recent_contact_count": 5, "cache_age_hours": 0.5, "is_expired": false } } ``` ### 3. 获取配置信息 **接口**:`GET /api/config` **响应**: ```json { "success": true, "config": { "memory_processing": false, "user_matching_enabled": true, "fallback_to_random": true, "cache_enabled": true, "post_process": "keep" } } ``` ## 界面说明 ### 主界面布局 ``` ┌─────────────────────────────────────────────────────────┐ │ Screen2Feishu │ ├─────────────────────────────────────────────────────────┤ │ 统计信息: 用户缓存 | 最近联系人 | 缓存状态 │ ├──────────────────────┬──────────────────────────────────┤ │ 📸 图片上传分析 │ ⚙️ 系统配置 │ │ │ │ │ [上传区域] │ 内存处理: 启用/禁用 │ │ 文件名: xxx │ 用户匹配: 启用/禁用 │ │ [上传] [清空] │ 随机匹配: 启用/禁用 │ │ │ 缓存功能: 启用/禁用 │ │ 上传状态: │ 文件处理: keep/delete/move │ │ [状态信息] │ │ │ │ 📝 状态日志 │ │ AI分析结果: │ [日志信息] │ │ [分析结果] │ │ └──────────────────────┴──────────────────────────────────┘ ``` ### 状态指示 - **绿色**:成功状态 - **黄色**:警告状态(待确认、随机匹配等) - **红色**:错误状态 - **蓝色**:信息状态 ### 日志系统 系统会记录所有操作的日志,包括: - 文件上传状态 - AI分析结果 - 用户匹配过程 - 飞书写入结果 - 错误信息 ## 使用场景 ### 场景1:截图转任务 1. 从聊天记录、邮件或文档中截图 2. 上传截图到Web界面 3. AI自动分析截图内容 4. 生成任务并写入飞书表格 ### 场景2:批量处理 1. 准备多个截图文件 2. 逐个上传分析 3. 系统自动处理并写入飞书 ### 场景3:实时监控 1. 配置监控文件夹 2. 新截图自动触发分析 3. 实时更新飞书表格 ## 故障排除 ### 1. 无法启动应用 **问题**:`ModuleNotFoundError` **解决**: ```bash pip install -r requirements.txt ``` ### 2. AI分析失败 **问题**:API密钥错误或网络问题 **解决**: - 检查 `config.yaml` 中的API密钥 - 检查网络连接 - 查看浏览器控制台错误信息 ### 3. 飞书写入失败 **问题**:飞书API权限不足 **解决**: - 检查飞书应用权限 - 验证 `app_id`、`app_secret`、`app_token`、`table_id` - 查看日志中的详细错误信息 ### 4. 用户匹配失败 **问题**:无法获取用户列表或匹配失败 **解决**: - 检查飞书API权限(用户列表读取) - 检查缓存文件路径 - 查看日志了解详细错误 ## 技术架构 ### 前端技术 - **HTML5**:语义化结构 - **CSS3**:现代样式,响应式设计 - **JavaScript**:异步请求,实时更新 ### 后端技术 - **Flask**:轻量级Web框架 - **OpenAI API**:AI图像分析 - **飞书API**:用户管理和表格写入 - **用户缓存**:提高匹配效率 ### 数据流 ``` 用户上传图片 → Web服务器接收 → AI分析 → 用户匹配 → 飞书写入 → 返回结果 ``` ## 项目结构 ``` Screen2Feishu/ ├── web_app.py # Web应用入口 ├── start_web_app.py # 启动脚本 ├── config.yaml # 配置文件 ├── requirements.txt # Python依赖 ├── templates/ │ └── index.html # Web界面 ├── services/ │ ├── ai_service.py # AI服务 │ └── feishu_service.py # 飞书服务 ├── utils/ │ ├── user_cache.py # 用户缓存 │ ├── config_loader.py # 配置加载 │ ├── logger.py # 日志工具 │ └── notifier.py # 通知工具 ├── data/ # 数据目录 ├── monitor_images/ # 监控图片 └── processed_images/ # 已处理图片 ``` ## 注意事项 1. **安全**:妥善保管API密钥,不要泄露 2. **权限**:确保飞书应用有必要的API权限 3. **网络**:保持网络连接稳定 4. **存储**:注意磁盘空间使用 5. **隐私**:敏感信息不要在日志中显示 ## 更新日志 ### v1.0.0 - ✅ 基础Web界面 - ✅ 图片上传分析 - ✅ AI自动识别 - ✅ 用户匹配机制 - ✅ 飞书集成 - ✅ 实时状态反馈 - ✅ 日志系统 - ✅ 配置管理 ## 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交代码 4. 创建Pull Request ## 许可证 MIT License ## 联系方式 如有问题或建议,请通过GitHub Issues反馈。 --- **Screen2Feishu** - 让AI帮你管理任务 🚀