Doramagic 项目包 · 项目说明书

presidio 项目

一个用于在文本、图像和结构化数据中检测、编辑、遮盖和匿名化敏感数据(PII)的开源框架,支持 NLP、模式匹配和可自定义的流水线。

Presidio 概览与系统架构

Presidio 是由微软维护的上下文感知、可插拔且可定制的 PII(个人可识别信息)去标识化服务,同时覆盖文本与图像两种数据形态。其核心思路是:将"PII 检测"与"PII 变形"拆分为两条独立但可组合的流水线,使用户能够灵活地替换任意环节。资料来源:[presidio/README.md:1-7]()。

章节 相关页面

继续阅读本节完整说明和来源证据。

项目定位与核心价值

Presidio 是由微软维护的上下文感知、可插拔且可定制的 PII(个人可识别信息)去标识化服务,同时覆盖文本与图像两种数据形态。其核心思路是:将"PII 检测"与"PII 变形"拆分为两条独立但可组合的流水线,使用户能够灵活地替换任意环节。资料来源:presidio/README.md:1-7

仓库通过一个轻量级的元包(meta-package)presidio 对外暴露入口,该元包本身不包含业务代码,只负责把 presidio-analyzerpresidio-anonymizer 及其依赖一并安装。资料来源:presidio/README.md:9-19。这种"组合包"的形式让初学者能以 pip install presidio 一条命令即可跑通最小示例,同时高级用户仍可按需单独引用更细粒度的子包。

核心模块组成

仓库在 monorepo 形式下由若干互相正交的 Python 子包组成,每个子包对应一种数据形态或交付方式。

子包角色主要类与入口
presidio-analyzerPII 检测引擎,按实体类型运行多个 recognizerAnalyzerEngine.analyze()
presidio-anonymizer匿名化/去匿名化引擎,提供多种 operatorAnonymizerEngine.anonymize()
presidio-image-redactor图像与 DICOM 像素内的文本 PII 遮盖ImageRedactorEngineDicomImageRedactorEngine
presidio-structured对 DataFrame / JSON 等结构化/半结构化数据进行列级 PII 检测与变形StructuredEnginePandasAnalysisBuilder
presidio-cli命令行工具,直接对文件目录运行 Analyzerpresidio 命令

资料来源:presidio-analyzer/README.md:1-9presidio-anonymizer/README.md:1-15presidio-image-redactor/README.md:1-15presidio-structured/README.md:1-7presidio-cli/README.md:1-7

presidio-analyzer 预置了一组基于正则、基于 spaCy 的 NER、基于校验位以及基于 LLM(如通过 BasicLangExtractRecognizer / AzureOpenAILangExtractRecognizer 调用 LangExtract)的 PII 识别器,并支持通过 YAML 加载与 GPU 加速。资料来源:presidio-analyzer/README.md:11-71presidio-anonymizer 则内置 replaceredacthashmaskencryptahds surrogate 等 operator,开发者可通过 OperatorConfig 按实体粒度配置。资料来源:presidio-anonymizer/README.md:17-77

系统架构与端到端数据流

下图展示了文本场景下的典型处理流水线,结构化与图像场景会分别在检测前/后增加适配层(DataFrame 适配器或 OCR/PIL 适配器),但核心思想保持一致。

flowchart LR
    A[原始文本/图像] --> B[Adapter<br/>DataFrame / OCR / pydicom]
    B --> C[AnalyzerEngine]
    C -->|RecognizerResult 列表| D[AnonymizerEngine]
    D --> E[去标识化输出]
    C --> F[预置识别器<br/>Regex / spaCy NER / Checksum / LLM]
    F --> C
    D --> G[Operator 集合<br/>replace / redact / hash / mask / encrypt]
    G --> D

资料来源:presidio-analyzer/README.md:65-73presidio-anonymizer/README.md:64-83presidio-image-redactor/README.md:17-25

AnalyzerEngine 负责把"识别什么 PII"这件事抽象为可插拔的 recognizer 集合;AnonymizerEngine 则把"如何变形"抽象为可插拔的 operator 集合。两者通过 RecognizerResult(包含 entity_typestartendscore)解耦,从而允许在同一条流水线上混用不同来源的检测结果。资料来源:presidio-anonymizer/README.md:64-83

安装、快速上手与典型使用模式

最简安装方式为:

