🔐 PromptShieldPOC 翻译为中文是:“🔐 提示保护概念验证(Proof of Concept)”
由萨钦·古普塔与Copilot共同用心打造,最后更新时间:2025年10月11日
由……驱动的文档安全摘要工具 模型上下文协议(MCP) ——一个强大的基于人工智能的系统,能够处理TXT和PDF文件,过滤不安全内容,并生成具有企业级安全性和身份保护的摘要。
🚀 特性
- 使用Azure OpenAI上传并总结TXT或PDF文档
- 使用 Azure 内容安全服务过滤不安全提示
- 通过模型上下文协议(MCP)安全地传递上下文路由
- 通过Azure Entra ID验证用户身份
- 通过Prompt Shield显示实时警报
- 记录所有活动以便审计和调试
- 使用Streamlit构建的交互式仪表板
- FastAPI 后端负责处理所有安全处理和 MCP(微服务控制平面)编排工作
🧱 技术栈
- Python(使用FastAPI作为后端)
- Azure OpenAI(GPT-3.5 Turbo 摘要功能)
- Azure 内容安全(毒性检测与越狱检测)
- Azure Entra ID(通过MSAL进行OAuth2认证)
- 用于安全上下文路由的MCP(模型上下文协议)
- Streamlit(用户界面仪表板)
🔄 后端交互
app.py(Streamlit) 发送请求至server.py(FastAPI)- FastAPI 处理:
- 令牌验证 - 内容安全扫描 - Prompt Shield 过滤 - 通过Azure OpenAI进行摘要生成
- 响应被返回给用户界面以进行显示和下载
📊 架构概览
在仪表板侧边栏中,点击“📊 查看MCP架构图”以查看完整图表。
______________________________________________________________________
由……创建 萨钦·古普塔 带着爱心❤️ + Copilot
📂 项目结构
项目结构以图表形式呈现: ├── config/(配置文件目录) ├── docs/(文档目录) │ └── architecture.md # 图表、流程图、设计决策 ├── src/(源代码目录) │ ├── api/ │ │ └── server.py # FastAPI MCP 服务器 │ ├── auth/ │ │ └── entra_auth.py # Azure Entra ID 集成 │ ├── ingestion/ │ │ ├── email_loader.py # Enron 邮件解析器 │ │ └── pdf_loader.py # GovInfo PDF 解析器 │ ├── shield/(盾牌/防护目录) │ │ ├── content_safety.py # Azure 内容安全集成 │ │ └── prompt_filter.py # 提示词过滤逻辑 │ ├── summarizer/(总结器/概括器/) │ │ ├── chunker.py # 带有标记意识的分块处理 │ │ └── summarize.py # Azure OpenAI 摘要生成逻辑 │ └── config_loader.py(配置加载器.py) ├── tests/ (测试文件夹) │ ├── generate_test_files.py(生成测试文件.py) │ ├── mock_scan.py(翻译为中文即:模拟扫描脚本) │ ├── test_chunker.py(翻译为中文可保持原样,因为文件名通常不翻译,但若要解释其含义,可为“测试分块器的脚本.py”) │ ├── test_content_safety.py │ ├── test_email_loader.py │ ├── test_ingestion.py(测试摄入模块的Python文件) │ ├── test_pdf_loader.py(测试PDF加载器) │ ├── test_prompt_filter.py(文件名可译为“测试提示过滤器.py”,但通常文件名不翻译,保持原样) │ ├── test_server.py(翻译为中文即:│ ├── 测试服务器.py) │ ├── test_shield.py │ └── test_summarizer.py 翻译为:│ └── 测试摘要生成器.py ├── ui/(界面文件夹) │ ├── dashboard/ │ │ ├── .streamlit/ │ │ │ └── config.toml(翻译为中文为):│ │ │ └── 配置文件(config.toml) │ │ ├── components/(组件目录) │ │ │ ├── shield_alert.py # UI组件:提示护盾警报 │ │ │ ├── summarizer.py # UI组件:摘要显示 │ │ │ └── uploader.py # UI组件:文件上传器 │ │ ├── services/(服务目录) \--- /// 全局信息:翻译的目标语言是中文。R1:“API”必须翻译为API/// 原文内容:│ │ │ └── api.py # UI服务:API客户端/// 译文内容:--- │ │ └── app.py │ ├── extension/ │ └── 扩展复制/ ├── .gitignore(文件忽略列表) ├── PromptShieldPOC.code-workspace(文件夹/工作区文件,可译为“PromptShieldPOC 工作区配置文件”或保持原名以体现技术术语) ├── README.MD(文件名,可翻译为“README.md”或保持原样,表示一个Markdown格式的说明文件) ├── exclude.txt(排除文件列表) ├── generate_project_structure.py(生成项目结构.py) ├── requirements.txt(需求文件)
