using Microsoft.Extensions.AI; namespace Luna.Providers.Abstractions; public interface IProvider { public static virtual string Name { get; } = null!; public sealed IChatClient GetChatClient(string modelId) { var client = CreateChatClient(modelId); return new ChatClientBuilder(client) .UseFunctionInvocation() .Build(); } protected IChatClient CreateChatClient(string model); }