Files
autogen/dotnet/src/AutoGen.Core/Extension/StreamingMiddlewareExtension.cs
Xiaoyun Zhang e878be55a3 [.Net] refactor over streaming version api (#2461)
* update

* update

* fix comment
2024-05-05 14:51:00 +00:00

38 lines
1.6 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// StreamingMiddlewareExtension.cs
namespace AutoGen.Core;
public static class StreamingMiddlewareExtension
{
/// <summary>
/// Register an <see cref="IStreamingMiddleware"/> to an existing <see cref="IStreamingAgent"/> and return a new agent with the registered middleware.
/// For registering an <see cref="IMiddleware"/>, please refer to <see cref="MiddlewareExtension.RegisterMiddleware{TAgent}(MiddlewareAgent{TAgent}, IMiddleware)"/>
/// </summary>
public static MiddlewareStreamingAgent<TStreamingAgent> RegisterStreamingMiddleware<TStreamingAgent>(
this TStreamingAgent agent,
IStreamingMiddleware middleware)
where TStreamingAgent : IStreamingAgent
{
var middlewareAgent = new MiddlewareStreamingAgent<TStreamingAgent>(agent);
middlewareAgent.UseStreaming(middleware);
return middlewareAgent;
}
/// <summary>
/// Register an <see cref="IStreamingMiddleware"/> to an existing <see cref="IStreamingAgent"/> and return a new agent with the registered middleware.
/// For registering an <see cref="IMiddleware"/>, please refer to <see cref="MiddlewareExtension.RegisterMiddleware{TAgent}(MiddlewareAgent{TAgent}, IMiddleware)"/>
/// </summary>
public static MiddlewareStreamingAgent<TAgent> RegisterStreamingMiddleware<TAgent>(
this MiddlewareStreamingAgent<TAgent> agent,
IStreamingMiddleware middleware)
where TAgent : IStreamingAgent
{
var copyAgent = new MiddlewareStreamingAgent<TAgent>(agent);
copyAgent.UseStreaming(middleware);
return copyAgent;
}
}