می‌توانید داده‌های حساس را از یک سند با درخواست از یک عامل هوش مصنوعی به زبان ساده حذف کنید و حذف به‌صورت محلی، داخل فایل، بر روی ماشین شما اجرا می‌شود. با اتصال GroupDocs.Redaction.Mcp به Claude Desktop، Claude Code، Cursor یا GitHub Copilot، یک درخواست کافی است:

تمام آدرس‌های ایمیل را در case-file.pdf حذف کنید و به من بگویید کدام فایل را ذخیره کردید.

نسخه گام‌به‌گام با پیکربندی و عیب‌یابی در مستندات موجود است: How to redact sensitive data from documents with AI agents.

چرا یک مدل چت نمی‌تواند به‌سادگی سند را برای شما حذف کند؟

یک مدل زبانی که سندی را می‌خواند و نسخه‌ای جدید می‌نویسد، بازنویسی است نه حذف. بازنویسی ممکن است برخی موارد را از دست بدهد، عبارات را که شما درخواست نکرده‌اید تغییر دهد و هرگز به فایل اصلی دست نمی‌زند. یک مستطیل سیاه کشیده شده در یک نمایشگر PDF نیز همان نقص را دارد: متن زیر جعبه همچنان در فایل باقی می‌ماند و می‌تواند کپی شود. عامل نباید حذف را انجام دهد. باید الگو را پیشنهاد کند و ابزار را فراخوانی کند و موتور باید متن مطابق الگو را مستقیماً در سند جایگزین کند.

این همان تقسیم کار در GroupDocs.Redaction.Mcp است. عامل الگوها را پیشنهاد می‌دهد و فراخوانی‌ها را هدایت می‌کند. موتور دقیقاً همان‌ها را اعمال می‌کند. هیچ طبقه‌بندگری برای تشخیص حساسیت وجود ندارد، بنابراین رفتار قابل بازبینی است و تصمیم درباره اینکه چه چیزی حساس است، با شما می‌ماند.

روش ۱: جایگزینی متن بر اساس الگو

از این روش برای هر چیزی که می‌توانید به‌صورت عبارت منظم (regular expression) توصیف کنید استفاده کنید: آدرس‌های ایمیل، کدهای ملی، شماره‌های تلفن، شماره حساب‌ها، نام مشتری. عامل redact_text را فراخوانی می‌کند که متنی که با الگو مطابقت دارد در سند جایگزین می‌کند و یک نسخه حذف‌شده ذخیره می‌نماید. نسخه اصلی دست نخورده می‌ماند.

هر چیزی که با \b\d{3}-\d{2}-\d{4}\b مطابقت دارد، شماره‌های امنیت اجتماعی ایالات متحده، در case-file.pdf حذف کنید. قبل از اجرا الگو را به من نشان دهید.

درخواست مشاهده الگو قبل از اجرا، ارزش یک چرخش اضافی را دارد. یک regex که شما آن را خوانده‌اید، حذف‌کاری است که می‌توانید از آن دفاع کنید و یک regex سست بیش از آنچه می‌خواهید حذف می‌کند، در حالی که یک regex سفت داده‌ها را باقی می‌گذارد. پارامتر replacement به‌صورت پیش‌فرض [REDACTED] است که مرور خروجی را آسان می‌سازد.

نتیجه مورد انتظار: یک نسخه حذف‌شده در پوشه خروجی و پیامی از عامل که نام فایل ذخیره‌شده را می‌گوید.

روش ۲: پاک‌سازی مکان‌هایی که الگوی متنی نمی‌تواند به آن‌ها دست یابد

تمیز کردن متن اصلی و ارسال فایلی که نظرات حاشیه‌ای و فیلد نویسنده هنوز نام شخص را نشان می‌دهند، رایج‌ترین راه شکست حذف است. داده‌های حساس در چهار مکان قرار دارند و هر کدام ابزار مخصوص خود را دارند:

محل داده ابزار
متن اصلی redact_text
اسکن‌ها، عکس‌ها، امضاها redact_image_area
نظرات و یادداشت‌های چسبان redact_annotations
نویسنده، شرکت، تاریخ‌ها در ویژگی‌ها erase_metadata

تمام حاشیه‌نویسی‌ها را در case-file.docx حذف کنید، سپس ویژگی‌های نویسنده، شرکت و تاریخ را پاک کنید. هر مرحله را روی فایلی که مرحله قبلی تولید کرده اعمال کنید.

redact_annotations می‌تواند متن حاشیه‌نویسی را جایگزین کند یا با deleteAll تمام حاشیه‌نویسی‌ها را به‌طور کامل حذف نماید. erase_metadata فهرستی از فیلدها را به‌صورت کاما جدا می‌گیرد، مانند Author,Company,CreatedTime و به‌صورت پیش‌فرض All است. دستور زنجیره‌ای مهم است: هر فراخوانی یک فایل جدید می‌نویسد، بنابراین عاملی که فایل اصلی را به مرحله دوم می‌دهد، مرحله اول را از دست می‌دهد.

نتیجه مورد انتظار: فایلی نهایی که توسط آخرین مرحله در زنجیره تولید شده است، با نام تمام فایل‌های میانی که در متن گفتگو قابل مشاهده‌اند.

