
壁纸
发表评论


python3 -m venv ~/venvs/comfyui
source ~/venvs/comfyui/bin/activate
pip install -U comfy-cli
comfy install --latest
# 默认装到 ~/comfyui
comfy launch
#终端出现
#Starting server
#To see the GUI go to: http://127.0.0.1:8188
#更新
comfy update
镜像节点
在 ~/comfyui 里新建 .env 文件,写入
HF_ENDPOINT=https://hf-mirror.com
ComfyUI-Manager 和多数节点会优先读这个变量,速度直接起飞。
c1 ,c2,c3 ,c4= st.columns([3,1, 1,1]) 使用with显示st.cache_data.clear() 清除缓存 st.rerun() 及返回,感觉就像AJAX交互一样df['path']=df['path'].apply( lambda name :f'<img src="{base_url}/{name}">' )坑点 A标签不能包裹button 需要CSS来修改
import streamlit as st
from datetime import datetime
import sqlite3
import pathlib
import json,time,os
import pandas as pd
if 'conn' not in st.session_state:
st.session_state.conn=sqlite3.connect(
'ocr.sqlite',
timeout=30.0,
check_same_thread=False
)
st.session_state.cursor=st.session_state.conn.cursor()
def get_id(id):
st.session_state.cursor.execute("SELECT id,done FROM pdf WHERE id=(?) AND done>0",(id,))
if st.session_state.cursor.fetchone():
st.session_state.cursor.execute("SELECT * FROM img WHERE pdf_id=(?)",(id,))
rows=st.session_state.cursor.fetchall()
cols=[desc[0] for desc in st.session_state.cursor.description]
# cols=[desc[0] for desc in st.session_state.cursor.description]#获取键名
return pd.DataFrame(rows,columns=cols)
return False
# streamlit.query_params.get(‘id’)
id=st.query_params.get('id')
if not id:
id=56
base_url = "/app/static/img"
df=get_id(id)
df['path']=df['path'].apply(
lambda name :f'<img src="{base_url}/{name}">'
)
st.markdown(
df.to_html(escape=False, index=False),
unsafe_allow_html=True
)
st.write()
更新代码
import streamlit as st
from datetime import datetime
import sqlite3, json, pathlib, time, os
import pandas as pd
# ---------- 数据库连接 ----------
if "conn" not in st.session_state:
st.session_state.conn = sqlite3.connect(
"ocr.sqlite", timeout=30.0, check_same_thread=False
)
st.session_state.cursor = st.session_state.conn.cursor()
# ---------- 工具函数 ----------
#@st.cache_data(show_spinner=False)
@st.cache_data(show_spinner=False, ttl=300) # 5 分钟后自动失效
def get_id(_id: int) -> pd.DataFrame:
"""根据 pdf.id 拉取所属 img 记录"""
cur = st.session_state.cursor
cur.execute("SELECT * FROM pdf WHERE id=? AND done>0", (_id,))
if not cur.fetchone():
return pd.DataFrame()
cur.execute(
"""SELECT id, path, CASE WHEN done>0 THEN datetime(done,'unixepoch','localtime') ELSE '未执行' END as 状态,
info, done
FROM img
WHERE pdf_id=?""",
(_id,),
)
rows = cur.fetchall()
cols = [desc[0] for desc in cur.description]
df = pd.DataFrame(rows, columns=cols)
# info 是 json 字符串,解析成 dict 方便后面展示
df["info"] = df["info"].apply(json.loads)
return df
def reset_done(img_id: int):
"""把单条 img 的 done 置 0"""
st.session_state.cursor.execute("UPDATE img SET done=0 WHERE id=?", (img_id,))
st.session_state.conn.commit()
# 让缓存失效,重新拉数据
st.cache_data.clear()
# ---------- 主流程 ----------
id = st.query_params.get("id")
if not id:
id = 56
else:
id = int(id)
df = get_id(id)
if df.empty:
st.warning("该 pdf 未找到已处理完成的图片")
st.stop()
# st.write(id)
base_url = "/app/static/img"
# ---------- 方案 A:每行一个按钮 ----------
st.subheader("逐行重置")
for _, row in df.iterrows():
c1 ,c2,c3 ,c4= st.columns([3,1, 1,1])
# 查看图片
with c1:
st.markdown(
f'<a href="{base_url}/{row["path"]}" target="_blank">查看图片</a>',
unsafe_allow_html=True,
)
# 当前 done
with c2:
st.write(row["done"])
with c3:
st.write(row['状态'])
# 重置按钮
with c4:
if st.button("重置", key=f"reset_{row['id']}"):
reset_done(row["id"])
st.rerun() # 立刻刷新页面
# 如果用户改过 done,点“保存”才生效
if st.button("保存修改"):
for _, r in edited.iterrows():
st.session_state.cursor.execute(
"UPDATE img SET done=? WHERE id=?", (r["done"], r["id"])
)
st.session_state.conn.commit()
st.success("已保存")
st.cache_data.clear()
st.rerun()
streamlit run mian.py --server.enableStaticServing=true
主要在根目录下static目录
http://localhost:8501/app/static/xxxx
static后面xxxx为static后面的文件目录
| 管理域 | 过程(按顺序) | 一句话定义(背) | 论文举例(1 行,可抄) |
|---|---|---|---|
| 整合 | 1.制定项目章程 | 给项目“上户口”,让老板签字画押给钱给人。 | 董事长在章程上批注“优先保障 300 万预算”,项目才拿到代码 001 的合法身份。 |
| 2.制订项目管理计划 | 把分散子计划缝成“一张网”,成为后续基线。 | 用配置库锁定 V1.0 版计划,任何改动走 CCB,杜绝口头变更。 | |
| 3.指导与管理项目工作 | 按计划“搬砖”,并实时记录搬了多少。 | 每日 Jenkins 自动构建,产出 283 次构建报告,支撑 EV 测量。 | |
| 4.管理项目知识 | 让隐形经验从高手脑袋流向组织知识库。 | 把排障脚本上传 Confluence,后续 3 个项目复用,平均定位时间由 2h→15min。 | |
| 5.监控项目工作 | 拿计划当“镜子”照实际,发现偏差就报警。 | SPI=0.87 触发红色预警,次日启动赶工,最终抢回 5 天。 | |
| 6.实施整体变更控制 | 所有变更“一个口”进出,防止 Feature Creep。 | 客户“加个小报表”走 CCB,评估需 7 人日,被驳回并引导至二期。 | |
| 7.结束项目或阶段 | 正式“销号”,把经验教训归档并释放资源。 | 召开庆功+复盘会,输出《无人机项目失败 18 条》被公司纳入 PMO 资产库。 | |
| 范围 | 1.规划范围管理 | 写“范围宪法”,规定如何定义、验证、控制。 | 在范围管理计划中明确“需求冻结日”,杜绝无限制蔓延。 |
| 2.收集需求 | 把干系人“嘴里的话”变成可跟踪的文字。 | 用原型+头脑风暴收集 127 条需求,排重后剩 83 条纳入需求文件。 | |
| 3.定义范围 | 给需求“画边界”,写进范围说明书签字。 | 明确“不支持离线支付”,防止客户事后想当然。 | |
| 4.创建 WBS | 把大块工作“切蛋糕”到 4-6 层,便于估算。 | 切出 182 个工作包,每个 8-80h,方便两周滚动排期。 | |
| 5.确认范围 | 让甲方“签字收货”,防止日后赖账。 | 每迭代结束演示,客户现场点击“确认”按钮,生成验收邮件。 | |
| 6.控制范围 | 给范围装上“防盗门”,非法闯入就报警。 | 发现开发组私自加“夜间模式”,走变更被驳回,避免 15 人日浪费。 | |
| 进度 | 1.规划进度管理 | 定“进度宪法”:单位、临界值、发布周期。 | 规定迭代 2 周,临界值 SPI<0.9 必须提交补救方案。 |
| 2.定义活动 | 把工作包“剁碎”成可排期的活动。 | 把“接口开发”拆成 9 个活动,最短 4h,最长 16h。 | |
| 3.排列活动顺序 | 给活动“排座次”,建立 FS/SS 逻辑。 | 用 PDM 画网络图,识别 3 条关键路径,提前量-2d 压缩至 1 条。 | |
| 4.估算活动持续时间 | 给每个活动“贴工期”,含应急储备。 | 用三点估算,得出“支付模块”最可能 6d,加 20% 储备=7.2d。 | |
| 5.制订进度计划 | 把工期+逻辑“压成”一张甘特图/里程碑。 | 用资源平滑后,发布日期提前 4 天,且无额外成本。 | |
| 6.控制进度 | 拿实际进度“对表”,差太多就纠偏。 | 每日燃尽图显示故事点落后 15%,立即启动快速跟进。 | |
| 成本 | 1.规划成本管理 | 写“成本宪法”:计量单位、精确度、临界值。 | 规定“人日”为最小单位,>3% 偏差必须写分析报告。 |
| 2.估算成本 | 给活动“贴钱标签”,含应急储备。 | 用类比估算+专家判断,得出 198 万,与公司历史 5 个项目偏差<5%。 | |
| 3.制定预算 | 把估算“压”成时间分段的成本基准。 | 用成本汇总生成 S 曲线,Q1 支出 42%,Q2 30%,符合资金计划。 | |
| 4.控制成本 | 拿实际花费“对账”,超支就踩刹车。 | CPI=0.85 触发审计,发现外包重复报价,追回 12 万。 | |
| 质量 | 1.规划质量管理 | 写“质量宪法”:标准、指标、核查方法。 | 把“接口响应<200ms”写进质量测量指标,用 JMeter 每周抽检。 |
| 2.管理质量 | 做“过程体检”,把缺陷消灭在编码前。 | 用因果图找 Root Cause,发现 80% 缺陷因需求歧义,补充 1 次评审后缺陷减半。 | |
| 3.控制质量 | “产品体检”,结果写入验收报告。 | 用检查+统计抽样,3 轮测试后缺陷密度 0.15 个/KLOC,低于行业 0.4。 | |
| 资源 | 1.规划资源管理 | 画 RAM 图+团队章程,谁干啥、咋沟通写清楚。 | RACI 矩阵让测试经理一次找到“接口人”,会议时间缩短 40%。 |
| 2.估算活动资源 | 给活动“点人头+点设备”。 | 估算“压力测试”需 8 核 16G 服务器 3 台,提前 2 周预订,价低 15%。 | |
| 3.获取资源 | 把人和物“拉”进项目。 | 用预分派锁定 2 名算法专家,防止被其他项目抢走。 | |
| 4.建设团队 | 让成员“升温”:信任、技能、凝聚力。 | 5 次团建+1 次编码 PK,把 Tuckman 从震荡推进到发挥,Sprint 速度提升 28%。 | |
| 5.管理团队 | 日常“加油+灭火”:绩效、冲突、士气。 | 用冲突管理“合作/解决问题”把开发与测试对立化解,缺陷返工率降 20%。 | |
| 6.控制资源 | 让资源“按需来、按时走”,不超支。 | 用资源日历+趋势分析,提前 1 周发现 GPU 资源冲突,协调备用机,零停工。 | |
| 沟通 | 1.规划沟通 | 给每条信息“定收件人、定渠道、定频率”。 | 为 CEO 定制“一页纸”月报,红/黄/绿灯,3 分钟看完,零追问。 |
| 2.管理沟通 | 按规划“发快递”,确保送达、可读、可反馈。 | 用企业微信机器人每日 17:30 自动推送进度,阅读率 100%,答疑降 30%。 | |
| 3.监督沟通 | 看信息“到没到、好不好”,随时调频道。 | 调查发现邮件打开率<50%,改为视频会议,满意度由 3.2→4.6。 | |
| 风险 | 1.规划风险管理 | 写“风险宪法”:概率-影响矩阵、阈值、应对流程。 | 规定 P>70% 且 I=High 必须上保险或做原型验证。 |
| 2.识别风险 | 把“雷”全扫出来,贴标签登记。 | 用鱼骨图+专家访谈列出 48 条,其中 2 条芯片断供被证实。 | |
| 3.定性分析 | 给风险“排座次”:先干高 P、高 I 的。 | 概率-影响矩阵把 8 高风险标红,优先做应对。 | |
| 4.定量分析 | 用数据算“雷有多大”,蒙特卡洛跑总工期。 | 模拟 1000 次,显示工期 180-210d,P80=195d,被董事会采纳。 | |
| 5.规划风险应对 | 给每条雷“配拆弹方案”:避、转、减、接。 | 芯片断供→签两家备选供应商+锁价 6 个月,风险残余 5%。 | |
| 6.实施风险应对 | 真把“拆弹方案”落地。 | 提前采购 2000 片 FPGA,现货价涨 30% 时项目零影响。 | |
| 7.监督风险 | 看“雷是否复燃”,新雷随时补录。 | 风险审计发现“汇率”新雷,立即追加 3% 管理储备。 | |
| 采购 | 1.规划采购 | 写“采购宪法”:合同类型、评分标准、交付方式。 | 采用固定总价+里程碑付款,把成本超支风险锁给供方。 |
| 2.实施采购 | 走“招标-评标-授标”三步曲,把外部资源娶回家。 | 用多标准决策选中标人,技术 60 分+价格 40 分,节约 11%。 | |
| 3.控制采购 | 合同执行“视频监控”:质量、进度、付款三线对表。 | 验收发现 12% 缺陷>合同 5% 阈值,扣 2% 尾款并强制返工。 | |
| 干系人 | 1.识别干系人 | 把“能影响项目或被项目影响的”全部列清单。 | 权力-利益矩阵识别环保局为“高-高”,提前纳入评审。 |
| 2.规划干系人参与 | 给每类干系人“定制剧本”:何时、何种方式参与。 | 对“高-低”的财务总监每月一封成本简报,防止突然砍预算。 | |
| 3.管理干系人参与 | 按剧本“拉人上场”,解决痛点、强化支持。 | 给生产部开现场观摩会,打消“新系统抢饭碗”顾虑,阻力归零。 | |
| 4.监督干系人参与 | 看“演员是否按剧本演”,随时改台词。 | 调查发现一线工人参与度<50%,加开夜班茶话会,满意度+1.8。 |
| 绩效域 | 关注重点(阅卷关键词) | 落地做法(可抄) | 论文可直接套用的一段(100 字左右) |
|---|---|---|---|
| 干系人 | 权力-利益、参与程度、抵制/支持转化 | 1. 权力-利益矩阵 2. 参与度评估矩阵 3. 沟通风格再定制 | 项目初期环保局因“双高”被识别为关键干系人,但其持抵制态度。笔者通过“现场观摩+每周环保专报”双轨沟通,将其参与度从“抵制”提升至“支持”,环评审批由原先 30 天压缩至 7 天,为关键里程碑抢出 23 天窗口。 |
| 团队 | Tuckman 五阶段、冲突管理、激励、技能提升 | 1. 每日站会加速震荡→规范 2. 冲突用合作策略 3. 技术分享提升技能 | 团队处于震荡期,开发与测试就接口协议争执不休。笔者引入“合作/解决问题”工作坊,2 小时共创出《接口契约 22 条》,后续 3 轮迭代缺陷返工率由 25% 降至 8%,顺利进入发挥阶段并提前 11 天交付。 |
| 开发方法与生命周期 | 预测-迭代-增量-混合、裁剪、DoD | 1. 需求稳定模块用瀑布 2. AI 算法用迭代 3. 每迭代设 DoD | 项目采用“混合生命周期”:硬件设计用预测型,AI 视觉算法用 2 周迭代。通过在每个迭代定义“模型精度≥92%”的 DoD,使需求变更响应时间由 15 天缩短至 3 天,同时保证整机联调节点不变。 |
| 规划 | 渐进明细、滚动规划、基准、预留 | 1. 需求冻结点 2. 版本火车 3. 成本+进度双基准 | 面对频繁需求变更,笔者设置“月度滚动规划”机制:每月末根据剩余工作重新评估范围、进度与成本,形成新版基准并获 CCB 批准。第 3 次滚动后砍掉 2 个低价值功能,节省 120 人日,CPI 由 0.89 回升至 1.02。 |
| 项目工作 | WBS、问题日志、变更、EVM | 1. 每日站会燃尽图 2. 问题 24h 闭环 3. 变更强制走 CCB | 通过“每日站会+燃尽图”监控项目工作,发现 SPI=0.87 立即启动快速跟进,把串行测试改为并行,最终抢回 5 天,保证版本按期上线。 |
| 交付 | 可交付成果、验收标准、DoOR、迭代评审 | 1. 迭代评审必演示 2. 客户现场签字 3. 缺陷<5% 才放行 | 每迭代结束举行“Demo Day”,客户现场点击功能并邮件确认。经过 5 次迭代交付 5 个子系统,一次验收通过率 100%,客户满意度由 75 分提至 92 分。 |
| 测量 | KPI、OKR、CPI/SPI、质量指标 | 1. 周度 EVM 2. 质量看板 3. 红黄灯预警 | 建立“周度测量仪表盘”,CPI<0.9 自动亮红灯并触发审计,最终追回 12 万元重复报价,实现成本偏差控制在 ±2% 以内。 |
| 不确定性 | 风险、机会、储备、应急 | 1. 风险登记册周刷 2. 蒙特卡洛 3. 管理储备 10% | 通过蒙特卡洛 1000 次模拟,显示工期 P80=195 天,笔者申请 10% 管理储备并锁定备选芯片供应商,最终在外部断货冲击下仍零停工,项目准时交付。 |