• v1.1.2 4af2b4fbf3

    taojianmin released this 2026-09-14 16:01:20 +08:00 | 31 commits to main since this release

    v1.1.2

    sandbox 行为新发现:表格 10 列(工号/姓名/单位/岗位/合同类型/起止日期/剩余天数/预警/建议/材料包按钮),进入 hr/contracts 页面后需刷新触发 mock 数据加载,「续聘材料包」按钮不是下载文件,而是触发页面下方显示「续聘准备任务书」+「单位清单」卡片(含 checklist + 近三年考核表)。

    改动:

    • platform_collector:新列序映射 + 刷新触发 + 抓卡片文本(含考核数据 checklist)
    • _persist_contracts:同步解析卡片文本 → performance_records
    • repository.upsert_performance_record + 等次→分数映射(优秀=90 称职=75 基本称职=60 不称职=30)
    • repository.parse_sandbox_card_performance:双模式正则(行格式 + 叙述式)

    实测(sandbox 3 合同):

    contract_id 教师 解析 perf 条数 generate-renewal-task 输出
    RPA-T20190033-20260415 钱实验 4 observe
    RPA-T20200055-20260630 孙助理 6 observe(sandbox hint 一致)
    RPA-T20180021-20260831 王明远 6 observe

    端到端链路:sandbox 采集 → 卡片抓取 → 解析进 performance_records → scan-expiring-contracts → generate-renewal-task → decision_source=rules → HTML 任务书(含 AI 建议来源 + 材料计数)。


    仓库

    Downloads
  • v1.1.1 2f06291270

    taojianmin released this 2026-09-14 15:37:40 +08:00 | 32 commits to main since this release

    1.1.1

    • AI 续聘建议升级:本地规则版 → LLM 优先 + 规则降级
      • 新增 scripts/service/llm_decision.py:调宿主 jiangchang_skill_core.llm_manager.call_llm_json(prompt 含教师信息 + 业绩 + 材料文本摘要),输出 decision_source ∈ {llm, rules, rules_no_materials}
      • scripts/service/task_generator.py:AI 决策统一改为调 llm_decision.decide_suggestion;降级版 reason 文案加「已结合材料包(含 X 个文件,Y 字内容)」前缀
    • SmartCampus HR 平台 RPA 采集(新增)
      • 新增 scripts/service/platform_collector.py:Playwright 持久化 browser profile 复用登录态 → 抓合同表(姓名/单位/到期日/剩余天数/预警/建议) → 点"续聘材料包"按钮下载 PDF/Word → 落库
      • 平台:https://sandbox.jc2009.com/industries/campus/smartcampus/app/hr/contracts
      • 新增 CLI collect-from-platform [--limit N] [--show-browser]
      • 当前 sandbox mock 未部署「续聘材料包」按钮,RPA 仅采集 6 列台账;材料下载代码已就绪,sandbox 补按钮后自动生效
      • 实测:headless 模式 + profile cookie 复用,抓 3 行合同(钱实验/孙助理/王明远)→ 落 contracts 表
    • 材料包 PDF/Word 文本提取(新增)
      • 新增 scripts/service/material_parser.py:pypdf → pdf2image + pytesseract OCR(扫描件兜底);python-docx 抽 docx;antiword 兜底 .doc
      • 新增 CLI parse-materials [--contract-id C001]
    • 数据模型扩展
      • 新增表 materials_content(contract_id / file_name / file_path / extracted_text / parse_method / parsed_at)
      • renewal_tasks 加列:decision_source / materials_summary
      • 新增 scripts/db/migrations.py:idempotent ALTER/CREATE,init-db 自动应用
    • HTML 任务书升级
      • scripts/templates/task.html.j2 footer 加 "AI 建议来源:{{DECISION_SOURCE}} · 已审阅材料 {{MATERIALS_COUNT}} 份"
      • scripts/service/html_renderer.py 模板 ctx 加 DECISION_SOURCE / MATERIALS_COUNT
    • CLI 列表:v1.1.0 的 9 个 + 2 个新增 = 11 个
      • 新增:collect-from-platform / parse-materials
    • 依赖新增(requirements.txt):playwright / pypdf / python-docx / pdf2image / pytesseract / Pillow
    • .env.example 新增项:SMARTCAMPUS_BASE_URL / SMARTCAMPUS_PROFILE_DIR / MATERIALS_DOWNLOAD_DIR / OCR_LANG / LLM_MODEL_NAME
    • SKILL.md:version 1.1.0 → 1.1.1;用户意图路由表加 2 行;加「数据来源」段说明三层来源 + AI 决策来源透明化

    验证

    Downloads