روش ۳: حذف قبل از درخواست و نگه داشتن مقادیر خارج از گفتگو

حذف پیش از LLM به این معنی است که رشته‌های حساس هرگز به مدل میزبانی‌شده نمی‌رسند. اسناد بر روی ماشین شما می‌مانند، اما گفتگو نه. با یک مدل میزبانی‌شده در ابر، آنچه عامل می‌گوید به ارائه‌دهنده مدل می‌رسد و در کار حذف می‌تواند شامل رشته‌هایی باشد که شما در حال حذف آن‌ها هستید. «من jane.smith@example.com را حذف کردم» به‌سادگی آدرسی را که می‌خواستید محافظت کنید، ارسال کرده است.

نام مشتری را با استفاده از الگوی استاندارد ما حذف کنید. متن مطابقت یافته را در پاسخ خود تکرار نکنید.

ابزارهای حذف نام فایل ذخیره‌شده را برمی‌گردانند، نه تعداد مطابقت‌ها. عددی که در پاسخ عامل می‌آید، خوانش خودش است، برای مثال از جستجوی متن قبل از حذف، بنابراین آن را به‌عنوان یک بررسی متقابل در نظر بگیرید نه به‌عنوان خروجی ابزار. برای قوی‌ترین تنظیمات، یک مدل محلی اجرا کنید تا هیچ‌چیزی از محدوده شما خارج نشود، که همچنین خودکارسازی حذف اسناد را به‌صورت سراسری محلی فراهم می‌کند.

نتیجه مورد انتظار: نام فایل ذخیره‌شده در پاسخ، بدون رشته‌های حساس در متن گفتگو.

جلسه نمونه (مختصر)

You:    Redact every email address in case-file.pdf and tell me which file you saved.
Agent:  I will use this pattern: [\w.+-]+@[\w-]+\.[\w.]+
        -> redact_text(file: case-file.pdf, pattern: ..., replacement: "[REDACTED]")
Agent:  Saved case-file_redacted.pdf.
You:    For case-file.docx, delete all annotations and clear the document properties.
Agent:  -> redact_annotations(file: case-file.docx, deleteAll: true)
        Saved the output file.
        -> erase_metadata(file: the file saved by the previous step, fields: "All")
        Saved the output file.

محدودیت‌های حالت ارزیابی چیست؟

این را به‌صورت واضح قبل از هر اجرای مهم بیان کنید. بدون لایسنس، سرور در حالت ارزیابی اجرا می‌شود: یک سند در هر فرآیند، یک حذف، حداکثر ۴ جایگزینی، به‌علاوه نشان‌های آزمایشی. الگویی که ده بار رخ می‌دهد، چهار بار حذف می‌شود و شش بار باقی می‌ماند و خروجی می‌تواند تمیز به‌نظر برسد. این محدودیت فقط برای نمایش‌ها است. هرگز خروجی یک اجرای بدون لایسنس را منتشر نکنید و ابتدا get_license_status را بپرسید: «وضعیت لایسنس سرور حذف چیست؟»

اینکه آیا نتیجه با مقرراتی مانند GDPR سازگار است یا نه، تصمیمی است که با شما می‌ماند. سرور آنچه را که به او می‌گویید حذف می‌کند، در فایلی که به او می‌دهید.

  • PDF روی لینوکس. در لینوکس، از جمله تصویر Docker، redact_image_area و erase_metadata در حال حاضر بر روی فایل‌های PDF شکست می‌خورند (مدیریت تصویر موتور PDF به System.Drawing وابسته است که .NET فقط روی ویندوز پشتیبانی می‌کند)؛ هر دو بر روی اسناد Word کار می‌کنند و redact_text بر روی PDF کار می‌کند. حذف ناحیه PDF و پاک‌سازی متادیتا را روی ویندوز با dnx اجرا کنید.

سؤالات متداول

آیا Claude می‌تواند PII را از یک PDF بدون بارگذاری حذف کند؟ بله. سرور MCP به‌عنوان یک فرآیند فرزند از کلاینت AI شما بر روی stdio محلی اجرا می‌شود و فایل‌ها را در پوشه‌هایی که پیکربندی می‌کنید می‌خواند و می‌نویسد. توجه داشته باشید که هر آنچه عامل در چت می‌گوید همچنان به یک ارائه‌دهنده مدل ابری می‌رسد.

آیا عامل تصمیم می‌گیرد چه چیزی حساس است؟ نه. عامل الگوها را پیشنهاد می‌کند و شما آن‌ها را بازبینی می‌کنید. موتور دقیقاً همان چیزی را که به آن داده می‌شود اعمال می‌کند.

چگونه آن را نصب کنم؟ با .NET 10 SDK، دستور dnx GroupDocs.Redaction.Mcp --yes را اجرا کنید و GROUPDOCS_MCP_STORAGE_PATH را به پوشه‌ای که اسناد شما در آن قرار دارد تنظیم کنید. گزینه دیگر Docker است: ghcr.io/groupdocs-redaction/redaction-net-mcp.

عمیق‌تر بروید