🔍 带有 Azure AI Foundry (.NET) 的企业 RAG

📋 学习目标

本笔记本演示了如何使用 .NET 中的 Microsoft Agent Framework 和 Azure AI Foundry 构建企业级检索增强生成 (RAG) 系统。您将学习创建可用于搜索文档并提供准确的上下文感知响应以及企业安全性和可扩展性的生产就绪代理。

您将构建的企业 RAG 功能:

  • 📚 文档智能:使用 Azure AI 服务进行高级文档处理
  • 🔍 语义搜索:具有企业功能的高性能矢量搜索
  • 🛡️ 安全集成:基于角色的访问和数据保护模式
  • 🏢 可扩展架构:具有监控功能的生产就绪 RAG 系统

🎯 企业 RAG 架构

核心企业组件

  • Azure AI Foundry:具有安全性和合规性的托管企业 AI 平台
  • 持久代理:具有对话历史记录和上下文管理的状态代理
  • 矢量存储管理:企业级文档索引和检索
  • 身份集成:Azure AD 身份验证和基于角色的访问控制

.NET 企业优势

  • 类型安全:RAG 操作和数据结构的编译时验证
  • 异步性能:非阻塞文档处理和搜索操作
  • 内存管理:大型文档集合的高效资源利用
  • 集成模式:具有依赖项注入的本机 Azure 服务集成

🏗️ 技术架构

企业 RAG 管道

1
2
3
Document Upload → Security Validation → Vector Processing → Index Creation
↓ ↓ ↓
User Query → Authentication → Semantic Search → Context Ranking → AI Response

核心 .NET 组件

  • Azure.AI.Agents.Persistent:具有状态持久性的企业代理管理
  • Azure.Identity:用于安全 Azure 服务访问的集成身份验证
  • Microsoft.Agents.AI.AzureAI:Azure 优化的代理框架实现
  • System.Linq.Async:高性能异步LINQ操作

🔧 企业特色和优势

安全与合规性

  • Azure AD 集成:企业身份管理和身份验证
  • 基于角色的访问:文档访问和操作的细粒度权限
  • 数据保护:敏感文档的静态和传输中加密
  • 审核日志:针对合规性要求的全面活动跟踪

性能和可扩展性

  • 连接池:高效的 Azure 服务连接管理
  • 异步处理:高吞吐量场景的非阻塞操作
  • 缓存策略:对经常访问的文档进行智能缓存
  • 负载均衡:大规模部署的分布式处理

管理与监控

  • 运行状况检查:RAG 系统组件的内置监控
  • 性能指标:搜索质量和响应时间的详细分析
  • 错误处理:具有重试策略的全面异常管理
  • 配置管理:具有验证的环境特定设置

⚙️ 先决条件和设置

开发环境:

  • .NET 9.0 SDK 或更高版本
  • Visual Studio 2022 或带有 C# 扩展的 VS Code
  • 具有 AI Foundry 访问权限的 Azure 订阅

所需的 NuGet 包:

1
2
3
4
5
<PackageReference Include="Microsoft.Extensions.AI" Version="9.9.0" />
<PackageReference Include="Azure.AI.Agents.Persistent" Version="1.2.0-beta.5" />
<PackageReference Include="Azure.Identity" Version="1.15.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.3" />
<PackageReference Include="DotNetEnv" Version="3.1.1" />

Azure 身份验证设置:

1
2
3
# Install Azure CLI and authenticate
az login
az account set --subscription "your-subscription-id"

环境配置:

  • Azure AI Foundry 配置(通过 Azure CLI 自动处理)
  • 确保您已通过正确的 Azure 订阅身份验证

📊 企业 RAG 模式

文档管理模式

  • 批量上传:高效处理大型文档集合
  • 增量更新:实时文档添加和修改
  • 版本控制:文档版本控制和更改跟踪
  • 元数据管理:丰富的文档属性和分类

