A comprehensive .NET 8 API platform for managing AI model evaluations, datasets, metrics configurations, and results storage using Azure services.
The SXG Evaluation Platform provides a RESTful API that enables organizations to:
- Create and manage evaluation runs for AI models
- Store and retrieve evaluation datasets (Golden and Synthetic types)
- Configure metrics for different evaluation scenarios
- Save and analyze evaluation results with flexible JSON structures
- Monitor evaluation progress and maintain audit trails
- API Layer: .NET 8 Web API with Swagger documentation
- Storage Layer: Azure Table Storage for metadata, Azure Blob Storage for datasets and results
- Authentication: OAuth using Azure Active Directory
- Data Organization: Agent-based partitioning for multi-tenant scenarios
- ✅ Case Insensitive Status Updates: Flexible status handling (e.g., "completed", "COMPLETED", "Completed")
- ✅ Terminal State Protection: Immutable states once evaluation reaches "Completed" or "Failed"
- ✅ Folder-Based Result Storage: Organized storage structure
evalresults/{evalrunid}/ - ✅ RESTful Design: Clean API following REST principles
- ✅ Comprehensive Error Handling: Detailed error responses with actionable messages
- ✅ Multi-File Support: Store multiple output files per evaluation run
- .NET 8.0 SDK
- Azure Storage Account
- Azure Active Directory tenant
cd src/Sxg-Eval-Platform-Api
dotnet restore
dotnet runAccess the API at: http://localhost:5000
Swagger UI: http://localhost:5000/swagger
curl -X GET https://your-api-domain.com/api/v1/healthThe comprehensive API documentation includes:
- Quick Start Guide: Get up and running in minutes
- Authentication Setup: Azure AD integration details
- All Endpoints: Detailed documentation with examples
- Data Models: Complete schema definitions
- Error Handling: Common scenarios and solutions
- Best Practices: Performance, security, and integration guidance
- Integration Examples: Ready-to-use code samples
| Endpoint | Method | Description |
|---|---|---|
/api/v1/health |
GET | API health status |
/api/v1/eval/runs |
POST | Create evaluation run |
/api/v1/eval/runs/{id} |
PUT | Update evaluation status |
/api/v1/eval/runs/{id} |
GET | Get evaluation details |
/api/v1/eval/results |
POST | Save evaluation results |
/api/v1/eval/results/{id} |
GET | Get evaluation results |
/api/v1/datasets |
GET/POST | Manage datasets |
/api/v1/eval/defaultconfiguration |
GET | Get metrics configuration |
sxgevalplatform/
├── src/
│ └── Sxg-Eval-Platform-Api/ # Main API project
│ ├── Controllers/ # API controllers
│ ├── RequestHandlers/ # Business logic and request processing
│ ├── Models/ # Data models and DTOs
│ └── archive/ # Legacy code (Services, unused models)
├── Sxg.EvalPlatform.API.Storage/ # Storage layer
│ ├── Services/ # Azure storage services
│ ├── Entities/ # Table entities
│ └── TableEntities/ # Storage models
├── SXG.EvalPlatform.Common/ # Shared utilities
├── docs/ # Documentation
│ ├── API_Documentation_Consolidated.md
│ ├── Case_Insensitive_Status_Updates.md
│ └── API_Endpoint_Impact_Analysis.md
└── deploy/ # Deployment scripts
{
"AzureStorage": {
"AccountName": "your-storage-account"
}
}{
"Authentication": {
"TenantId": "your-tenant-id",
"ClientId": "your-client-id"
}
}- Partition Key:
AgentIdfor optimal performance - Row Key:
EvalRunIdfor unique identification - Benefits: Efficient agent-based queries and load distribution
- Container: Agent-specific containers (lowercase agent IDs)
- Structure:
evalresults/{evalrunid}/{filename} - Support: Multiple files per evaluation run
- Valid States:
Queued,Running,Completed,Failed - Case Insensitive: Accept any case variation, normalize to Pascal case
- Terminal Protection:
CompletedandFailedstates cannot be updated - State Transitions: Controlled workflow with validation
- Agent-based data isolation
- Immutable evaluation results once saved
- Comprehensive audit trails with timestamps
dotnet build src/Sxg-Eval-Platform-Api/SXG.EvalPlatform.API.csprojdotnet testSee deployment scripts in the deploy/ directory for Azure deployment guidance.
/api/v1/health- Basic health check- Structured logging throughout the application
- Azure Application Insights integration ready
- Evaluation run completion rates
- API response times
- Authentication success rates
- Storage operation performance
- Follow .NET coding standards
- Include comprehensive XML documentation
- Add unit tests for new functionality
- Update API documentation for endpoint changes
- Ensure backward compatibility
- API Documentation - Complete API reference
- Case Insensitive Updates - Status handling details
- Endpoint Impact Analysis - Change impact documentation
- Swagger UI: Available at
/swaggerendpoint - Health Check: Monitor API status at
/api/v1/health - Logs: Structured logging for debugging and monitoring
Microsoft Corporation. All rights reserved.