mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
.NET: Implement Purview middleware in dotnet (#1949)
* Move Purview integration logic into middleware * Improve error handling and user id management * Rename purview package * Handle 402s more explicitly; add Middleware generation methods; don't ignore exceptions * Use DI container; pass scope id to PC * Add protection scope caching * Wrap more exceptions in PurviewClient * Remove block check dedup; add tests * Refactor PurviewWrapper intialization; Add unit tests * Use different .Use method and add IDisposable stub * Add background job processing for Purview * Misc comment cleanup * Apply copilot comments * Fix formatting * Formatting other files to fix pipeline * Small updates to settings and exceptions * Add README * Move Purview sample * Address review comments and update XML comments * Newline after namespace * Move public Purview classes to single namespace; Clean up csproj and slnx * Commit the renames * Remove unused openAI dependency --------- Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
This commit is contained in:
co-authored by
Dmytro Struk
parent
a75590eb9b
commit
b19860b8a8
@@ -0,0 +1,41 @@
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Microsoft.Agents.AI.Purview.Models.Common;
|
||||
using Microsoft.Agents.AI.Purview.Models.Requests;
|
||||
using Microsoft.Agents.AI.Purview.Models.Responses;
|
||||
|
||||
namespace Microsoft.Agents.AI.Purview.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Source generation context for Purview serialization.
|
||||
/// </summary>
|
||||
[JsonSerializable(typeof(ProtectionScopesRequest))]
|
||||
[JsonSerializable(typeof(ProtectionScopesResponse))]
|
||||
[JsonSerializable(typeof(ProcessContentRequest))]
|
||||
[JsonSerializable(typeof(ProcessContentResponse))]
|
||||
[JsonSerializable(typeof(ContentActivitiesRequest))]
|
||||
[JsonSerializable(typeof(ContentActivitiesResponse))]
|
||||
[JsonSerializable(typeof(ProtectionScopesCacheKey))]
|
||||
internal sealed partial class SourceGenerationContext : JsonSerializerContext;
|
||||
|
||||
/// <summary>
|
||||
/// Utility class for Purview serialization settings.
|
||||
/// </summary>
|
||||
internal static class PurviewSerializationUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Serialization settings for Purview.
|
||||
/// </summary>
|
||||
public static JsonSerializerOptions SerializationSettings { get; } = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
PropertyNameCaseInsensitive = true,
|
||||
WriteIndented = false,
|
||||
AllowTrailingCommas = false,
|
||||
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
TypeInfoResolver = SourceGenerationContext.Default,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user