搜索和检索模式

  • 混合搜索:结合语义和关键字搜索以获得最佳结果
  • 分面搜索:多维度过滤和分类
  • 相关性调整:针对特定领域需求的自定义评分算法
  • 结果排名:结合业务逻辑的高级排名

安全模式

  • 文档级安全性:每个文档的细粒度访问控制
  • 数据分类:自动敏感度标记和保护
  • 审计跟踪:所有 RAG 操作的综合记录
  • 隐私保护:PII 检测和编辑功能

🔒 企业安全功能

身份验证和授权

1
2
3
4
5
6
7
8
9
// Azure AD integrated authentication
var credential = new AzureCliCredential();
var agentsClient = new PersistentAgentsClient(endpoint, credential);

// Role-based access validation
if (!await ValidateUserPermissions(user, documentId))
{
throw new UnauthorizedAccessException("Insufficient permissions");
}

数据保护

  • 加密:文档和搜索索引的端到端加密
  • 访问控制:与 Azure AD 集成以获取用户和组权限
  • 数据驻留:地理数据位置控制以确保合规性
  • 备份和恢复:自动备份和灾难恢复功能

📈 性能优化

异步处理模式

1
2
3
4
5
// Efficient async document processing
await foreach (var document in documentStream.AsAsyncEnumerable())
{
await ProcessDocumentAsync(document, cancellationToken);
}

内存管理

  • 流处理:处理大型文档而不会出现内存问题
  • 资源池:昂贵资源的高效重用
  • 垃圾收集:优化的内存分配模式
  • 连接管理:正确的 Azure 服务连接生命周期

缓存策略

  • 查询缓存:缓存经常执行的搜索
  • 文档缓存:热文档的内存缓存
  • 索引缓存:优化的向量索引缓存
  • 结果缓存:生成响应的智能缓存

📊 企业用例

知识管理

  • 企业维基:跨公司知识库的智能搜索
  • 政策和程序:自动合规性和程序指导
  • 培训材料:智能学习和发展援助
  • 研究数据库:学术和研究论文分析系统

客户支持

  • 支持知识库:自动客户服务响应
  • 产品文档:智能产品信息检索
  • 故障排除指南:上下文问题解决帮助
  • 常见问题解答系统:从文档集合动态生成常见问题解答

监管合规性

  • 法律文件分析:合同和法律文件情报
  • 合规性监控:自动监管合规性检查
  • 风险评估:基于文档的风险分析和报告
  • 审计支持:用于审计的智能文档发现

🚀 生产部署

监控和可观察性

  • 应用程序洞察:详细的遥测和性能监控
  • 自定义指标:特定于业务的 KPI 跟踪和警报
  • 分布式跟踪:跨服务的端到端请求跟踪
  • 运行状况仪表板:实时系统运行状况和性能可视化

可扩展性和可靠性

  • 自动缩放:根据负载和性能指标自动缩放
  • 高可用性:具有故障转移功能的多区域部署
  • 负载测试:企业负载条件下的性能验证
  • 灾难恢复:自动备份和恢复过程

准备好构建可以大规模处理敏感文档的企业级 RAG 系统了吗?让我们一起为企业构建智能知识体系吧! 🏢📖✨

代码实现

本课程的完整工作代码示例可在 05-dotnet-agent-framework.cs 中找到。

运行该示例:

1
2
3
4
5
# Make the script executable (Linux/macOS)
chmod +x 05-dotnet-agent-framework.cs

# Run the .NET Single File App
./05-dotnet-agent-framework.cs

或者直接使用 dotnet run

1
dotnet run 05-dotnet-agent-framework.cs

代码演示了:

  1. 包安装:安装 Azure AI 代理所需的 NuGet 包
  2. 环境配置:加载Azure AI Foundry端点和模型设置
  3. 文档上传:上传文档进行RAG处理
  4. 向量存储创建:创建用于语义搜索的向量存储
  5. 代理配置:设置具有文件搜索功能的AI代理
  6. 查询执行:对上传的文档运行查询