Add per-action AI privacy mode

This commit is contained in:
2026-05-27 00:21:16 +08:00
parent 7e329f1d85
commit 5d96c1de6d
15 changed files with 1993 additions and 340 deletions

View File

@@ -26,11 +26,11 @@ from typing import Any
PROJECT_ROOT = Path(__file__).resolve().parents[2]
DEFAULT_INPUT_DIR = PROJECT_ROOT / "待处理-患者首页PDF"
DEFAULT_OUTPUT_DIR = PROJECT_ROOT / "数据处理结果区"
DEFAULT_PG_TABLE = "Patient_FrontPages"
DEFAULT_PG_TABLE = os.environ.get("PGTABLE") or os.environ.get("PG_PATIENT_TABLE", "")
DEFAULT_DEPARTMENT_RULE_PATH = PROJECT_ROOT / "数据处理工作区" / "01_配置规则" / "01_科室分类规则.json"
DEFAULT_MINERU_CLIENT_PATH = PROJECT_ROOT / "数据处理工作区" / "05_备用读取" / "05_备用PDF转Markdown_Mineru.py"
DEFAULT_MINERU_MD_DIR = DEFAULT_OUTPUT_DIR / "06_Mineru_MD"
DEFAULT_MINERU_URL = os.environ.get("MINERU_URL", "http://10.168.1.103:4000/extract")
DEFAULT_MINERU_URL = os.environ.get("MINERU_URL", "")
CSV_COLUMNS = [
@@ -507,6 +507,8 @@ def ensure_mineru_markdown(pdf_path: Path, args: argparse.Namespace) -> None:
md_dir = args.mineru_md_dir.resolve()
if markdown_files_for_pdf(pdf_path, md_dir):
return
if not args.mineru_url:
raise RuntimeError("缺少 Mineru API 服务地址:请设置 MINERU_URL 或传入 --mineru-url")
client_path = args.mineru_client.resolve()
if not client_path.exists():
raise RuntimeError(f"未找到 Mineru 客户端:{client_path}")

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
从 PostgreSQL 导出患者首页复核表,并把人工复核结果回写到 Patient_FrontPages
从 PostgreSQL 导出患者首页复核表,并把人工复核结果回写到目标首页表
依赖系统命令 psql数据库密码通过 PGPASSWORD 环境变量或 --pg-password 传入。
"""
@@ -20,7 +20,7 @@ from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parents[2]
DEFAULT_OUTPUT = PROJECT_ROOT / "数据处理结果区" / "04_复核与人工校正" / "患者首页_人工复核表.csv"
DEFAULT_TABLE = "Patient_FrontPages"
DEFAULT_TABLE = os.environ.get("PGTABLE") or os.environ.get("PG_PATIENT_TABLE", "")
def quote_pg_identifier(identifier: str) -> str:

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Patient_FrontPages 做字段级体检。
目标首页表做字段级体检。
输出:
- 数据处理结果区/05_质量体检/患者首页_数据库体检报告.txt
@@ -23,7 +23,7 @@ from pathlib import Path
PROJECT_ROOT = Path(__file__).resolve().parents[2]
DEFAULT_OUTPUT_DIR = PROJECT_ROOT / "数据处理结果区" / "05_质量体检"
DEFAULT_TABLE = "Patient_FrontPages"
DEFAULT_TABLE = os.environ.get("PGTABLE") or os.environ.get("PG_PATIENT_TABLE", "")
def quote_pg_identifier(identifier: str) -> str:
@@ -151,7 +151,7 @@ WHERE n.nspname = 'public'
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="核验 Patient_FrontPages 字段注释、空值和疑似错位记录。")
parser = argparse.ArgumentParser(description="核验目标首页表字段注释、空值和疑似错位记录。")
parser.add_argument("--pg-host", default=os.environ.get("PGHOST", ""), help="PostgreSQL 主机;也可用 PGHOST")
parser.add_argument("--pg-port", default=os.environ.get("PGPORT", "5432"), help="PostgreSQL 端口;也可用 PGPORT")
parser.add_argument("--pg-database", default=os.environ.get("PGDATABASE", ""), help="PostgreSQL 数据库;也可用 PGDATABASE")

View File

@@ -17,15 +17,18 @@ def main():
help="源 PDF 文件夹路径 (默认: ./Papers/ORI_PDF)")
parser.add_argument("-t", "--target", type=str, default="./Papers/ORI_MD",
help="目标 Markdown 文件夹路径 (默认: ./Papers/ORI_MD)")
parser.add_argument("-u", "--url", type=str, default="http://10.168.1.103:4000/extract",
help="API 服务端地址 (默认: http://10.168.1.103:4000/extract)")
parser.add_argument("-u", "--url", type=str, default=os.environ.get("MINERU_URL", ""),
help="API 服务端地址,也可用 MINERU_URL")
parser.add_argument("--sync", action="store_true",
help="任务完成后是否开启反向同步清理(删除多余的输出文件夹)")
args = parser.parse_args()
# 使用解析后的参数
url = args.url
url = args.url
if not url:
print("错误: 缺少 API 服务端地址,请设置 MINERU_URL 或传入 --url")
exit(1)
source_dir = args.source
target_dir = args.target