[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-microsoft--presidio":3,"tool-microsoft--presidio":61},[4,18,26,36,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":102,"forks":103,"last_commit_at":104,"license":105,"difficulty_score":32,"env_os":106,"env_gpu":107,"env_ram":108,"env_deps":109,"category_tags":121,"github_topics":122,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":141,"updated_at":142,"faqs":143,"releases":177},4703,"microsoft\u002Fpresidio","presidio","An open-source framework for detecting, redacting, masking, and anonymizing sensitive data (PII) across text, images, and structured data. Supports NLP, pattern matching, and customizable pipelines.","Presidio 是一款由微软开源的数据保护与去标识化工具，旨在帮助开发者和企业轻松识别并处理文本、图像及结构化数据中的敏感信息（如姓名、身份证号、信用卡号、电话号码等）。在数据隐私合规日益严格的今天，它有效解决了敏感数据泄露风险高、人工脱敏效率低以及难以平衡数据可用性与隐私保护的痛点。\n\n无论是需要构建合规数据管道的后端工程师，还是从事自然语言处理的研究人员，亦或是希望集成隐私保护功能的安全团队，都能通过 Presidio 快速落地解决方案。其核心亮点在于“上下文感知”的智能分析能力：不仅支持基于正则和规则的传统匹配，更融合了命名实体识别（NER）等 NLP 技术，能精准理解语境以减少误判。此外，Presidio 提供了高度可插拔的架构，允许用户自定义识别逻辑、连接外部检测模型，并灵活配置脱敏策略（如掩码、替换或加密）。作为一个模块化 SDK，它既能实现全自动化的数据清洗流程，也支持半自动化的人工审核模式，让数据隐私管理变得更加透明、高效且易于扩展。","# Presidio - Data Protection and De-identification SDK\n\n**Context aware, pluggable and customizable PII de-identification service for text and images.**\n\n---\n\n[![Build Status](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Factions\u002Fworkflows\u002Fci.yml)\n[![MIT license](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-brightgreen.svg)](http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002FMicrosoft\u002Fpresidio.svg)\n[![OpenSSF Best Practices](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_50ccde67b228.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F6076)\n[![PyPI pyversions](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpresidio-analyzer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-analyzer\u002F)\n\n| Component | Downloads | Coverage |\n|-----------|-----------|----------|\n| Presidio Analyzer | [![Pypi Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-analyzer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-analyzer\u002F) | [![Coverage](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-analyzer\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-analyzer) |\n| Presidio Anonymizer | [![Pypi Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-anonymizer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-anonymizer\u002F) | [![Coverage](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-anonymizer\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-anonymizer) |\n| Presidio Image-Redactor | [![Pypi Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-image-redactor.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-image-redactor\u002F) | [![Coverage](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-image-redactor\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-image-redactor) |\n| Presidio Structured | [![Pypi Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-structured.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-structured\u002F) | [![Coverage](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-structured\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-structured) |\n## What is Presidio\n\nPresidio _(Origin from Latin praesidium ‘protection, garrison’)_ helps to ensure sensitive data is properly managed and governed. It provides fast **_identification_** and **_anonymization_** modules for private entities in text such as credit card numbers, names, locations, social security numbers, bitcoin wallets, US phone numbers, financial data and more.\n\n![Presidio demo gif](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_7f15a97a4d0f.gif)\n\n---\n\n### :blue_book: [Full documentation](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio)\n\n### :question: [Frequently Asked Questions](docs\u002Ffaq.md)\n\n### :thought_balloon: [Demo](https:\u002F\u002Faka.ms\u002Fpresidio-demo)\n\n### :flight_departure: [Examples](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fsamples\u002F)\n\n---\n\n## Are you using Presidio? We'd love to know how\n\nPlease help us improve by taking [this short anonymous survey](https:\u002F\u002Fforms.office.com\u002FPages\u002FResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR9LagCGNW01LpMix2pnFWFJUQjJDTVkwSlJYRkFPSUNNVlVRRVRWVDVNSy4u).\n\n---\n\n### Goals\n\n- Allow organizations to preserve privacy in a simpler way by democratizing de-identification technologies and introducing transparency in decisions.\n- Embrace extensibility and customizability to a specific business need.\n- Facilitate both fully automated and semi-automated PII de-identification flows on multiple platforms.\n\n### Main features\n\n1. **Predefined** or **custom PII recognizers** leveraging _Named Entity Recognition_, _regular expressions_, _rule based logic_ and _checksum_ with relevant context in multiple languages.\n2. Options for connecting to external PII detection models.\n3. Multiple usage options, **from Python or PySpark workloads through Docker to Kubernetes**.\n4. **Customizability** in PII identification and de-identification.\n5. Module for **redacting PII text in images** (standard image types and DICOM medical images).\n\n:warning: Presidio can help identify sensitive\u002FPII data in un\u002Fstructured text. However, because it is using automated detection mechanisms, there is no guarantee that Presidio will find all sensitive information. Consequently, additional systems and protections should be employed.\n\n## Installing Presidio\n\n1. [Using pip](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#using-pip)\n2. [Using Docker](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#using-docker)\n3. [From source](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#install-from-source)\n4. [Migrating from V1 to V2](.\u002Fdocs\u002Fpresidio_V2.md)\n\n## Running Presidio\n\n1. [Getting started](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fgetting_started)\n2. [Setting up a development environment](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fdevelopment)\n3. [PII de-identification in text](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Ftext_anonymization)\n4. [PII de-identification in images](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fimage-redactor)\n5. [Usage samples and example deployments](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fsamples)\n\n---\n\n## Support\n\n- Before you submit an issue, please go over the [documentation](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002F).\n- For general discussions, please use the [GitHub repo's discussion board](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fdiscussions).\n- If you have a usage question, found a bug or have a suggestion for improvement, please file a [GitHub issue](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues).\n- For other matters, please email [presidio@microsoft.com](mailto:presidio@microsoft.com).\n\n## Contributing\n\nFor details on contributing to this repository, see the [contributing guide](CONTRIBUTING.md).\n\nThis project welcomes contributions and suggestions. Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit [https:\u002F\u002Fcla.microsoft.com](https:\u002F\u002Fcla.microsoft.com).\n\nWhen you submit a pull request, a CLA-bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F).\nFor more information see the [Code of Conduct FAQ](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Contributors\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_b05e9fbc5e66.png\" \u002F>\n\u003C\u002Fa>\n\n","# Presidio - 数据保护与去标识化 SDK\n\n**面向文本和图像的上下文感知、可插拔且可定制的 PII 去标识化服务。**\n\n---\n\n[![构建状态](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Factions\u002Fworkflows\u002Fci.yml)\n[![MIT 许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-brightgreen.svg)](http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n![发布](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002FMicrosoft\u002Fpresidio.svg)\n[![OpenSSF 最佳实践](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_50ccde67b228.png)](https:\u002F\u002Fwww.bestpractices.dev\u002Fprojects\u002F6076)\n[![PyPI Python 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpresidio-analyzer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-analyzer\u002F)\n\n| 组件 | 下载量 | 覆盖率 |\n|-----------|-----------|----------|\n| Presidio Analyzer | [![Pypi 下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-analyzer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-analyzer\u002F) | [![覆盖率](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-analyzer\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-analyzer) |\n| Presidio Anonymizer | [![Pypi 下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-anonymizer.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-anonymizer\u002F) | [![覆盖率](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-anonymizer\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-anonymizer) |\n| Presidio Image-Redactor | [![Pypi 下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-image-redactor.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-image-redactor\u002F) | [![覆盖率](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-image-redactor\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-image-redactor) |\n| Presidio Structured | [![Pypi 下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpresidio-structured.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpresidio-structured\u002F) | [![覆盖率](https:\u002F\u002Fimg.shields.io\u002Fendpoint?url=https:\u002F\u002Fraw.githubusercontent.com\u002Fmicrosoft\u002Fpresidio\u002Fcoverage-data-presidio-structured\u002Fendpoint.json)](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Ftree\u002Fcoverage-data-presidio-structured) |\n## 什么是 Presidio\n\nPresidio _(源自拉丁语 praesidium，意为“保护、驻军”)_ 帮助确保敏感数据得到妥善管理和治理。它提供快速的**识别**和**匿名化**模块，用于检测文本中的个人身份信息，例如信用卡号、姓名、地点、社会安全号码、比特币钱包、美国电话号码、财务数据等。\n\n![Presidio 演示 GIF](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_7f15a97a4d0f.gif)\n\n---\n\n### :blue_book: [完整文档](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio)\n\n### :question: [常见问题解答](docs\u002Ffaq.md)\n\n### :thought_balloon: [演示](https:\u002F\u002Faka.ms\u002Fpresidio-demo)\n\n### :flight_departure: [示例](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fsamples\u002F)\n\n---\n\n## 您在使用 Presidio 吗？我们很想了解您的使用情况\n\n请帮助我们改进，填写[这份简短的匿名调查问卷](https:\u002F\u002Fforms.office.com\u002FPages\u002FResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR9LagCGNW01LpMix2pnFWFJUQjJDTVkwSlJYRkFPSUNNVlVRRVRWVDVNSy4u)。\n\n---\n\n### 目标\n\n- 通过普及去标识化技术并提高决策透明度，使组织能够以更简单的方式保护隐私。\n- 支持针对特定业务需求的扩展性和可定制性。\n- 在多个平台上实现全自动和半自动的 PII 去标识化流程。\n\n### 主要特性\n\n1. **预定义**或**自定义的 PII 识别器**，利用命名实体识别、正则表达式、基于规则的逻辑和校验和，并结合多语言的相关上下文。\n2. 可选连接外部 PII 检测模型。\n3. 多种使用方式，**从 Python 或 PySpark 工作负载到 Docker 和 Kubernetes**。\n4. **可定制性**，支持 PII 的识别和去标识化。\n5. 用于**在图像中遮盖 PII 文本**的模块（支持标准图像类型和 DICOM 医学图像）。\n\n:warning: Presidio 可以帮助识别结构化或非结构化文本中的敏感\u002FPII 数据。然而，由于它采用自动化检测机制，无法保证一定能找到所有敏感信息。因此，建议配合其他系统和防护措施使用。\n\n## 安装 Presidio\n\n1. [使用 pip](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#using-pip)\n2. [使用 Docker](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#using-docker)\n3. [从源码安装](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Finstallation\u002F#install-from-source)\n4. [从 V1 迁移到 V2](.\u002Fdocs\u002Fpresidio_V2.md)\n\n## 运行 Presidio\n\n1. [入门指南](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fgetting_started)\n2. [搭建开发环境](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fdevelopment)\n3. [文本中的 PII 去标识化](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Ftext_anonymization)\n4. [图像中的 PII 去标识化](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fimage-redactor)\n5. [使用示例和部署案例](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fsamples)\n\n---\n\n## 支持\n\n- 在提交问题之前，请先查阅[文档](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002F)。\n- 如需一般性讨论，请使用[GitHub 仓库的讨论区](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fdiscussions)。\n- 如果您有使用上的疑问、发现了 bug 或有改进建议，请提交[GitHub 问题](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues)。\n- 其他事宜，请发送邮件至[presidio@microsoft.com](mailto:presidio@microsoft.com)。\n\n## 贡献\n\n有关如何参与本项目贡献的详细信息，请参阅[贡献指南](CONTRIBUTING.md)。\n\n本项目欢迎各类贡献和建议。大多数贡献都需要您同意一份贡献者许可协议 (CLA)，声明您有权并将您的贡献权利授予我们。详情请访问[https:\u002F\u002Fcla.microsoft.com](https:\u002F\u002Fcla.microsoft.com)。\n\n当您提交拉取请求时，CLA 机器人会自动判断您是否需要签署 CLA，并相应地标记 PR（例如添加标签、发表评论）。您只需按照机器人提供的指示操作即可。对于使用我们 CLA 的所有仓库，您只需完成一次此步骤。\n\n本项目已采纳[微软开源行为准则](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F)。更多信息请参阅[行为准则常见问题解答](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F)，或如有任何其他问题或意见，请联系[opencode@microsoft.com](mailto:opencode@microsoft.com)。\n\n## 贡献者\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - 请勿删除或修改此部分 -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_readme_b05e9fbc5e66.png\" \u002F>\n\u003C\u002Fa>","# Presidio 快速上手指南\n\nPresidio 是一个由微软开源的上下文感知、可插拔且可定制的 PII（个人身份信息）去标识化 SDK，支持文本和图像中的敏感数据识别与脱敏。\n\n## 环境准备\n\n- **操作系统**：Windows、macOS 或 Linux\n- **Python 版本**：Python 3.7 - 3.11\n- **前置依赖**：\n  - `pip` 包管理工具\n  - （可选）Docker，若选择容器化部署\n  - （可选）spaCy 模型，用于增强实体识别效果（如 `en_core_web_lg`）\n\n> 💡 国内开发者建议使用清华或阿里云镜像加速 pip 安装：\n> ```bash\n> pip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n### 方式一：通过 pip 安装（推荐）\n\n安装核心组件（分析器 + 匿名器）：\n\n```bash\npip install presidio-analyzer presidio-anonymizer\n```\n\n如需处理图像中的 PII，额外安装：\n\n```bash\npip install presidio-image-redactor\n```\n\n### 方式二：通过 Docker 运行\n\n拉取官方镜像并启动服务：\n\n```bash\ndocker run --rm -it -p 8080:80 mcr.microsoft.com\u002Fpresidio-analyzer\ndocker run --rm -it -p 8081:80 mcr.microsoft.com\u002Fpresidio-anonymizer\n```\n\n> 注：微软镜像在国内访问可能较慢，可考虑使用阿里云容器镜像服务加速（需自行配置镜像代理）。\n\n## 基本使用\n\n以下是最简单的文本 PII 识别与脱敏示例：\n\n```python\nfrom presidio_analyzer import AnalyzerEngine\nfrom presidio_anonymizer import AnonymizerEngine\n\n# 初始化引擎\nanalyzer = AnalyzerEngine()\nanonymizer = AnonymizerEngine()\n\n# 待处理文本\ntext = \"我叫张三，身份证号是 11010519491231001X，电话是 13800138000。\"\n\n# 识别 PII\nresults = analyzer.analyze(text=text, language=\"zh\")\n\n# 执行脱敏\nanonymized_text = anonymizer.anonymize(\n    text=text,\n    analyzer_results=results\n)\n\nprint(anonymized_text.text)\n```\n\n输出示例：\n```\n我叫\u003CPERSON>，身份证号是\u003CUS_SSN>，电话是\u003CPHONE_NUMBER>。\n```\n\n> 💡 提示：Presidio 默认支持多种语言，但中文识别效果依赖自定义规则或集成外部模型。建议结合业务场景添加自定义识别器以提升准确率。\n\n---\n\n更多高级用法（如自定义识别器、图像脱敏、Spark 集成等）请参考官方文档：https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio","某金融科技公司需要将包含客户对话记录、身份证截图及交易表格的多源数据，安全地共享给外部审计团队进行合规分析。\n\n### 没有 presidio 时\n- 开发人员需手动编写复杂的正则表达式来匹配手机号和信用卡号，极易遗漏变体格式或产生误报。\n- 面对非结构化的客服聊天文本和结构化数据库，团队不得不维护两套完全不同的脱敏脚本，代码冗余且难以维护。\n- 处理包含敏感信息的身份证或合同图片时，缺乏自动化工具，只能依靠人工逐张打码，效率极低且容易出错。\n- 由于缺乏上下文理解能力，常规工具常将“苹果”公司名误判为水果，或将普通数字误认为账号，导致数据可用性下降。\n\n### 使用 presidio 后\n- 利用内置的 NLP 模型和预定义识别器，presidio 能精准识别多国语言的姓名、位置及金融账号，自动适应各种格式变体。\n- 通过统一的可插拔管道，presidio 同时处理文本、图像和结构化数据，一套配置即可覆盖所有数据类型，大幅简化架构。\n- 调用 presidio 的图像编辑模块，自动检测并模糊化图片中的文字敏感信息，将原本需要数天的图片处理工作缩短至分钟级。\n- 凭借上下文感知能力，presidio 准确区分实体含义（如区分品牌与水果），在保护隐私的同时最大程度保留了数据的分析价值。\n\npresidio 通过智能化的多模态脱敏能力，让企业在满足严格合规要求的同时，实现了数据价值的安全流通。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_presidio_a300df0b.png","microsoft","Microsoft","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmicrosoft_4900709c.png","Open source projects and samples from Microsoft",null,"opensource@microsoft.com","OpenAtMicrosoft","https:\u002F\u002Fopensource.microsoft.com","https:\u002F\u002Fgithub.com\u002Fmicrosoft",[82,86,90,94,98],{"name":83,"color":84,"percentage":85},"Python","#3572A5",99.4,{"name":87,"color":88,"percentage":89},"HTML","#e34c26",0.3,{"name":91,"color":92,"percentage":93},"Dockerfile","#384d54",0.2,{"name":95,"color":96,"percentage":97},"Jinja","#a52a22",0.1,{"name":99,"color":100,"percentage":101},"Shell","#89e051",0,7510,994,"2026-04-06T17:18:19","MIT","Linux, macOS, Windows","未说明 (支持纯文本处理，图像脱敏模块通常依赖 CPU，若使用自定义深度学习模型则需自行配置 GPU)","未说明",{"notes":110,"python":111,"dependencies":112},"该工具提供多种安装方式（pip、Docker、源码）。核心功能包括文本和图像的 PII 识别与脱敏。默认安装包含基础规则引擎，若需使用基于深度学习的识别器（如 spaCy 或 Hugging Face transformers），需额外下载相应的语言模型。图像脱敏模块支持标准图像及 DICOM 医学影像。官方推荐使用 Docker 或 Kubernetes 进行部署，也支持 PySpark 工作负载。","3.8+",[113,114,115,116,117,118,119,120],"presidio-analyzer","presidio-anonymizer","presidio-image-redactor","presidio-structured","spacy","transformers","torch","pylcs",[16,35,15],[123,124,125,126,127,128,118,129,130,131,132,133,134,135,136,137,138,139,117,140],"python","pii","privacy","data-anonymization","de-identification","data-masking","pii-detection","data-obfuscation","data-privacy","data-redaction","guardrails","image-redactor","named-entity-recognition","nlp","personally-identifiable-information","phi","sensitive-data","anonymization","2026-03-27T02:49:30.150509","2026-04-07T08:25:05.624348",[144,149,153,158,163,168,173],{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},21381,"遇到 'ValueError: NLP engine transformers is not available' 错误该怎么办？","该错误通常意味着缺少必要的依赖包或配置不当。建议首先参考官方教程确认安装步骤是否正确：https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Ftutorial\u002F02_regex\u002F。确保已安装所有必需的 transformers 相关包，并检查配置文件中的 nlp_engine_name 和 model_name 是否拼写正确且与已安装的模型匹配。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues\u002F1239",{"id":150,"question_zh":151,"answer_zh":152,"source_url":148},21382,"如何添加自定义实体（例如货币金额）的检测规则？","可以通过创建自定义识别器（Recognizer）来实现。最常用的方法是使用正则表达式（Regex）。例如，要检测货币实体，可以定义一个正则模式来匹配数字后跟货币符号的情况。具体实现可参考添加识别器的官方教程：https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Ftutorial\u002F。在代码中实例化 PatternRecognizer 并传入自定义的正则表达式列表即可。",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},21383,"如何提高 Presidio 对特定语言或场景的 PII 检测准确率？","优化检测率的标准流程如下：\n1. 准备一个带有 PII 实体标签的数据集用于评估。\n2. 确定评估指标（如 F2.5 或 F2，这些指标更侧重于召回率）。\n3. 运行默认的 Presidio（使用默认 spaCy 模型或其他多语言模型）并进行评估。\n4. 计算指标并分析假阳性（False Positive）和假阴性（False Negative）案例。\n5. 根据分析结果决定改进策略：移除现有的不准确识别器、修改现有识别器的逻辑\u002F模式\u002F置信度阈值，或添加新的基于规则（正则、黑名单等）的逻辑。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues\u002F742",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},21384,"如何在 Windows 10 上运行 Presidio 进行文档脱敏？","在 Windows 上运行 Presidio 推荐使用 Docker。关键点是必须安装适用于 Windows 的最新版本 Docker Desktop，它使用真正的 Linux 内核（WSL 2）来运行容器。如果遇到运行脚本（如 run.sh）报错，可能需要先执行构建脚本（build.sh）来构建镜像。构建完成后，即可正常启动容器并进行文本分析或图像脱敏操作。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues\u002F359",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},21385,"如何在 v2 版本中动态运行临时的正则表达式模式或单词列表（Ad-hoc patterns）而无需重启服务？","Presidio v2 支持通过 API 参数动态添加临时识别器。在调用 \u002Fanalyze POST 接口时，可以在请求体中包含临时的正则表达式或列表定义。注意：如果在请求中指定了 'entities' 参数，必须确保其中包含你定义的临时实体名称，否则可能会报 \"No matching recognizers were found\" 错误。如果不指定 'entities' 参数，系统会自动返回所有匹配到的识别器（包括临时的）。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues\u002F598",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},21386,"如何处理包含大量字符（如超过 10 万字符）的列或大型数据集的 PII 检测性能问题？","处理超长文本或大数据集时，直接处理会导致耗时过长。建议优化策略包括：\n1. 将长文本分割成较小的片段（chunks）并行处理，然后再合并结果。\n2. 在使用 Spark 引擎时，合理调整分区数量以利用集群资源。\n3. 仅启用必要的实体识别器，禁用不相关的检测以减少计算量。\n4. 对于极长文本，考虑先通过启发式方法过滤掉明显不包含 PII 的段落。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fissues\u002F938",{"id":174,"question_zh":175,"answer_zh":176,"source_url":157},21387,"如何为不同的实体类型（如 PERSON, LOCATION）设置不同的置信度阈值（score_threshold）？","虽然 analyze 方法的全局 score_threshold 参数对所有实体生效，但若需针对不同实体设置不同阈值，建议在获取分析结果后进行处理。首先调用 analyzer.analyze() 获取所有结果（可设置较低的全局阈值或不设阈值），然后在代码中遍历结果列表，根据每个结果的 entity_type 字段应用特定的阈值过滤逻辑，最后将过滤后的结果传递给 anonymizer 进行脱敏。",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258,263,268,273],{"id":179,"version":180,"summary_zh":181,"released_at":182},127402,"2.2.362","## 变更内容\n* 功能 - 通过环境变量控制 GPU 设备，由 @RonShakutai 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1844 中实现\n* 新特性：添加 HuggingFaceNerRecognizer，用于直接进行 NER 模型推理，由 @ultramancode 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1834 中实现\n* 修复损坏的链接，由 @andyjessen 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1856 中完成\n* 锁定依赖项以缓解供应链攻击，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1861 中实现\n* 修复 CVE-2024-47874 和 CVE-2025-54121 漏洞，由 @SharonHart 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1860 中完成\n* 修复 CVE-2025-2953 和 CVE-2025-3730 漏洞，由 @SharonHart 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1859 中完成\n* 修复：修复了上下文增强中的子字符串匹配错误，由 @ravi-jindal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1827 中完成\n* 修复 _process_names 无条件将所有元数据视为 PHI 的问题，由 @Mr-Neutr0n 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1855 中完成\n* 新特性：添加英国邮政编码 (UK_POSTCODE) 识别器，由 @tee-jagz 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1858 中实现\n* 为符合 OSSF 得分卡要求，按哈希值锁定 ruff 和构建 pip 安装包，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1864 中完成\n* 添加美国 NPI（国家提供者标识符）识别器，由 @stevenelliottjr 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1847 中实现\n* 添加基于 Transformer 的 MedicalNERRecognizer，用于临床实体检测，由 @stevenelliottjr 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1853 中实现\n* 新特性：添加尼日利亚识别器（国民身份号码和车辆注册），由 @tee-jagz 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1863 中实现\n* 修复 API 文档和类型提示中的 validation_result 类型，由 @akios-ai 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1869 中完成\n* 将 actions\u002Fsetup-python 从 6.0.0 升级到 6.2.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1879 中完成\n* 将 github\u002Fcodeql-action 从 3.32.3 升级到 4.32.4，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1878 中完成\n* 将 actions\u002Fdependency-review-action 从 3.1.5 升级到 4.8.3，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1877 中完成\n* 将 microsoft\u002Fsecurity-devops-action 从 1.11.0 升级到 1.12.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1876 中完成\n* 将 actions\u002Fgithub-script 从 7.0.1 升级到 8.0.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1875 中完成\n* 将 azure\u002Flogin 从 2.1.1 升级到 2.3.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1874 中完成\n* 将 docker\u002Fsetup-buildx-action 从 3.7.1 升级到 3.12.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1873 中完成\n* 将 actions\u002Fcache 从 4.2.0 升级到 5.0.3，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1872 中完成\n* 将 actions\u002Fcheckout 从 4.2.2 升级到 6.0.2，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1871 中完成\n* 将 actions\u002Fsetup-dotnet 从 4.0.1 升级到 5.1.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1870 中完成\n* 将 python 从 `9e01bf1` 升级到 `","2026-03-18T05:32:57",{"id":184,"version":185,"summary_zh":186,"released_at":187},127403,"2.2.361","## 变更内容\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1718 中修复了 PR 流程的 CI 问题。\n* 由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1714 中将 actions\u002Fsetup-python 从 5 升级到 6。\n* 由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1716 中将 pypa\u002Fgh-action-pypi-publish 从 1.12.4 升级到 1.13.0。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1719 中修复了标签工作流中的错误。\n* 由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1715 中将 actions\u002Fsetup-dotnet 从 4 升级到 5。\n* 由 @omri374 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1720 中测试了自定义识别器的 YAML 配置。\n* 由 @pangchewe 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1713 中添加了泰国民身份证号（TNIN）识别器。\n* 由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1725 中将 actions\u002Fgithub-script 从 6 升级到 8。\n* 由 @atinm 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1723 中修复了 DICOM 处理逻辑，使其同时支持姓名和患者信息。\n* 由 @andyjessen 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1727 中修正了一个小的拼写错误。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1722 中优化了 Docker 镜像。\n* 由 @jks-liu 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1730 中更新了 02_regex.md 文件，并修复了已弃用转义序列的警告。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1734 中更新了 noqa 的语法。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1729 中对 Windows 平台的 Docker 镜像进行了标准化。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1736 中继续更新了 noqa 相关内容。\n* 由 @heesng-jung 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1742 中修复了分析器组件，将韩语语言代码从 'kr' 更新为 'ko'。\n* 由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1745 中将 github\u002Fcodeql-action 从 3 升级到 4。\n* 由 @AyushAggarwal1 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1744 中新增了针对印度特定地区的 GSTin 识别器。\n* 由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1743 中添加了面向领域特定 Presidio 自定义示例的简化配方库框架。\n* 由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1741 中更新了 Python 版本支持：移除已停止维护的 3.9 版本，新增 3.13 版本。\n* 由 @SharonHart 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1752 中临时移除了对 Python 3.13 版本的支持，以调整 CI 配置。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1748 中引入了依赖项审查操作。\n* 由 @tamirkamara 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1749 中通过 GitHub Actions 发布文档。\n* 由 @dorlugasigal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1755 中为所有 Dockerfile 添加了 Docker HEALTHCHECK 指令。\n* 由 @SharonHart 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1757 中更新了 README.md 中的构建状态徽章。\n* 由 @dorlugasigal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1751 中修复了 AHDS 组件中不安全的 DefaultAzureCredential 使用方式。\n* 由 @tamirkamara 在 https:\u002F\u002Fgith","2026-02-12T09:58:33",{"id":189,"version":190,"summary_zh":191,"released_at":192},127404,"2.2.360","### 分析器\n#### 新增\n- 韩国居民登记号码（RRN）识别器，支持对2020年10月之前签发的号码进行校验和验证 (#1675)（感谢 @siwoo-jung）\n- 将 Azure 健康数据服务（AHDS）去标识化服务集成为远程识别器，并使用 Entra ID 进行身份验证 (#1624)（感谢 @rishasurana）\n- 为 NlpEngineProvider 添加全面的输入验证方法，以确保引擎、配置和文件路径的参数有效 (#1653)（感谢 @siwoo-jung）\n\n#### 变更\n- 更新印度 Aadhaar 识别器，支持上下文分隔符（-、:、空格），以提高检测准确性 (#1677)（感谢 @K3y5tr0ke）\n- 修复意大利驾照识别器的正则表达式，根据政府要求添加缺失字符，仅排除 A、O、Q、I (#1651)（感谢 @K3y5tr0ke）\n- 重构识别器文件夹结构，以提升组织性和可维护性 (#1670)（感谢 @omri374）\n\n### 匿名化器\n#### 新增\n- Azure 健康数据服务（AHDS）代理匿名化算子，具备医疗领域专业知识，可用于生成更真实的 PHI 代理数据 (#1672)（感谢 @rishasurana）\n\n#### 变更\n- 修复 encrypt.py 中的代码缩进问题，以提升代码质量 (#1660)（感谢 @aliyss）\n\n### 通用\n#### 新增\n- 提供全面的 GitHub Copilot 使用说明，包括开发指南、构建流程和端到端测试步骤 (#1693)（感谢 @Copilot）\n- 新增 GitHub Actions CI 和发布工作流，支持 AMD64 和 ARM64 架构的多平台 Docker 镜像 (#1697)（感谢 @tamirkamara）\n- 引入双路径 CI 工作流，通过自动检测分支与主仓库的 PR，解决外部贡献者在 GitHub Actions 上的构建失败问题 (#1708)（感谢 @Copilot）\n- 为 PyPI 发布启用 OIDC 受信发布机制，无需手动管理 API Token，同时提升安全性 (#1702)（感谢 @Copilot）\n- 为上下文感知识别器文档提供全面的 YAML 和 Python 示例 (#1710)（感谢 @MRADULTRIPATHI）\n\n#### 变更\n- 将 actions\u002Fcheckout 从 v4 更新至 v5，以支持 Node.js 24 运行时 (#1699)（感谢 @dependabot）\n- 修复 PR 模板，使用正确的 GitHub 问题链接语法，实现问题的自动关联与关闭 (#1701)（感谢 @Copilot）\n- 更新 LiteLLM 文档，添加详细指南链接，以更好地指导集成 (#1698)（感谢 @BhargavDT）\n- 修复识别器重构后 CONTRIBUTING.md 和识别器开发文档中的 broken link (#1674)（感谢 @siwoo-jung）\n- 修复 README.MD 中 OpenSSF 徽章的嵌入问题，使其正常显示 (#1673)（感谢 @SharonHart）\n- 从 Microsoft Defender for DevOps 工作流中移除 Terrascan，以消除非 IAC 仓库的误报 (#1691)（感谢 @Copilot）\n\n#### 安全\n- 更新 Streamlit 和 PyTorch 的依赖版本，以修复 CVE 漏洞 (#1685)（感谢 @SharonHart）\n- 更新 requests 库，以缓解 GHSA-9hjg-9r4m-mvj7 安全漏洞 (#1683)（感谢 @SharonHart）\n- 在 Streamlit 中锁定 pandas 依赖版本至 pr","2025-09-09T09:32:39",{"id":194,"version":195,"summary_zh":196,"released_at":197},127405,"2.2.359","# 版本 2.2.359\r\n这是一个周期性发布版本，包含功能增强、错误修复、文档更新以及一项配置变更。\n\n### Presidio 行为变更\n\n#### 将特定国家\u002F地区的识别器设置为禁用状态，以避免在不需要时产生误报。\n大多数预期输入为英语的特定国家\u002F地区识别器现已被设为可选，以避免误报，并且默认情况下不会启用 (#1586)。具体包括：\n    - SgFinRecognizer\n    - AuAbnRecognizer\n    - AuAcnRecognizer\n    - AuTfnRecognizer\n    - AuMedicareRecognizer\n    - InPanRecognizer\n    - InAadhaarRecognizer\n    - InVehicleRegistrationRecognizer\n    - InPassportRecognizer\n    - EsNifRecognizer\n    - InVoterRecognizer\n\n如需重新启用这些识别器，可以通过以下两种方式之一进行配置：一是修改 [默认 YAML 配置文件](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fblob\u002Fmain\u002Fpresidio-analyzer\u002Fpresidio_analyzer\u002Fconf\u002Fdefault_recognizers.yaml)，将它们的 `enabled` 字段设置为 `true`；二是通过代码手动将其添加到识别器注册表中。\n    - 基于 YAML 的方法：更多信息请参阅 [基于 YAML 的配置](https:\u002F\u002Fmicrosoft.github.io\u002Fpresidio\u002Fanalyzer\u002Fanalyzer_engine_provider\u002F)。\n    - 基于代码的方法：\n\n```py\nfrom presidio_analyzer import AnalyzerEngine\nfrom presidio_analyzer.predefined_recognizers import AuAbnRecognizer\n\n# 初始化一个带有识别器注册表的分析引擎\nanalyzer = AnalyzerEngine()\n\n# 创建 AuAbnRecognizer 的实例\nau_abn_recognizer = AuAbnRecognizer()\n\n# 将该识别器添加到注册表中\nanalyzer.registry.add_recognizer(au_abn_recognizer)\n```\n\n## 变更内容：\n### 分析器\n- 允许在配置了 StanzaNlpEngine 时加载 StanzaRecognizer，从而提升 NLP 引擎的灵活性 (#1643)（感谢 @omri374）\n- 从 REST Analyze 响应 DTO 中移除 recognition_metadata 属性，以简化 API 响应格式 (#1627)（感谢 @SharonHart）\n- 为 DateRecognizer 添加 ISO 8601 支持，以改进日期解析能力 (#1621)（感谢 @StefH）\n- 防止将 13 位数字的时间戳误判为信用卡号码 (#1609)（感谢 @eagle-p）\n- 更新 analyzer_engine_provider.md 文档，使其更加清晰和完整 (#1590)（感谢 @AvinandanBandyopadhyay）\n- 在 presidio-analyzer 的 Dockerfile 中将 Python 版本从 3.9 升级至 3.12 (#1583)（感谢 @dependabot）\n- 升级 phonenumbers 库版本，以改善电话号码验证和解析功能 (#1579)（感谢 @omri374）\n- 重构 InstanceCounterAnonymizer，简化索引获取逻辑 (#1577)（感谢 @ShakutaiGit）\n- 修复 #1574 问题，支持相关函数中的 as_tuples 参数 (#1575)（感谢 @omri374）\n- 更新 IN_PAN 识别器的初始分数，以提升识别效果 (#1565)（感谢 @omri374）\n- 添加 accelerate 作为缺失的构建依赖项，以解决构建失败的问题 (#1564)（感谢 @SharonHart）\n- 如果未指定 LABELS_TO_IGNORE，默认不设置其值，以避免意外行为发生 (#1563)（感谢 @SharonHart）\n- 更新 08_no_code.md 文档，以改进说明内容 (#1561)（感谢 @alan-insam）\n- 新增通过配置禁用 NLP 识别器的功能 (#1558)（感谢…","2025-07-13T07:22:32",{"id":199,"version":200,"summary_zh":201,"released_at":202},127406,"2.2.358","## 变更：\n\n* 04920aafbb2958b7359183bf5a72af627cdb2808 版本 2.2.358 (#1553)\n* dcf1ae0359269e049c7cbe9825bdeff14698a68d 移除 blake2b (#1552)\n* a0484ddc2c27b9a7ff4b214dfd64ed335108f64f 将 MD5 替换为 Blake2 (#1550)\n* e9df3beba53f51ec3fe181811756a46cd73daacd 在 URL 识别器中，从 URL 中排除结尾的单引号或双引号 (#1532)\n* cf75c5a0ee25c00bad1d9afc301d2b1e26bb766d 更新了“评估 DICOM 敏感信息遮盖”文档，以反映 DicomImagePiiVerifyEngine 类中 verify_dicom_instance() 方法的变化。(#1549)\n* 6b10fd595c224190f09c0fe9a2d9d3f154a0dee2 将 函数中的返回值类型注解由 更改为 。(#1547)\n* bacf23fa39bcecde7d40bf20c2315c2ce677469d 添加多进程参数 (#1521)\n* 08564790dcea6e7b459e6d81b6b63cca116545bb 迁移到 poetry 2.0（以及 PEP 621）(#1539)\n* 8b288fae61b898ff85e86302e425c8cc628ad702 文档：为 Fabric 中的 Presidio + Spark 添加环境设置和笔记本执行指南 (#1529)\n* 5881d7530848c7177276902bfc8c56e0a3ef7990 更新 defender-for-devops.yml (#1544)\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* eb72ae0838c6065104ff77ff3075e6df106fe456 更新 CodeQL 和 defender-for-devops 工作流 (#1540)\n* 515280566c00fa69bbfede900aa844bec0316f1a 将 pycryptodome 替换为 cryptography (#1537)\n* 5fea5af6af88ae2fadd4f7dbb93e90a889bad272 升级 codeql (#1536)\n* 26f2e92e52e8ba0560e8b9e0b013f7f701e855d3 修复 Python 3.9 构建问题 (#1534)\n* 65eabd447b8794a2144577ef13f06bc169941d43 将 spacy_stanza 添加到 stanza_nlp_engine 中，因为该库已不再维护 (#1522)\n* 35ab8ae06fbe88443a6695294da9f9b398c775e1 将 sanitize_value 移至 common 模块，并修复 InPassportRecognizer 问题 (#1519)\n* 6f840ea9c1f09e5ca81bbf7f86cf393809a94b7f 移除 azure-core (#1517)\n\n此变更列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=16937&view=logs)。*\u003C\u002Fdetails>","2025-03-18T09:38:24",{"id":204,"version":205,"summary_zh":206,"released_at":207},127407,"2.2.357","## 变更：\n\n* 7d26bac0a146328742890c6367a0764994baac7c GLiNER 集成示例 (#1504)\n* c01f0bd548f8bf6e9548d965d2bcbd71b0fdfe05 对 mkdocstrings 配置的 minor 更新 (#1503)\n* bed2979d4a95e96228e72c3a05e228e0719be04a 文档改版 (#1500)\n","2025-01-13T13:01:42",{"id":209,"version":210,"summary_zh":211,"released_at":212},127408,"2.2.356","## 更改：\n\n* 9fee33083b33ffe6f44db5d9aed2d3948f0a1357 版本 2.2.356 (#1477)\n* a081c22b46ea6c69621edf28792fb19868f79969 更新 presidio 容器以使用 gunicorn (#1497)\n* ebf0ca531d224b7782b643ca6d98640948f8884a 限制 spacy.cli 的版本为 3.7.0 (#1495)\n* 3d9cee96c305372997dfd2fccde04750bcf88726 修复 regex match_time 输出 (#1488)\n* a21a17c2cbcb212b36489c1e8d73118b28ff8ff9 添加模型类链接以简化配置 (#1472)\n* d238da9008e764a95685600a4abddddb28b8f86f 更新 community.md (#1469)\n* a0a5f8946b7076847926fd815a40e1dc40a4f15e 在推送容器时使用 ACR 服务连接 (#1484)\n* fde30dd4bd43bbf14b7a04fbaf42f85ed3e3d5be 在 REST API 中添加对 allow_list、allow_list_match 和 regex_flags 的支持 (#1478)\n* ce63783fcc48652f0f5c7758d47839bc7583ee6d 在放弃 3.8 版本后解锁 numpy (#1480)\n* 33808c28372331cfe40e9da496972df9d6dd4fc0 移除对 Python 3.8 的支持（已停止维护）并添加 3.12 支持 (#1479)\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* cc31bb61982311d7e2ad7e3b5334da797cdb6f98 添加指向 HashiCorp vault 运算符资源的链接 (#1468)\n* 71fa64df966a8fd0437035565e03ba9cafb52858 文档：澄清关于将 presidio 部署到 k8s 的文档 (#1453)\n* 21361f9e82410cef57b06ec91e87dbbd27632b62 更新 transformers 配置文档和 yaml 文件 (#1467)\n* 13ae328a07e41f6aad610e52814f5d8241e52897 修复 presidio-structured 构建 - 锁定 numpy 版本 (#1465)\n* 49f2b6a3bd701e40f7306bdb13bb5dd441e847e8 修复空格问题 (#1459)\n* b9f6cbaf05583e65cd35bdb9a22171a7f8d21b71 错误\u002Fazure ai language 上下文 (#1458)\n* 89ccadb8fce13a1ea73488c55ea801ced91019c2 更新 US_SSN 上下文和单元测试 (#1455)\n* c54ce2b9cf8795a168711a9fc6954d47d3269683 添加 UK 国家保险号码识别器 (#1446)\n* 9321e147d224f9ec635e8a16144f06919a889fcd 从支持实体中移除被忽略的标签 (#1454)\n* 0721e36194fe053515951729cee2567eec922a03 开发者容器用于：分析器、分析器+transformers、匿名化工具和图像擦除工具 (#1450)\n* 4aeb56bf5e2e1187dd535785cc41590ca3a4d5eb 添加批处理支持 (#1449)\n* 1bf22edcda31237ac38645defd9bbbcbf6cce5c7 更新 installation.md (#1439)\n* e55300af3f91fbf64b56e560ae024a3b1b17c405 更新 defender-for-devops.yml (#1437)\n* e08f44b273f4a50ab28f328a058ca7682e32ecf3 修复 #1442 (#1445)\n* 9696b9e14b77c5308ba4d921ebd7384a5fee6f2c 减少 Analyzer 测试套件的内存使用 (#1429)\n* 6c51464cb86c4b5cf03a9bc54338737f06490fb1 添加逻辑以处理带有国家代码的电话号码 (#1426)\n* 3e4a806b0640ac15b3d859fc6931c079eb2dd78d 根据 DockerCompose 项目名称问题更新 CI (#1428)\n* 2fe6ad70c75b56384bd495a1d61c71f17ba06b1d 关闭句柄 (#1424)\n* cd7e5471cb4e95a1d7a7227af7b847c502924842 (文档) 使用 LiteLLM 代理在 Anthropic、Bedrock、VertexAI、Azure OpenAI 等平台中使用 Presidio (#1421)\n* 8dc46e2c82745fd117b79b5f21768be1584e06d9 确保加载配置文件时关闭文件句柄 (#1423)\n* ada5fced6a70e1f023a014a2435d68bb2cca1fb7 不要在发布流程中发布 presidio-cli (#1422)\n* d85ba6e5a77ace499bd024a0f98824ca7fb7","2024-12-15T11:57:36",{"id":214,"version":215,"summary_zh":216,"released_at":217},127409,"2.2.355","## 更改：\n\n* edd722d01baeaf49844611ac2ca38db152d069e3 版本 2.2.355 (#1410)\n* c059131383d1caa832f7f9f180aab80043c95028 将预定义识别器更改为使用配置文件 (#1393)\n* 56f0df2a3a60de355950d84db26d040337b051ad 更新 Dockerfile.windows (#1414)\n* ad77f2ff2ced3562e5b0d7ea52e39db842c4b31d 更新 Dockerfile.windows (#1413)\n* ac38ccae3c1b61d03d744a3cf1e61986211e13d2 NLP 引擎示例 + 更新示例 (#1388)\n* 97a7e42b3897861a31d2706099244e1efedc110a 修复 transformer_recognizer.py 分析函数的实体过滤问题 (#1403)\n* 2be6de12dc223fa1e160733ebc61bdef2b2a0eba 修复文档中的端口问题 (#1408)\n* a3a609b40cd83ff55644ca4a3fb79bac94b8eb53 改进 URL 检测器 (#1398)\n* 4752166f765f245e77feb5d26e9b0848b89aba1b 从 Pipenv 迁移到 Poetry (#1391)\n* ebbfd3015048dfa56eb16daa7175e19bf5787d63 在自述文件中添加 Presidio 结构化下载内容 (#1392)\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 67d583709c5b51e389ed04e8bc4630e367bf90be 功能\u002F分析器文档 (#1384)\n* e65c89c68797d1609c7cba176e55450cc635d764 将 Python 打包迁移到 pyproject.toml (#1383)\n* 2d92539fcab6c640aa8e2960b7a29bb33a0d48f9 修复 N818、E721 错误 (#1382)\n* 51dc5c6d9dfc3988a05f90a8b6b2ab17db15e86f 自动格式化，修复 D 规则 (#1381)\n* cb0184afa2504b3084faead98e103186c43e47f4 添加 Ruff 静态代码检查工具 + 应用 Ruff 修复 (#1379)\n* 2348fff508f1a45af92945d5f597ec56bd4faae6 修复 crypto_recognizer 中的 OverflowError 错误 (#1377)\n* ff31243028a4fc2907d73388188987a988087759 使端口与文档和 Postman 集合保持一致。(#1375)\n* 2805c86221498f6e6843e608246af136b3137158 从配置文件加载分析器引擎和识别器注册表 (#1367)\n* 55bfb8fc7ec03bf93188ee4e1810a0984a609083 为分析器的允许列表添加正则表达式功能 (#1357)\n* e64d8ecf1097f0de6a9ccca0864447120838c150 西班牙 NIE（外国人身份证）识别器 (#1359)\n* f29e112fd3d12c555068e4bdffa961f49ea063df 更新配置文件位置 (#1358)\n* 41e02026f3cb56051bc66c773eaf5e0dc9de27f8 feat: 添加 IN_VOTER 新识别器 #1344 (#1345)\n* 5ea004d8adab0ad7fc1afcede0f67ee2831c9f9e 印度护照新预定义识别器 #1350 (#1351)\n* c7fa82518d28532384560ad0270a52abcdb95ec1 添加芬兰个人身份代码识别器。（#1349）\n\n此更改列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=16577&view=logs)。*\u003C\u002Fdetails>","2024-07-22T09:09:05",{"id":219,"version":220,"summary_zh":221,"released_at":222},127410,"2.2.354","## 更改：\n* ffa29f8d65bbc7ef72c7edba0821f31c2ffb9952 修复了 DICOM 元数据的错误条件 (#1347)\n* 49a996de8b5c01979712121b5e6d3f2f3e740f30 将默认聚合策略更改为最大值 (#1342)\n* db8ff8254123a113a0d511a484647734021de612 功能：在 Presidio Structured 中实现用户自定义实体选择策略 (#1319)\n* 4db5278bd1636416f0a450e2937236803d77e81c 在分析器中缓存已编译的正则表达式 (#1335)\n* 9c3369d7e3182faf508663ee61e33d094fcb453c 错误修复 - 修复了 analysis_explanation 中引用错误的 PhoneRecognizer 识别器的问题 (#1332)\n* 6a4135ee0f9d078c4f1909cd5f9931f4b610d52d 修复“bank”和“check”无法正常工作的错误 (#1333)\n* ea8d830fe445ee150e4ed76db5b4f36904400809 在 README 中添加了贡献者信息 (#1331)\n* 733cca26cfd5d8f4f0cc0be2eaf630fe442fce9c 添加 Span Marker 识别器示例 (#1321)\n* 1911a3d6befd48e0cac327cbdffd1f7f37565fcc 更新 spacy_stanza.md (#1325)\n\u003Cdetails>\u003Csummary>\u003Cb>查看更多\u003C\u002Fb>\u003C\u002Fsummary>\n\n* d71c5fbf470af4e6550ead8f2c3c1a02e18dd0c8 功能：添加新加坡 UEN 识别器 (#1315)\n* 59af84d13122acbaafb7300303e2987494062814 将 Tesseract 添加到安装中 (#1312)\n* 4c48b928d3eef458a99fabeef8bfc737e5869640 在预定义的 PhoneRecognizer 中添加宽容度参数 (#1311)\n* 173b52726c57dbcf903e5eeb7d19610dedab743c 修复教程中的错误 (#1310)\n* dee6562ab50c5a3655e514487521427e49112e6e 预定义模式识别器：IN_VEHICLE_REGISTRATION (#1288)\n* a8d2c90cea5f2277dd9e20bdba57ddb4ecf6768a 功能：在 Crypto Recognizer 中添加 Bech32 和 Bech32m 比特币地址验证，并扩展测试用例 (#1307)\n* 45c418dad431bfe73a1ef94183d1ad667309cb69 功能：在 SG_NRIC_FIN 识别器中支持“M”前缀，并扩展测试用例 (#1304)\n* 5dfbf273319e8c29db712556dd5cd299dde53ee1 分析构建器改进 (#1295)\n* 7f09c95b9df300670fb8c715b2d5d46b089571c3 添加了假名化示例 (#1296)\n\n此更改列表由 [自动生成](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=16320&view=logs)。*\u003C\u002Fdetails>","2024-03-29T13:48:04",{"id":224,"version":225,"summary_zh":226,"released_at":227},127411,"2.2.353","* 添加预定义识别器：IN_AADHAAR (#1256)\n* 增加了添加自定义算子和假名化示例的选项 (#1284)\n* 修复因可选包导致的测试失败 (#1258)\n* 允许在 NLP 引擎中加载本地 Spacy 模型 (#1269)\n* 在 Windows 容器中升级 pip (#1272)\n* 修复 ImageAnalyzerEngine 中的 bug #1274","2024-02-12T15:44:37",{"id":229,"version":230,"summary_zh":231,"released_at":232},127412,"2.2.352","## Changes:\r\n### Added\r\n#### Structured\r\n* Added alpha of presidio-structured, a library (presidio-structured) which re-uses existing logic from existing presidio components to allow anonymization of (semi-)structured data. (#1192)\r\n\r\n#### Analyzer\r\n* Add PL PESEL recognizer (#1209)\r\n* Azure AI language recognizer (#1228)\r\n* Add_conf_to_package_data (#1243)\r\n\r\n#### Anonymizer\r\n* Add keep operator as deanonymizer (#1255)\r\n* Update anonymize_list type hints and document that sometimes items will be ignored. (#1252)\r\n\r\n\r\n#### General\r\n* Add Dockerfile for Windows containers (#1194)\r\n\r\n### Changed\r\n#### Analyzer\r\n* Drop WA driver license number (#1214)\r\n* Change ner_model_configuration from list to map (#1222)\r\n* Bugfix in SpacyRecognizer (#1221)\r\n* Bugfix in NerModelConfiguration (#1230)\r\n* Add_conf_to_package_data (#1243)\r\n\r\n#### Anonymizer\r\n* Improved the logic of conflict handling in AnonymizerEngine (#1196)\r\n\r\n#### Image Redactor\r\n* Change default score threshold in image redactor (#1210)\r\n* fixes bug #1227 (#1231)\r\n* Added missing dependencies for opencv-python and azure forms recognizer (#1257)\r\n\r\n#### General\r\n* Remove inclusive-lint step (#1207)\r\n* Updates to demo website with new NLP Engine (#1181)\r\n","2024-01-22T08:50:11",{"id":234,"version":235,"summary_zh":236,"released_at":237},127413,"2.2.351","### Changed\r\n#### Analyzer\r\n* Hotfix for NerModelConfiguration not created correctly (#1208)\r\n\r\n## [2.2.350] - Nov. 2nd 2024\r\n### Changed\r\n#### Analyzer\r\n* Hotfix: default.yaml is not parsed correctly (#1202)\r\n\r\n## [2.2.35] - Nov. 2nd 2024\r\n### Changed\r\n#### Analyzer\r\n* Put org in ignore as it has many FPs (#1200)\r\n\r\n","2023-11-08T21:11:18",{"id":239,"version":240,"summary_zh":241,"released_at":242},127414,"2.2.350","\r\n\r\n## Changes:\r\n* https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fcommit\u002Fc16fad9cbfa6cb0bcb5fe209724d7abfb0b579e8 Hotfix: default.yaml is not parsed correctly (https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fpresidio\u002Fpull\u002F1202)","2023-11-02T09:46:13",{"id":244,"version":245,"summary_zh":246,"released_at":247},127415,"2.2.35","\r\n\r\n## Changes:\r\n\r\n* 22619f3198d1b1fabc9b46db6aaee945096696e5 Put org in ignore as it has many FPs (#1200)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=15667&view=logs).","2023-10-31T21:58:58",{"id":249,"version":250,"summary_zh":251,"released_at":252},127416,"2.2.34","\r\n\r\n## Changes:\r\n\r\n* b756c174ca06b0cb451eb17c8097038d2023cbb3 Enable regex flags manipulation (#1193)\r\n* 4aaa05fca8c162853d47046954ed65d78f838e9b New NlpEngine - docs (#1177)\r\n* 3a7b8f67f56d2c32a834af5ff4739a312bb42dd5 Integrating spacy-huggingface-pipelines and refactoring NlpEngine logic (#1159)\r\n* 818c80f9780186b29b09a9489fd3aab00c68c978 Msft document intelligence ocr (#1184)\r\n* 6cf5f18cb4a891b64ebf6073ef02d59192a3a349 added image processing class to preprocess the image before running OCR (#1166)\r\n* 7400dc4b357595406954e13c0ecbdee4b27e5cd8 Updating verification engines and enable plotting of custom bboxes (#1164)\r\n* beb605d38c153163e18141568e86c999647d5c16 update type check (#1175)\r\n* f36caf448f2a5b14c3adddb8c521df907e57e964 anonymize_list return type hint fix (#1178)\r\n* d8541e973349ceefccec926a01992dd554de6123 Improve bbox processor (#1163)\r\n* 4e8490ce0cfe4f74bdb83fbe34427ad681fe7fbd Updating verification engines to include latest updates to redactor engines (#1162)\r\n* 93934a93b29f5f3d659725482b22d3bbf4b6e62c Adding examples of toggling metadata usage and saving bboxes (#1158)\r\n* 1a12771c90ceff042e9ab2d12b6ada06f534706a Improve process names method in DICOM image redactor (#1150)\r\n* 60e1f7db941a6f2c18e33e11353345a54e17d295 Enabling allow list approach with all image redaction (#1145)\r\n* 994074bbb41c6a568d0eb6bd7867206bd8194736 Changing test exception type check (#1148)\r\n* 9206d7a2f2a0d33089cf08a3a8f0f5f055755cac Anonymizer - Pass bytes key to Encrypt \u002F Decrypt (#1147)\r\n* dfddae429c233de3a0011f9bc2adbefbe3dff47d Update security-analysis.yml (#1154)\r\n* 8e1bf802c45e9a13e4c3b45672adad3169b8f3d5 Enable toggle of printing output location after redacting from file (#1144)\r\n* 18090c60c62f2074eebe492f909f079d637df67c install from pipfile (#1152)\r\n* fa861aaddf334837afd63ab928c2dc8a5beeaa7f DICOM redactor improvement: Enable selection of redact approach (#1113)\r\n* 3effc1467b8714714d5112ef7b627889507ea83d Fix type mismatch in check_label_groups parameter in spacy_recognizer (#1130)\r\n* a2f7785c9298b9695aadccf961ff329420118609 Fix Sphinx warning in OperatorConfig (#1143)\r\n* e323fed0209a3cef3fa7e75eb6b2ef0e0e92234f DICOM redactor improvement: Enable return of redacted bboxes (#1111)\r\n* 67833d5be37ce2ce603836e120f40bb7513ee498 DICOM redactor improvement: Enabling compatibility with compressed images (#1105)\r\n* 0a4c76d005d5db69e0742eabb95184e74cff1e89 New Predefined Recognizer: IN_PAN (#1100)\r\n* a1c5c309ea98260e1e24d12784002ce82a7112ce DICOM redactor improvement: Preventing distortion when multiple sets of pixels are in one instance (#1109)\r\n* d51ff564f411114a30fe21ef00d534e3bd073793 Initial logic check for merging 2 entities (#1092)\r\n* a66103784171b78417e56c552d2faa808afa9cdf relock image redactor (#1117)\r\n* 08e7b8909ad9b3e16b0754c0223105de225b0763 Small reordering of kwargs as prereq for allow list functionality (#1110)\r\n* 23a89af2d74430910d0a21037df478c488761a89 DICOM redactor improvement: Adding exceptions for when DICOM file does not have pixel data (#1104)\r\n* 42f30bde24eaba13729225dcfad3a18db489b447 DICOM redactor improvement: Enabling more photometric interpretations (#1103)\r\n* a1c8a23e206f1a5671f164758a4d14b769901fd4 image-redactor-version-0.0.48 (#1098)\r\n* ced96b0f4d30102c1a7a1e9cfe02f5c49c66ea83 hotfix for removing fixed dependency versions (#1096)\r\n* 838d402b470cd80b1bfe7db17c7fb1c09c3f818a Change ACR instance (#1089)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=15651&view=logs).\u003C\u002Fdetails>","2023-10-30T19:43:32",{"id":254,"version":255,"summary_zh":256,"released_at":257},127417,"2.2.33","\n\n## Changes:\n\n* b6f81912e9b3649c39b341c6d8f203afaf60087e Update VERSION to 2.2.33 (#1081)\n* 0e5c3b7907d4c4dc177f29ad231d1f92e31b17f1 Updated docs website and notebooks (#1086)\n* dda4444fdab0dd9396f2cae4380ce99e93285afd Updates to the TransformersRecognizer sample (#1084)\n* 87380574af8cf7498027133bf5f68614cd6c5c29 Update setup.py (#1082)\n* 3e84d9ef25741d5637c3f14ddc1966e98d0d0353 Updated demo website (#1078)\n* d459d44ff5bcd6797d6565bfc25df26132841c10 Lock with 3.8, drop building on 3.7 for 3.11 (#1080)\n* e5d41912a88df146b36086dd1883f84a89bd4399 push images on CI (#1072)\n* 0f48e6eb110c522f90a09db600482b62e97d113f Revert \"Remove link to demo website (temporary) (#1047)\" (#1068)\n* 09c05f6517079af83fa332f824dfd0291d8e26cb Bump flask from 2.2.2 to 2.3.2 in \u002Fpresidio-analyzer (#1065)\n* a7ff5479574ef704034225fa6c5e1092aaf48244 Bump flask from 2.2.3 to 2.3.2 in \u002Fpresidio-image-redactor (#1066)\n\u003Cdetails>\u003Csummary>\u003Cb>See More\u003C\u002Fb>\u003C\u002Fsummary>\n\n* 481811af113eaf2efa5c668e8ca7fc61128aeb9d Add batch anonymization (#993)\n* 24a76a8f440daaf4185bfed378d18901dfbc17c0 Added \"keep\" anonymizer (#1062)\n* 61a540561111fd94cb8d6eaed37ef01dd9880393 New demo app for Presidio, based on Streamlit (#1054)\n* b4b62b23ebdb6b0d35d9b2b85e216776a363bccc Fix name of a couple of entity types in the docs (#1057)\n* 60911edf166d216e14cbed6ba6a0ac2d42796fb4 GPT-3 based synthetic data generation (#1051)\n* aeaff636a6922757f169e297c0dd0333dc722343 skip pushing images and deploying services (#1050)\n* ff8892973e6cb6c3f8c7e559dc99e7ad8eb3d66d Remove link to demo website (temporary) (#1047)\n* 1d50d41a08047d1c451cec3deddbb746d8a659f5 Bump werkzeug from 2.2.2 to 2.2.3 in \u002Fpresidio-image-redactor (#1032)\n* d7788f5fa76178933332f9c4b49ef7269e893826 Bump werkzeug from 2.2.2 to 2.2.3 in \u002Fpresidio-analyzer (#1031)\n* 7595011aeb112e43201f68929d45c2ff55ba3e1b Bump werkzeug from 2.0.2 to 2.2.3 in \u002Fpresidio-anonymizer (#1030)\n\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=15214&view=logs).\u003C\u002Fdetails>","2023-06-04T10:03:18",{"id":259,"version":260,"summary_zh":261,"released_at":262},127418,"2.2.32","\r\n\r\n## Changes:\r\n\r\n* 07b854dd7ae247b916aef4d2adbb82f33bba7be8 Adding a sample for identifying PII in a PDF (#1023)\r\n* 9671db36d3ce7086ed34b629c6ad965f8b28a874 Adding type check for image passed to redact (#1020)\r\n* 3a406838415f8feeb6eeafc8973f0f2ac41da448 Fix Anonymize API documentation (#1018)\r\n* 105d9455c532c24ac4d58b74c1ac4688eac1f304 Install transformers model into the docker image (#912)\r\n* 5512a39ce78278b592710082ad20f89889373b33 Consolidating general bounding box operations (#1011)\r\n* 11dfa64d6383603b76ec2149dfacbd4a13398f17 Image Redactor - REST API to support web applications payload (#1009)\r\n* bce777bb72cd49ecfa61238ed5b39e7b3cc0200d Enable thresholding of OCR results (#1001)\r\n* 1d07b03866065fae01b38eabb8d2fd74e7bc4a57 Make displaying DICOM verification image optional (#1000)\r\n\u003Cdetails>\u003Csummary>\u003Cb>See More\u003C\u002Fb>\u003C\u002Fsummary>\r\n\r\n* b0430cabbbbeabf692cf21da37b814cbd5b626ea Add evaluation code for DICOM de-identification (#979)\r\n* 9dba056745ebaa115d5797ca414451b40f8b222d Updating DICOM redact box fill color selection (#987)\r\n* 8993be09e9afdb1032af0e0194a19d2885ada5ac fix access to start end positions (#994)\r\n* aab4d20ee71b89bf41580cdb5c15caa12d51f2d5 Sample - analyze and anonymize csv file  (#990)\r\n* a29e1bb9f8b20a9700e44f83582576d884779260 Enabling ImagePiiVerifyEngine to accept kwargs (#978)\r\n* 7b7079346e0d740454d63f5b2fa83ccdad2899e1 Fix exception on whitespace in AU recognizers (#983)\r\n* b0a4c72d28ca5af4f657c5934b158f69d10adc9e Update example_text_analytics_recognizer.py (#981)\r\n* 2107f051c6cde715c2935f096f74bddb4ad155a3 add revised example for transformer recognizer (#962)\r\n* a153a59c64eda20677d6b4a039037f634d7069bd Bump analyzer, image-redactor dependencies + Fix CLI hanging (#980)\r\n* 2b8f4ef73a565c306e865b69f5c8b45ac794a8cd Fix: merge entity from the same type (#934)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=15032&view=logs).\u003C\u002Fdetails>","2023-01-31T19:53:14",{"id":264,"version":265,"summary_zh":266,"released_at":267},127419,"2.2.31","\r\n\r\n## Changes:\r\n\r\n* 2730c6c00bd448deb03ceaefa2c8fb9a384357ab Adding DICOM image redacting capability to presidio-image-redactor module (#960)\r\n* 3d5f2c9e08bcd8ee53319289c3f86f53c22244db Fix IPv6 Recognition (#958)\r\n* 5dcc8dc0226cacf1b018abc5ad8de26f448eb8c0 Added information on CLA into CONTRIBUING.md (#949)\r\n* 93aa62b1dbd3a21c85579f738989dde67779f428 Replace the wording on README (#953)\r\n* d8aca134081d39ed2fec98d356796b58da00dac3 Bump pillow from 9.2.0 to 9.3.0 in \u002Fpresidio-image-redactor (#947)\r\n* 60a9901c6a7091badefd54ae43025779a0d53207 Add 50-60 number range to itin recognizer (#955)\r\n* 865f44802d6d27d302c5cad3ceec34e49bfd758a Update to ImagePiiVerifyEngine class (#952)\r\n* fa9a3703cc5e6b651e3b433e1dd29008df52672c Add missing comma (#946)\r\n* e329e1634b695bdf70852ecc77795c740943e5d3 Integrate Presidio CLI (#918)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=14709&view=logs).\u003C\u002Fdetails>","2022-12-14T17:50:57",{"id":269,"version":270,"summary_zh":271,"released_at":272},127420,"2.2.30","\r\n\r\n## Changes:\r\n\r\n* 77f1a8e125e5e84f9a725917dfd778cedcc39820 Remove constraint on empty texts for the anonymizer (#942)\r\n* aa50e6bbcd8bef6c0281c7c0eb1b354bc20ae55e fix for misalignment between transfrormers and spacy (#941)\r\n* 0c7117e81a63642d11b62f5f73171954925becde Compare recognizers to results using a unique key instead of name (#940)\r\n* 2193c23aa0458ac3daf2a51c865b79d732de32fe Update docs to contain the new transformers based NLP engine (#933)\r\n* f92eb5c363b9c0a1e1258da7c5875e4bacf5163f GH action to collect Github repo stats and persist into a branch (#936)\r\n* 892d6a9cb52366d0354479518062d1ac160c85af Add italian VAT code Recognizer (#928)\r\n* bb1ad91b8feeb663de560419efdea448940cf6ab Add files via upload\r\n\u003Cdetails>\u003Csummary>\u003Cb>See More\u003C\u002Fb>\u003C\u002Fsummary>\r\n\r\n* f1824b02d0f9ee82bac6f20c06f1004b0b1ee1a9 Add Italian passport and identity card recognizers (#930)\r\n* af6c8b3150d843f7ff577c881551b2193d39ff66 Update medical_license_recognizer.py (#932)\r\n* 027e146068cf9b4b5cdd3dd945e1669ef5a07cd0 Add Next Generation Passport recognition (#906)\r\n* a48285e707581ca4299d815dbd429a07b0017479 bump black in pre-commit script to 22.3.0 (#927)\r\n* 494a227b5536413d1bd30fbf2bf20368db95c035 Italian fiscal code and driver license recognizers (#919)\r\n* e561c465d1f78d263d7a51f0a4720f0ca83c7650 remove --sequential from pipenv sync (#921)\r\n* 37f74e8e880cb1bdf3f5224a05eaa9b63df02d31 Adding TransformersNlpEngine (#886)\r\n* fb01d2374ebef9b0b1e809790e49a75e02d731cb Update index.md (#897)\r\n* d6b9c63e856b966d1d5d88c3f90a2d3a23ccac50 bug fixes to mkdocs, added download button capability (#895)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=14523&view=logs).\u003C\u002Fdetails>","2022-10-25T12:36:14",{"id":274,"version":275,"summary_zh":276,"released_at":277},127421,"2.2.29","\r\n\r\n## Changes:\r\n\r\n* 4cbfc1a80dc15da7d5a9cf5a1c680e8df4f2b349 bump pillow to version 9 (#891)\r\n* 87c62d96ced61c86725742994a3c1160f68ede3c Fix getting the text before anonymizing (#890)\r\n* 9b0d10cc0e9762418dec01cf6367af45149430c7 bugfix: Handling missing (None) data on batch (#881)\r\n* 72d225c5f8dbbbc170f6478d98c3b4d7da81a64c added allow list functionality to analyzer engine (#865)\r\n* f3519e78c8c2c3fb56305b6f1a6a3ccd09da0e62 Batch analyze - Support for lists and dicts (partial) (#878)\r\n* b4b1b97f984b090ff66f8b0026fc22083c18ee0a Added sample notebook for anonymizing known values (#864)\r\n* 63ca86f81982970344d91b43350085a84f51eca7 Add transformers recognizer sample (#866)\r\n\u003Cdetails>\u003Csummary>\u003Cb>See More\u003C\u002Fb>\u003C\u002Fsummary>\r\n\r\n* 158cf64caeec7206bff0a3728b81171918826e15 Update README with ossf badge (#877)\r\n* bcd32322034fb773579cb12758b6c7161bc479f0 Add GH code scanning with codeQL (#871)\r\n* b69beb84110bc804c43a475fb989108d57bc9a88 Update 04_external_services.md (#870)\r\n\r\nThis list of changes was [auto generated](https:\u002F\u002Fdev.azure.com\u002Fcsedevil\u002FPresidio\u002F_build\u002Fresults?buildId=14357&view=logs).\u003C\u002Fdetails>","2022-07-12T11:24:53"]