diff --git a/src/AI.CodeAnalysis/ChatClientExtensions.cs b/src/AI.CodeAnalysis/ChatClientExtensions.cs index cae33c1..1f84b80 100644 --- a/src/AI.CodeAnalysis/ChatClientExtensions.cs +++ b/src/AI.CodeAnalysis/ChatClientExtensions.cs @@ -7,6 +7,9 @@ /// static class ChatClientExtensions { +#if NET9_0_OR_GREATER + [System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute(100)] +#endif /// Gets an for use with this . public static IChatClient AsIChatClient(this ChatClient client) => client as IChatClient ?? OpenAIClientExtensions.AsIChatClient(client); diff --git a/src/AI.Tests/OpenAITests.cs b/src/AI.Tests/OpenAITests.cs index d2c9edd..8d33dc4 100644 --- a/src/AI.Tests/OpenAITests.cs +++ b/src/AI.Tests/OpenAITests.cs @@ -1,4 +1,5 @@ -using System.Text.Json.Nodes; +using System.ClientModel; +using System.Text.Json.Nodes; using Devlooped.Extensions.AI.OpenAI; using Microsoft.Extensions.AI; using OpenAI; @@ -9,6 +10,18 @@ namespace Devlooped.Extensions.AI; public class OpenAITests(ITestOutputHelper output) { + [SecretsFact("OPENAI_API_KEY")] + public void CanGetAsIChatClient() + { + var inner = new OpenAIClient(new ApiKeyCredential(Configuration["OPENAI_API_KEY"]!), + new OpenAIClientOptions + { + //Endpoint = new Uri("https://api.x.ai/v1"), + }).GetChatClient("grok-4").AsIChatClient(); + + Assert.NotNull(inner); + } + [SecretsFact("OPENAI_API_KEY")] public async Task OpenAISwitchesModel() {