Files
alert-contract-expiring-hr/.env.example
taojianmin a3b4092a30 v1.1.1: 升级 AI 续聘建议为 LLM + Playwright RPA 采集 SmartCampus 平台材料
新增:

- scripts/service/platform_collector.py:Playwright RPA(持久化 browser profile 复用登录态),抓合同表(姓名/单位/到期日/剩余天数/预警/建议),逐行点"续聘材料包"按钮下载 PDF/Word 到 data/materials/

- scripts/service/material_parser.py:PDF/Word 文本提取(pypdf → pdf2image + pytesseract OCR 扫描件兜底;python-docx 抽 docx;antiword 兜底 .doc)

- scripts/service/llm_decision.py:AI 决策统一入口(优先调宿主 jiangchang_skill_core.llm_manager.call_llm_json;本地降级到规则版;输出 decision_source ∈ {llm, rules, rules_no_materials})

- scripts/db/migrations.py:idempotent ALTER/CREATE,建 materials_content 表 + renewal_tasks 加 decision_source / materials_summary 列

修改:

- scripts/db/connection.py:init_db() 自动调 apply_all() 应用 v1.1.1 迁移

- scripts/db/repository.py:加 insert_material / list_materials_for_contract / list_pending_materials / summarize_materials / get_task_full

- scripts/service/task_generator.py:AI 决策统一改为调 llm_decision.decide_suggestion(materials_summary=...);reason 文案加「已结合材料包(X 份文件,Y 字 / 待解析)综合判断:...」

- scripts/service/html_renderer.py:ctx 加 DECISION_SOURCE(LLM 推理 / 本地规则 / 本地规则(无材料))+ MATERIALS_COUNT

- scripts/templates/task.html.j2:footer 加 "AI 建议来源:{{DECISION_SOURCE}} · 已审阅材料 {{MATERIALS_COUNT}} 份"

- scripts/cli/app.py:新增 2 个 CLI(collect-from-platform / parse-materials);现有 9 个不动

- 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 / LLM_API_BASE_URL / LLM_API_TOKEN

- SKILL.md:version 1.1.0 → 1.1.1;用户意图路由表加 2 行;新增「数据来源」段(三层来源 + AI 决策透明化)

- README.md:使用前要准备 → 加 playwright install chromium 步骤

- CHANGELOG.md:v1.1.1 条目

- scripts/util/constants.py:SKILL_VERSION 1.1.0 → 1.1.1

本地验证:11 个 CLI 全部 exit 0;decision_source=rules;reason 含「已结合材料包(6 份文件,待解析)」;HTML footer 含决策来源。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-14 15:01:24 +08:00

62 lines
2.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 合同到期智能预警与续聘辅助 - 配置示例
# 行头说明「是什么」;行尾说明「怎么填」;进程环境变量 > 用户 .env > 本文件
# 本地路径配置(宿主环境由 jiangchang_skill_core 提供)
# SQLite DB 文件路径(默认 {skill_root}/data/alert-contract-expiring-hr.db)
DB_PATH=
# HTML 输出目录(默认 {skill_root}/output)
HTML_OUTPUT_DIR=
# 数据根(默认 {skill_root}/data)
JIANGCHANG_DATA_DIR=
# 人事系统 API 入口,例如 https://hr.example.edu/api/v1
HR_API_BASE_URL=
# 人事系统 API 调用凭证(Bearer Token),由人事处统一发放
HR_API_TOKEN=
# 党委教师工作部 API 入口,例如 https://teacher-affairs.example.edu/api/v1
TEACHER_AFFAIRS_API_BASE_URL=
# 党委教师工作部 API 调用凭证
TEACHER_AFFAIRS_API_TOKEN=
# 企业微信 API 入口,用于推送个人版任务书和单位版清单
WECOM_API_BASE_URL=https://qyapi.weixin.qq.com/cgi-bin
# 企业微信 API 调用凭证
WECOM_API_TOKEN=
# 扫描阈值(天),距到期日小于等于此值触发对应等级预警;逗号分隔黄/橙/红
ALERT_THRESHOLDS=90,60,30
# 每日扫描时间(HH:MM,24h 制),cron 启用时使用
DAILY_SCAN_AT=02:00
# 全校扫描超时(秒),默认 120
SCAN_TIMEOUT_SEC=120
# 日志级别
LOG_LEVEL=INFO
# ----- v1.1.1:SmartCampus HR 平台 RPA -----
# 平台基础 URL(默认 sandbox)
SMARTCAMPUS_BASE_URL=https://sandbox.jc2009.com
# HR 合同管理路径
SMARTCAMPUS_HR_PATH=/industries/campus/smartcampus/app/hr/contracts
# Playwright 持久化浏览器 profile(首次手工登录后保存 cookie)
SMARTCAMPUS_PROFILE_DIR=
# 材料包下载目录(PDF/Word)
MATERIALS_DOWNLOAD_DIR=
# OCR 语言(pytesseract:默认 chi_sim+eng)
OCR_LANG=chi_sim+eng
# ----- v1.1.1:AI 决策(宿主 LLM) -----
# 宿主 jiangchang_skill_core.llm_manager 调 LLM 时,模型名覆盖(可选)
LLM_MODEL_NAME=
# LLM API base URL(生产由宿主注入;本地留空走降级)
LLM_API_BASE_URL=
# LLM API token(生产由宿主注入;本地留空)
LLM_API_TOKEN=