cb5efbe3ca3a699d446de08eada8b4a20c0588a2
Screen2Feishu - AI任务管理Web应用
项目简介
Screen2Feishu是一个基于AI技术的任务管理Web应用,能够自动分析截图和任务描述,识别任务信息并写入飞书多维表格。
核心功能
📸 图片上传分析
- 上传截图,AI自动分析图片内容
- 识别任务描述、优先级、发起人等信息
- 自动匹配飞书用户,处理重名情况
- 将分析结果写入飞书多维表格
⚙️ 智能配置
- 内存处理模式:不保存图片文件,节省存储空间
- 用户匹配机制:自动匹配飞书用户列表
- 随机匹配回退:重名时随机选择最近联系人
- 缓存管理:自动管理用户缓存,提高匹配效率
📊 实时反馈
- 显示AI分析结果
- 显示操作状态和进度
- 系统配置信息展示
- 用户缓存状态监控
快速开始
1. 环境准备
# 安装Python依赖
pip install -r requirements.txt
2. 配置文件
复制配置文件模板并编辑:
cp config.example.yaml config.yaml
编辑 config.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. 启动应用
# 使用启动脚本(推荐)
python start_web_app.py
# 或者直接启动
python web_app.py
4. 访问界面
打开浏览器,访问:http://localhost:5000
使用指南
图片上传分析
- 选择图片:点击上传区域或拖拽图片到指定区域
- 上传分析:点击"上传并分析"按钮
- 查看结果:系统会显示AI分析结果和操作状态
- 自动处理:任务会自动写入飞书多维表格
AI分析结果
系统会识别以下信息:
- 任务描述:从图片中提取的任务内容
- 优先级:紧急、较紧急、一般、普通
- 状态:未开始、进行中、已完成
- 发起人:识别到的任务发起人姓名
- 部门:发起人所属部门
- 开始日期:任务开始时间
- 截止日期:任务截止时间
用户匹配机制
- 自动匹配:系统从飞书API获取用户列表
- 精确匹配:根据姓名精确匹配用户
- 模糊匹配:根据姓名包含关系匹配用户
- 随机回退:重名时随机选择最近联系人
- 人工确认:无法匹配时标记为待确认
配置说明
内存处理模式
system:
memory_processing: true # 启用内存处理,不保存图片文件
优点:
- 不占用磁盘空间
- 处理速度更快
- 隐私保护更好
缺点:
- 无法保留原始截图
- 无法回溯分析过程
用户匹配配置
system:
user_matching:
enabled: true # 启用用户匹配
fallback_to_random: true # 启用随机匹配回退
cache_enabled: true # 启用缓存
cache_file: "./data/user_cache.json" # 缓存文件路径
缓存机制:
- 自动从飞书API获取用户列表
- 缓存有效期24小时
- 支持手动刷新缓存
文件处理策略
system:
post_process: "keep" # 保留原始文件
# post_process: "delete" # 删除原始文件
# post_process: "move" # 移动到processed_images目录
API接口
1. 上传图片分析
接口:POST /api/upload
请求:
// 使用FormData上传图片
const formData = new FormData();
formData.append('image', file);
fetch('/api/upload', {
method: 'POST',
body: formData
});
响应:
{
"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
响应:
{
"success": true,
"stats": {
"user_count": 10,
"recent_contact_count": 5,
"cache_age_hours": 0.5,
"is_expired": false
}
}
3. 获取配置信息
接口:GET /api/config
响应:
{
"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:截图转任务
- 从聊天记录、邮件或文档中截图
- 上传截图到Web界面
- AI自动分析截图内容
- 生成任务并写入飞书表格
场景2:批量处理
- 准备多个截图文件
- 逐个上传分析
- 系统自动处理并写入飞书
场景3:实时监控
- 配置监控文件夹
- 新截图自动触发分析
- 实时更新飞书表格
故障排除
1. 无法启动应用
问题:ModuleNotFoundError
解决:
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/ # 已处理图片
注意事项
- 安全:妥善保管API密钥,不要泄露
- 权限:确保飞书应用有必要的API权限
- 网络:保持网络连接稳定
- 存储:注意磁盘空间使用
- 隐私:敏感信息不要在日志中显示
更新日志
v1.0.0
- ✅ 基础Web界面
- ✅ 图片上传分析
- ✅ AI自动识别
- ✅ 用户匹配机制
- ✅ 飞书集成
- ✅ 实时状态反馈
- ✅ 日志系统
- ✅ 配置管理
贡献指南
- Fork项目
- 创建功能分支
- 提交代码
- 创建Pull Request
许可证
MIT License
联系方式
如有问题或建议,请通过GitHub Issues反馈。
Screen2Feishu - 让AI帮你管理任务 🚀
Description
Languages
Python
64.5%
HTML
35.5%