pip install presidio

资料来源:presidio/README.md:21-27。该命令会同时拉取 presidio-analyzerpresidio-anonymizer 及其依赖。

最小可运行示例:

from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine

analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()

results = analyzer.analyze(text="My name is John Doe", language="en")
anonymized = anonymizer.anonymize(
    text="My name is John Doe", analyzer_results=results
)
print(anonymized)

资料来源:presidio/README.md:29-39。在图像场景下,ImageRedactorEngine 通过 OCR 识别 PII 文本框后直接以指定颜色(默认黑色)遮盖;DICOM 场景则额外提供 redact_and_return_bboxredact_from_directory 等高级入口。资料来源:presidio-image-redactor/README.md:51-77。结构化场景下,StructuredEngine 借助 PandasAnalysisBuilder 把整张表先做一次"列级 PII 推断",再按列调用 presidio-anonymizer 的 operator。资料来源:presidio-structured/README.md:13-37

社区关注的方向与已知风险

从社区讨论来看,常见诉求集中在以下几类:

  1. 平台与部署:issue #853 长期跟踪 Apple M1 / ARM64 镜像缺失的问题(mcr.microsoft.com/presidio-analyzer:latest 在 ARM64 上无法直接运行)。资料来源:community context #853。
  2. 国家特定识别器:菲律宾(#2015)、德国(#1828)等国 PII 格式请求持续增加;2.2.360 起新增带校验位的韩国 RRN 识别器。资料来源:community context #2015, #1828, Release 2.2.360。
  3. LLM 集成:issue #1234 与 PR #1834 推动 LLM/Transformer 直接参与检测,最新版本提供 HuggingFaceNerRecognizer 与 LangExtract 系列识别器。资料来源:presidio-analyzer/README.md:11-43、community context #1234, Release 2.2.362。
  4. 配置与配置 dump 缺陷:issue #2080 指出通过 analyzer YAML 配置时,省略的可选字段在 registry 校验阶段会被序列化为 None,影响配置回写。资料来源:community context #2080。
  5. 图像/DICOM 评估链路:issue #2083 报告 DicomImagePiiVerifyEngine._remove_duplicate_entitiessorted() 结果被丢弃,导致保留了低分实体而非高分;issue #1251 反映官方 DICOM 评估 notebook 报错。资料来源:community context #2083, #1251。
  6. 行为变更提示:Release 2.2.359 起,大多数基于英文的国家特定识别器默认被关闭,以避免在非目标语言上产生误报;升级时需主动启用。资料来源:community context Release 2.2.359。

See Also

  • Presidian Analyzer 详细文档
  • Presidio Anonymizer 详细文档
  • Presidio Image Redactor 详细文档
  • Presidio Structured 详细文档
  • Presidio CLI 详细文档

资料来源:presidio-analyzer/README.md:1-9presidio-anonymizer/README.md:1-15presidio-image-redactor/README.md:1-15presidio-structured/README.md:1-7presidio-cli/README.md:1-7

分析器引擎、NLP 后端与识别器生态

presidio-analyzer 是 Presidio 体系中的文本 PII 检测核心,负责对非结构化文本进行上下文感知、插件化、可定制的实体识别。其核心由三大组件构成:AnalyzerEngine(分析器引擎)、NlpEngineProvider(NLP 引擎提供者)和 RecognizerRegistry(识别器注册表)。三者通过分层解耦设计,使分析逻辑、NLP 推理...

章节 相关页面

继续阅读本节完整说明和来源证据。

presidio-analyzer 是 Presidio 体系中的文本 PII 检测核心,负责对非结构化文本进行上下文感知、插件化、可定制的实体识别。其核心由三大组件构成:AnalyzerEngine(分析器引擎)、NlpEngineProvider(NLP 引擎提供者)和 RecognizerRegistry(识别器注册表)。三者通过分层解耦设计,使分析逻辑、NLP 推理能力与识别规则得以独立扩展。资料来源:presidio-analyzer/README.md

1. 分析器引擎(AnalyzerEngine)

AnalyzerEngine 是对外暴露的主要入口,封装了 NLP 引擎、识别器注册表与日志组件,对外提供 analyze() 方法。调用方传入原始文本、目标语言、希望匹配的 entities 列表以及可选的 ad_hoc_recognizers(临时识别器)和 regex_flags,引擎会按 NLP 解析、识别器遍历、结果合并三个阶段返回 RecognizerResult 列表。资料来源:presidio-analyzer/presidio_analyzer/analyzer_engine.py

AnalyzerEngineProvider 是其工厂类,承担配置加载职责:从 YAML 配置文件或 Python 字典中读取 nlp_enginerecognizer_registry 段,并据此实例化 NlpEngineRecognizerRegistry,最终组装出 AnalyzerEngine。该 provider 是 CLI、Docker 容器以及 presidio-analyzer[langextract] 等扩展包共用的底层入口。资料来源:presidio-analyzer/presidio_analyzer/analyzer_engine_provider.py

2. NLP 后端与提供者(NlpEngineProvider)

NlpEngineProvider 抽象了底层 NLP 框架,使 Presidio 不与某一特定模型库强绑定。默认实现基于 spaCy(en_core_web_lg),但通过 provider 模式可切换到 Hugging Face Transformers、Stanza 或自建 NER 模型。新增的 HuggingFaceNerRecognizer(Release 2.2.362)支持直接以 NER 模型推理的方式参与识别。资料来源:presidio-analyzer/presidio_analyzer/nlp_engine/nlp_engine_provider.py

GPU 加速可通过环境变量控制:在 Linux + NVIDIA 环境下安装 cupy-cuda12x(与本地 CUDA 版本对齐),macOS Apple Silicon 的 MPS 暂未启用,分析器在 PyTorch 操作上回退至 CPU。资料来源:presidio-analyzer/README.md

社区讨论 #1234 提议引入基于 LLM 的去识别能力,目前通过 langextract 扩展包(BasicLangExtractRecognizerAzureOpenAILangExtractRecognizer)以本地 Ollama 或 Azure OpenAI 形式落地,初始化阶段不进行连通性校验,错误推迟到首次 analyze() 调用时上报。资料来源:presidio-analyzer/README.md

3. 识别器注册表(RecognizerRegistry)

RecognizerRegistry 是所有识别器的容器与调度器,存储形如 EntityRecognizer 的实例列表并提供 get_recognizers(language, entities) 等查询接口。注册表支持两类来源:

来源类型加载方式典型用途
预置识别器代码内置或 YAML 字段默认 PII 类别(PERSON、EMAIL_ADDRESS、CREDIT_CARD 等)
自定义识别器用户代码实例化后注入业务特定实体(订单号、内部工号)
临时识别器analyze()ad_hoc_recognizers 参数一次性实验性规则

注册表还负责语言回退:当请求语言(如 de)未注册时,可回退到 en 以避免空结果。资料来源:presidio-analyzer/presidio_analyzer/recognizer_registry/recognizer_registry.py

RecognizerRegistryProviderrecognizers_loader_utils 协作完成从配置加载识别器的职责:解析 YAML 中的 recognizers 段、构造 Pydantic 配置模型、调用对应识别器构造函数。Issue #2080 反馈当某些可选字段在 YAML 中省略时,会被序列化为显式 None,影响后续 registry 校验与配置回写。资料来源:presidio-analyzer/presidio_analyzer/recognizer_registry/recognizer_registry_provider.pypresidio-analyzer/presidio_analyzer/recognizer_registry/recognizers_loader_utils.py

4. 识别器生态与扩展

predefined_recognizers 目录按"国家/地区"与"技术路线"两个维度组织识别器:

  • 通用类别:邮箱、电话、信用卡、IP、URL 等基于正则或 NLP 的识别器。
  • 国家/地区专用:自 Release 2.2.359 起,多数基于英文模式的国家识别器默认禁用,避免误报;Release 2.2.360 新增韩国 RRN 识别器(含 2020 年 10 月前号码的校验和验证)。社区 Issue #1828 与 #2015 分别提议新增德国与菲律宾专用识别器。资料来源:presidio-analyzer/README.md
  • LLM/SLM 识别器BasicLangExtractRecognizerAzureOpenAILangExtractRecognizer、GLiNER 集成示例。资料来源:presidio-analyzer/README.md
  • 远程/服务化识别器:Release 2.2.360 引入 Azure Health Data Services 远程识别器(Entra ID 鉴权),AHDS 替代文本由 presidio-anonymizersurrogate 操作符消费。资料来源:presidio-analyzer/README.md
flowchart LR
    A[原始文本] --> B[AnalyzerEngine.analyze]
    B --> C[NlpEngineProvider<br/>spaCy / HF / Stanza]
    C --> D[NLP 文档]
    B --> E[RecognizerRegistry]
    E --> F[预置识别器]
    E --> G[自定义识别器]
    E --> H[ad_hoc_recognizers]
    D --> F
    D --> G
    D --> H
    F --> I[结果合并 & 评分]
    G --> I
    H --> I
    I --> J[RecognizerResult 列表]

扩展自定义识别器时,建议继承 EntityRecognizer 并实现 analyze()load() 方法;将其加入注册表后即可被 AnalyzerEngine 自动调用,且无需改动引擎核心代码。这种插件化设计是 Presidio 适用于不同行业(医疗、金融、政务)的关键。资料来源:presidio-analyzer/presidio_analyzer/recognizer_registry/recognizer_registry.py

常见失败模式与排障

  • NLP 模型未下载:未执行 python -m spacy download en_core_web_lg 会导致 AnalyzerEngine() 初始化抛出 OSError。
  • YAML 配置 None 字段:见 Issue #2080,可显式提供默认值或在加载工具中过滤 None
  • arm64 镜像缺失:见 Issue #853,Apple M1 用户需自行构建容器或使用 pip 安装。
  • LLM 识别器连通性:错误延迟到 analyze() 阶段,需检查 AZURE_OPENAI_ENDPOINT / Ollama 服务可达性。资料来源:presidio-analyzer/README.md

See Also

  • Presidio 匿名器(presidio-anonymizer
  • Presidio 结构化(presidio-structured
  • Presidio 图像脱敏(presidio-image-redactor
  • CLI 工具(presidio-cli

来源:https://github.com/microsoft/presidio / 项目说明书

脱敏算子、图像 DICOM 与结构化数据

Microsoft Presidio 是一个上下文感知、可插拔的 PII 脱敏框架,由多个互补子包组成。presidio 元包仅通过依赖方式拉取 presidio-analyzer 与 presidio-anonymizer,覆盖非结构化文本场景 ([资料来源: [presidio/README.md:1-15]()]())。对于图像与 DICOM 医学影像、pandas/...

章节 相关页面

继续阅读本节完整说明和来源证据。

概览

Microsoft Presidio 是一个上下文感知、可插拔的 PII 脱敏框架,由多个互补子包组成。presidio 元包仅通过依赖方式拉取 presidio-analyzerpresidio-anonymizer,覆盖非结构化文本场景 (资料来源: [presidio/README.md:1-15]())。对于图像与 DICOM 医学影像、pandas/JSON 等结构化数据,仓库提供专门的子包进行扩展。本文聚焦三块能力:文本脱敏算子、图像与 DICOM 脱敏、结构化数据脱敏,并整理社区中已知的相关问题与限制。

文本脱敏算子

presidio-anonymizer 内置多种匿名化算子(Anonymizer Operators),用于在 RecognizerResult 标注的实体位置进行替换或变形 (资料来源: [presidio-anonymizer/README.md:20-65]())。其默认算子为 replace,若未提供 new_value 则回退为 <entity_type> 字符串。核心算子包括:

  • replace:用指定值或默认占位符替换 PII,参数 new_value
  • redact:从文本中完全移除,无额外参数。
  • hash:对 PII 进行散列(sha256/sha512),2.2.358 起弃用 md5,参数 hash_type
  • mask:以指定字符覆盖部分或全部,参数 chars_to_maskmasking_charfrom_end
  • encrypt:使用 AES(Rijndael)加密,参数 key(128/192/256 位字符串)。
  • custom:通过 lambda 自定义处理逻辑,返回值必须为字符串。
  • ahds surrogate:调用 Azure Health Data Services 代理生成语义保真的占位符,需 pip install presidio-anonymizer[ahds],参数包括 endpointentitiesinput_localesurrogate_locale (资料来源: [presidio-anonymizer/README.md:60-80]())。

当存在重叠实体时,AnonymizerEngine 需借助 conflict_resolution_strategy 决定如何合并或选择 (资料来源: [presidio-anonymizer/README.md:80-110]())。DeanonymizeEngine 则用于将 encrypt 等可逆算子还原回原文。

图像与 DICOM 脱敏

presidio-image-redactor 提供两类引擎:ImageRedactorEngine 用于标准图像(PNG/JPG 等),DicomImageRedactorEngine 用于 DICOM 医学影像 (资料来源: [presidio-image-redactor/README.md:40-70]()))。两者流程一致:使用 Tesseract OCR 进行文本识别与坐标定位 → 调用 presidio-analyzer 检测 PII → 以填充色(默认黑色,或 contrast/background)覆盖识别框。

DICOM 流程建议做像素级文本脱敏,再使用外部工具处理元数据中的 PHI,例如 Tools for Health Data AnonymizationDicomImageRedactorEngine 提供四个入口:redactredact_and_return_bboxredact_from_fileredact_from_directory,并支持 padding_widthocr_kwargs={"ocr_threshold": 50} 等参数 (资料来源: [presidio-image-redactor/README.md:10-40]())。需要安装 Tesseract OCR(v5.2.0 验证)及 spaCy 模型 en_core_web_lg

社区已知问题与注意点:

  • DicomImagePiiVerifyEngine._remove_duplicate_entitiessorted() 结果被丢弃,错误地保留了最低分实体(Issue #2083)。
  • example_dicom_redactor_evaluation.ipynb 在某些环境下运行报错(Issue #1251)。
  • Windows 上 DICOM 路径过长需启用系统长路径支持 (资料来源: [presidio-image-redactor/README.md:95-115]())。
  • ARM64 镜像长期缺失,社区多次请求(Issue #853)。

结构化数据脱敏

presidio-structured 是面向表格与半结构化数据的脱敏框架 (资料来源: [presidio-structured/README.md:1-30]())。其核心为 StructuredEngine(默认基于 pandas)与 PandasAnalysisBuilder

  1. 通过 PandasAnalysisBuilder().generate_analysis(df) 生成 TabularAnalysis,描述每列所含 PII 实体;
  2. StructuredEngine 调用 presidio-analyzer 检测列名/键名与值,并映射到实体类型;
  3. 借助 presidio-anonymizerOperatorConfig,对识别列按值应用算子(如 replacemaskencrypt),可结合 faker 生成伪造数据 (资料来源: [presidio-structured/README.md:25-55]())。
flowchart LR
  A[pandas DataFrame] --> B[PandasAnalysisBuilder]
  B --> C[TabularAnalysis]
  C --> D[StructuredEngine]
  D --> E[AnalyzerEngine 检测]
  E --> F[AnonymizerEngine 算子]
  F --> G[脱敏后 DataFrame]

自 2.2.354 起,presidio-structured 支持用户自定义实体选择策略(PR #1319),在多实体类型冲突时具备更细粒度控制 (资料来源: [presidio-structured/README.md]())。

常见问题与限制

  • 国家化识别器:德语(Issue #1828)、菲律宾语(Issue #2015)国家识别器被陆续提议;2.2.359 起多数英语国家识别器改为默认禁用以减少误报。
  • GPU 加速:2.2.362 起可通过环境变量控制 GPU 设备(PR #1844),并新增 HuggingFaceNerRecognizer
  • LLM 集成presidio-analyzer[langextract] 引入 LangExtract,支持 Ollama 与 Azure OpenAI (资料来源: [presidio-analyzer/README.md:10-50]())。
  • YAML 序列化:分析器 YAML 配置中省略的识别器字段可能被序列化为 None(Issue #2080)。
  • 密码识别:社区请求增加密码实体识别(Issue #805),尚未在主分支实现。
  • CLI 配置presidio-cli 通过 .presidiocli-d 参数传入语言、阈值、实体与忽略列表,支持 standard/github/colored/parsable/auto 五种输出格式 (资料来源: [presidio-cli/README.md:30-90]())。

See Also

来源:https://github.com/microsoft/presidio / 项目说明书

部署、LLM 扩展与社区故障模式

Presidio 是一个面向文本和图像的、可插拔的 PII 去标识化服务,由多个子包组成(presidio-analyzer、presidio-anonymizer、presidio-image-redactor、presidio-structured、presidio-cli)。本专题聚焦于三个相互关联的工程维度:容器化与多形态部署、基于大语言模型(LLM)的检测能力扩展...

章节 相关页面

继续阅读本节完整说明和来源证据。

概述

Presidio 是一个面向文本和图像的、可插拔的 PII 去标识化服务,由多个子包组成(presidio-analyzerpresidio-anonymizerpresidio-image-redactorpresidio-structuredpresidio-cli)。本专题聚焦于三个相互关联的工程维度:容器化与多形态部署、基于大语言模型(LLM)的检测能力扩展,以及社区中反复出现的故障模式与近期修复方向。

资料来源:presidio/README.md:1-30

资料来源:presidio/README.md:1-30

失败模式与踩坑日记

保留 Doramagic 在发现、验证和编译中沉淀的项目专属风险,不把社区讨论只当作装饰信息。

high 来源证据:Sample presidio image evaluation notebook generates error

可能增加新用户试用和生产接入成本。

high 来源证据:[Bug] Omitted YAML recognizer fields are passed as None

可能影响授权、密钥配置或安全边界。

medium 能力判断依赖假设

假设不成立时,用户拿不到承诺的能力。

medium 来源证据:bug(image-redactor): `sorted()` result discarded in `_remove_duplicate_entities`, lowest-scored entity kept instead of…

可能增加新用户试用和生产接入成本。

Pitfall Log / 踩坑日志

项目:microsoft/presidio

摘要:发现 9 个潜在踩坑项,其中 2 个为 high/blocking;最高优先级:运行坑 - 来源证据:Sample presidio image evaluation notebook generates error。

1. 运行坑 · 来源证据:Sample presidio image evaluation notebook generates error

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:Sample presidio image evaluation notebook generates error
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/microsoft/presidio/issues/1251 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

2. 安全/权限坑 · 来源证据:[Bug] Omitted YAML recognizer fields are passed as None

  • 严重度:high
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题:[Bug] Omitted YAML recognizer fields are passed as None
  • 对用户的影响:可能影响授权、密钥配置或安全边界。
  • 证据:community_evidence:github | https://github.com/microsoft/presidio/issues/2080 | 来源类型 github_issue 暴露的待验证使用条件。

3. 能力坑 · 能力判断依赖假设

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:README/documentation is current enough for a first validation pass.
  • 对用户的影响:假设不成立时,用户拿不到承诺的能力。
  • 证据:capability.assumptions | https://github.com/microsoft/presidio | README/documentation is current enough for a first validation pass.

4. 运行坑 · 来源证据:bug(image-redactor): `sorted()` result discarded in `_remove_duplicate_entities`, lowest-scored entity kept instead of…

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:GitHub 社区证据显示该项目存在一个运行相关的待验证问题:bug(image-redactor): sorted() result discarded in _remove_duplicate_entities, lowest-scored entity kept instead of highest
  • 对用户的影响:可能增加新用户试用和生产接入成本。
  • 证据:community_evidence:github | https://github.com/microsoft/presidio/issues/2083 | 来源讨论提到 python 相关条件,需在安装/试用前复核。

5. 维护坑 · 维护活跃度未知

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:未记录 last_activity_observed。
  • 对用户的影响:新项目、停更项目和活跃项目会被混在一起,推荐信任度下降。
  • 证据:evidence.maintainer_signals | https://github.com/microsoft/presidio | last_activity_observed missing
  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 证据:downstream_validation.risk_items | https://github.com/microsoft/presidio | no_demo; severity=medium

7. 安全/权限坑 · 存在评分风险

  • 严重度:medium
  • 证据强度:source_linked
  • 发现:no_demo
  • 对用户的影响:风险会影响是否适合普通用户安装。
  • 证据:risks.scoring_risks | https://github.com/microsoft/presidio | no_demo; severity=medium

8. 维护坑 · issue/PR 响应质量未知

  • 严重度:low
  • 证据强度:source_linked
  • 发现:issue_or_pr_quality=unknown。
  • 对用户的影响:用户无法判断遇到问题后是否有人维护。
  • 证据:evidence.maintainer_signals | https://github.com/microsoft/presidio | issue_or_pr_quality=unknown

9. 维护坑 · 发布节奏不明确

  • 严重度:low
  • 证据强度:source_linked
  • 发现:release_recency=unknown。
  • 对用户的影响:安装命令和文档可能落后于代码,用户踩坑概率升高。
  • 证据:evidence.maintainer_signals | https://github.com/microsoft/presidio | release_recency=unknown

来源:Doramagic 发现、验证与编译记录