217 lines
9.1 KiB
Markdown
217 lines
9.1 KiB
Markdown
# 🔍 Enterprise RAG with Microsoft Foundry (.NET)
|
|
|
|
## 📋 Learning Objectives
|
|
|
|
This notebook demonstrates how to build enterprise-grade Retrieval-Augmented Generation (RAG) systems using the Microsoft Agent Framework in .NET with Microsoft Foundry. You'll learn to create production-ready agents that can search through documents and provide accurate, context-aware responses with enterprise security and scalability.
|
|
|
|
**Enterprise RAG Capabilities You'll Build:**
|
|
- 📚 **Document Intelligence**: Advanced document processing with Azure AI services
|
|
- 🔍 **Semantic Search**: High-performance vector search with enterprise features
|
|
- 🛡️ **Security Integration**: Role-based access and data protection patterns
|
|
- 🏢 **Scalable Architecture**: Production-ready RAG systems with monitoring
|
|
|
|
## 🎯 Enterprise RAG Architecture
|
|
|
|
### Core Enterprise Components
|
|
- **Microsoft Foundry**: Managed enterprise AI platform with security and compliance
|
|
- **Persistent Agents**: Stateful agents with conversation history and context management
|
|
- **Vector Store Management**: Enterprise-grade document indexing and retrieval
|
|
- **Identity Integration**: Azure AD authentication and role-based access control
|
|
|
|
### .NET Enterprise Benefits
|
|
- **Type Safety**: Compile-time validation for RAG operations and data structures
|
|
- **Async Performance**: Non-blocking document processing and search operations
|
|
- **Memory Management**: Efficient resource utilization for large document collections
|
|
- **Integration Patterns**: Native Azure service integration with dependency injection
|
|
|
|
## 🏗️ Technical Architecture
|
|
|
|
### Enterprise RAG Pipeline
|
|
```
|
|
Document Upload → Security Validation → Vector Processing → Index Creation
|
|
↓ ↓ ↓
|
|
User Query → Authentication → Semantic Search → Context Ranking → AI Response
|
|
```
|
|
|
|
### Core .NET Components
|
|
- **Azure.AI.Agents.Persistent**: Enterprise agent management with state persistence
|
|
- **Azure.Identity**: Integrated authentication for secure Azure service access
|
|
- **Microsoft.Agents.AI.AzureAI**: Azure-optimized agent framework implementation
|
|
- **System.Linq.Async**: High-performance asynchronous LINQ operations
|
|
|
|
## 🔧 Enterprise Features & Benefits
|
|
|
|
### Security & Compliance
|
|
- **Azure AD Integration**: Enterprise identity management and authentication
|
|
- **Role-Based Access**: Fine-grained permissions for document access and operations
|
|
- **Data Protection**: Encryption at rest and in transit for sensitive documents
|
|
- **Audit Logging**: Comprehensive activity tracking for compliance requirements
|
|
|
|
### Performance & Scalability
|
|
- **Connection Pooling**: Efficient Azure service connection management
|
|
- **Async Processing**: Non-blocking operations for high-throughput scenarios
|
|
- **Caching Strategies**: Intelligent caching for frequently accessed documents
|
|
- **Load Balancing**: Distributed processing for large-scale deployments
|
|
|
|
### Management & Monitoring
|
|
- **Health Checks**: Built-in monitoring for RAG system components
|
|
- **Performance Metrics**: Detailed analytics on search quality and response times
|
|
- **Error Handling**: Comprehensive exception management with retry policies
|
|
- **Configuration Management**: Environment-specific settings with validation
|
|
|
|
## ⚙️ Prerequisites & Setup
|
|
|
|
**Development Environment:**
|
|
- .NET 9.0 SDK or higher
|
|
- Visual Studio 2022 or VS Code with C# extension
|
|
- Azure subscription with Microsoft Foundry access
|
|
|
|
**Required NuGet Packages:**
|
|
```xml
|
|
<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 Authentication Setup:**
|
|
```bash
|
|
# Install Azure CLI and authenticate
|
|
az login
|
|
az account set --subscription "your-subscription-id"
|
|
```
|
|
|
|
**Environment Configuration:**
|
|
* Microsoft Foundry configuration (automatically handled via Azure CLI)
|
|
* Ensure you're authenticated to the correct Azure subscription
|
|
|
|
## 📊 Enterprise RAG Patterns
|
|
|
|
### Document Management Patterns
|
|
- **Bulk Upload**: Efficient processing of large document collections
|
|
- **Incremental Updates**: Real-time document addition and modification
|
|
- **Version Control**: Document versioning and change tracking
|
|
- **Metadata Management**: Rich document attributes and taxonomy
|
|
|
|
### Search & Retrieval Patterns
|
|
- **Hybrid Search**: Combining semantic and keyword search for optimal results
|
|
- **Faceted Search**: Multi-dimensional filtering and categorization
|
|
- **Relevance Tuning**: Custom scoring algorithms for domain-specific needs
|
|
- **Result Ranking**: Advanced ranking with business logic integration
|
|
|
|
### Security Patterns
|
|
- **Document-Level Security**: Fine-grained access control per document
|
|
- **Data Classification**: Automatic sensitivity labeling and protection
|
|
- **Audit Trails**: Comprehensive logging of all RAG operations
|
|
- **Privacy Protection**: PII detection and redaction capabilities
|
|
|
|
## 🔒 Enterprise Security Features
|
|
|
|
### Authentication & Authorization
|
|
```csharp
|
|
// 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");
|
|
}
|
|
```
|
|
|
|
### Data Protection
|
|
- **Encryption**: End-to-end encryption for documents and search indices
|
|
- **Access Controls**: Integration with Azure AD for user and group permissions
|
|
- **Data Residency**: Geographic data location controls for compliance
|
|
- **Backup & Recovery**: Automated backup and disaster recovery capabilities
|
|
|
|
## 📈 Performance Optimization
|
|
|
|
### Async Processing Patterns
|
|
```csharp
|
|
// Efficient async document processing
|
|
await foreach (var document in documentStream.AsAsyncEnumerable())
|
|
{
|
|
await ProcessDocumentAsync(document, cancellationToken);
|
|
}
|
|
```
|
|
|
|
### Memory Management
|
|
- **Streaming Processing**: Handle large documents without memory issues
|
|
- **Resource Pooling**: Efficient reuse of expensive resources
|
|
- **Garbage Collection**: Optimized memory allocation patterns
|
|
- **Connection Management**: Proper Azure service connection lifecycle
|
|
|
|
### Caching Strategies
|
|
- **Query Caching**: Cache frequently executed searches
|
|
- **Document Caching**: In-memory caching for hot documents
|
|
- **Index Caching**: Optimized vector index caching
|
|
- **Result Caching**: Intelligent caching of generated responses
|
|
|
|
## 📊 Enterprise Use Cases
|
|
|
|
### Knowledge Management
|
|
- **Corporate Wiki**: Intelligent search across company knowledge bases
|
|
- **Policy & Procedures**: Automated compliance and procedure guidance
|
|
- **Training Materials**: Intelligent learning and development assistance
|
|
- **Research Databases**: Academic and research paper analysis systems
|
|
|
|
### Customer Support
|
|
- **Support Knowledge Base**: Automated customer service responses
|
|
- **Product Documentation**: Intelligent product information retrieval
|
|
- **Troubleshooting Guides**: Contextual problem-solving assistance
|
|
- **FAQ Systems**: Dynamic FAQ generation from document collections
|
|
|
|
### Regulatory Compliance
|
|
- **Legal Document Analysis**: Contract and legal document intelligence
|
|
- **Compliance Monitoring**: Automated regulatory compliance checking
|
|
- **Risk Assessment**: Document-based risk analysis and reporting
|
|
- **Audit Support**: Intelligent document discovery for audits
|
|
|
|
## 🚀 Production Deployment
|
|
|
|
### Monitoring & Observability
|
|
- **Application Insights**: Detailed telemetry and performance monitoring
|
|
- **Custom Metrics**: Business-specific KPI tracking and alerting
|
|
- **Distributed Tracing**: End-to-end request tracking across services
|
|
- **Health Dashboards**: Real-time system health and performance visualization
|
|
|
|
### Scalability & Reliability
|
|
- **Auto-Scaling**: Automatic scaling based on load and performance metrics
|
|
- **High Availability**: Multi-region deployment with failover capabilities
|
|
- **Load Testing**: Performance validation under enterprise load conditions
|
|
- **Disaster Recovery**: Automated backup and recovery procedures
|
|
|
|
Ready to build enterprise-grade RAG systems that can handle sensitive documents at scale? Let's architect intelligent knowledge systems for the enterprise! 🏢📖✨
|
|
|
|
## Code Implementation
|
|
|
|
The complete working code sample for this lesson is available in `05-dotnet-agent-framework.cs`.
|
|
|
|
To run the example:
|
|
|
|
```bash
|
|
# Make the script executable (Linux/macOS)
|
|
chmod +x 05-dotnet-agent-framework.cs
|
|
|
|
# Run the .NET Single File App
|
|
./05-dotnet-agent-framework.cs
|
|
```
|
|
|
|
Or use `dotnet run` directly:
|
|
|
|
```bash
|
|
dotnet run 05-dotnet-agent-framework.cs
|
|
```
|
|
|
|
The code demonstrates:
|
|
|
|
1. **Package Installation**: Installing required NuGet packages for Azure AI Agents
|
|
2. **Environment Configuration**: Loading Microsoft Foundry endpoint and model settings
|
|
3. **Document Upload**: Uploading a document for RAG processing
|
|
4. **Vector Store Creation**: Creating a vector store for semantic search
|
|
5. **Agent Configuration**: Setting up an AI agent with file search capabilities
|
|
6. **Query Execution**: Running queries against the uploaded document
|