AI项目经理学习:用Python脚本跑通项目风险预警小工具
很多搜索 AI项目经理学习 的人,真正想解决的问题不是背概念,而是怎么用技术手段把项目风险提前暴露出来。
这篇教程不讨论模型训练,而是带你用 Python 写一个风险预警脚本:读取任务数据,按逾期天数打分,输出高风险清单并触发告警。
适合零基础、有一点 Linux 命令行经验的项目管理人员或运维转岗者。
先准备可运行的环境和数据文件
在开始前,你需要一台能执行命令的 Linux 服务器或本地 WSL 环境,并确认 Python 3 和 cron 可用。
以下命令用于检查:
python3 --version
crontab -l
如果 crontab -l 提示 no crontab for ...,属于正常现象,表示当前用户还没有定时任务。
下面创建项目目录和数据文件:
mkdir -p ~/ai-pm/risk
cd ~/ai-pm/risk
用编辑器新建 tasks.json,模拟从项目管理工具导出的任务数据。
字段含义:due_date 是截止日期,status 是状态,owner 是负责人。
[
{"id": 1, "title": "接口联调", "due_date": "2025-06-01", "status": "进行中", "owner": "张三"},
{"id": 2, "title": "数据迁移", "due_date": "2025-05-20", "status": "未开始", "owner": "李四"},
{"id": 3, "title": "用户验收", "due_date": "2025-06-10", "status": "已完成", "owner": "王五"}
]
把日期改成你实际运行时的日期附近,便于观察逾期效果。
编写风险评分脚本
新建 risk_alert.py,逻辑是:已完成任务跳过,未完成任务按逾期天数计算风险分,超过阈值输出告警。
import json
from datetime import date, datetime
RISK_THRESHOLD = 7 # 逾期超过7天视为高风险
def load_tasks(path="tasks.json"):
with open(path, encoding="utf-8") as f:
return json.load(f)
def score_task(task, today=None):
if task.get("status") == "已完成":
return 0
today = today or date.today()
due = datetime.strptime(task["due_date"], "%Y-%m-%d").date()
overdue_days = (today - due).days
return max(0, overdue_days)
def main():
tasks = load_tasks()
high_risk = []
for t in tasks:
score = score_task(t)
if score >= RISK_THRESHOLD:
high_risk.append((t["id"], t["title"], t["owner"], score))
if high_risk:
print("高风险任务清单:")
for item in high_risk:
print(f"ID={item[0]} 标题={item[1]} 负责人={item[2]} 逾期天数={item[3]}")
else:
print("当前无高风险任务")
if __name__ == "__main__":
main()
运行脚本:
python3 risk_alert.py
如果 tasks.json 中有逾期超过 7 天的未完成任务,你会看到对应清单;
否则输出“当前无高风险任务”。
这一步验证了评分逻辑是否生效。
用 cron 定时执行并验证告警输出
手动运行通过后,用 cron 每天上午 9 点自动执行,并把结果追加到日志文件。
执行 crontab -e 并添加:
0 9 * * * cd /home/你的用户名/ai-pm/risk && /usr/bin/python3 risk_alert.py >> alert.log 2>&1
保存后确认任务已写入:
crontab -l
为了快速验证,可以临时把时间改为下一分钟,观察 alert.log 是否产生内容:
tail -f ~/ai-pm/risk/alert.log
如果日志没有输出,先检查脚本路径、Python 路径是否正确,再确认 cron 服务是否在运行:
systemctl status cron
注意:cron 环境变量与登录 shell 不同,脚本中不要依赖相对路径,建议使用绝对路径或在 crontab 中先 cd 到脚本目录。
常见坑和调整建议
第一,日期格式必须统一为 YYYY-MM-DD,否则 strptime 会报错。
第二,已完成状态字符串要和你的数据源保持一致,比如“已完成”和“完成”不能混用。
第三,如果任务量较大,建议把 tasks.json 换成从 Jira 或飞书 API 拉取,但需要先申请 API 权限并处理分页。
第四,风险阈值 RISK_THRESHOLD 可以按项目节奏调整,不必固定为 7 天。
这套小工具不能替代项目管理经验,但能让你在 AI项目经理学习 的起步阶段,先建立“数据采集—规则判断—告警输出”的可验证闭环。
后续再叠加趋势分析或自动通知,会更稳妥。