# 三种工作流功能说明 ## 📋 功能说明 根据客户说的话,自动判断执行不同的工作流程: 1. **"找一下这个图"** → 查找图片工作流 2. **"做一下"** → 处理图片工作流 3. **"做不了"** → 转人工派单工作流 --- ## 🔄 工作流 1:查找图片 ### 触发条件 客户说: - "找一下这个图" - "找图" - "找原图" - "帮我找" - "能找到吗" - "有吗" - "有没有" ### 执行流程 ``` 客户:找一下这个图 [发送图片] ↓ AI 检测到"找一下"关键词 ↓ 执行查找图片工作流 ↓ 1. 创建任务(operation=find) 2. 上传图片到图绘平台 3. 更新任务状态为 completed ↓ 回复客户:"找到了!图片在这里:http://tuhui.cloud/works/123" ``` ### 示例对话 ``` 客户:找一下这个图 [图片] AI: 找到了!图片在这里:http://tuhui.cloud/works/123 ``` --- ## 🔄 工作流 2:处理图片 ### 触发条件 客户说: - "做一下" - "处理一下" - "安排" - "开始做" - "弄一下" - "修一下" - "P 一下" - "P 图" ### 执行流程 ``` 客户:做一下 [发送图片] ↓ AI 检测到"做一下"关键词 ↓ 执行处理图片工作流 ↓ 1. 创建任务(operation=enhance) 2. 回复客户"稍等,我看看...好的,可以做,马上处理" 3. 启动图片处理流程 ↓ 处理完成后发送结果给客户 ``` ### 示例对话 ``` 客户:做一下 [图片] AI: 稍等,我看看...好的,可以做,马上处理 [处理中...] AI: 做好了,请查看 [结果图] ``` --- ## 🔄 工作流 3:转人工派单 ### 触发条件 客户说: - "做不了" - "处理不了" - "弄不了" - "无法处理" - "做不到" - "搞不定" 或者 AI 判断无法处理时 ### 执行流程 ``` AI:做不了 ↓ 检测到"做不了"关键词 ↓ 执行转人工派单工作流 ↓ 1. 创建任务(operation=manual) 2. 查询企业微信在线设计师 - 调用 API: GET http://huichang.online:8001/online 3. 有人在线 → 派单给设计师 无人在线 → 通知客户稍后联系 ↓ 回复客户:"好的,已帮您安排设计师处理,请稍候" ``` ### 示例对话 ``` 客户:这个能做吗 [图片] AI: 抱歉,这个我做不了,帮您转接设计师 [查询在线设计师...] AI: 好的,已帮您安排设计师处理,请稍候 ``` --- ## 🔧 技术实现 ### 1. 工作流程路由器 文件:`/root/ai_customer_service/ai_cs/core/workflow_router.py` **关键词检测**: ```python find_keywords = ["找一下", "找图", "找原图", ...] process_keywords = ["做一下", "处理一下", "安排", ...] unable_keywords = ["做不了", "处理不了", "弄不了", ...] ``` ### 2. 工作流执行器 文件:`/root/ai_customer_service/ai_cs/core/workflow.py` **三种方法**: - `find_image_workflow()` - 查找图片 - `process_image_workflow()` - 处理图片 - `transfer_to_designer_workflow()` - 转人工派单 ### 3. 消息处理器 文件:`/root/ai_customer_service/ai_cs/core/pydantic_ai_agent.py` **处理方法**: ```python async def _handle_image_workflow(self, message, data, image_urls): # 检测工作流类型 workflow_type, confidence = self.workflow_router.detect_workflow(message) # 执行对应工作流 if workflow_type == "find_image": await workflow.find_image_workflow(...) elif workflow_type == "process_image": await workflow.process_image_workflow(...) elif workflow_type == "transfer_human": await workflow.transfer_to_designer_workflow(...) ``` --- ## 📊 设计师在线状态 API ### 查询在线设计师 **接口**:`GET http://huichang.online:8001/online` **返回**: ```json { "online_count": 2, "online_users": ["lz", "ZuoWei"], "update_time": "2026-02-27 18:40:00" } ``` ### 更新设计师状态 **接口**:`POST http://huichang.online:8001/update-status` **请求**: ```json { "username": "lz", "status": "online" } ``` --- ## ⚠️ 注意事项 1. **关键词匹配**:支持多种说法,自动识别 2. **置信度**:>0.9 才执行对应工作流 3. **无人在线处理**:通知客户稍后联系,企业微信预警 4. **任务记录**:所有工作流都保存到数据库 5. **状态追踪**:任务状态自动流转 --- ## 🔍 日志查看 ```bash # 查看工作流执行日志 grep "工作流" /tmp/ai-cs.log # 查看派单记录 grep "派单" /tmp/ai-cs.log # 查看在线设计师查询 grep "在线设计师" /tmp/ai-cs.log ``` --- **文档版本**: v1.0 **更新日期**: 2026-02-27