3 types derived from ChatOptions
Microsoft.Extensions.AI.Abstractions.Tests (2)
Microsoft.Extensions.AI.Evaluation.Safety (1)
275 instantiations of ChatOptions
Aspire.Dashboard (1)
Microsoft.Extensions.AI (3)
Microsoft.Extensions.AI.Abstractions (1)
Microsoft.Extensions.AI.Abstractions.Tests (10)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (4)
Microsoft.Extensions.AI.Evaluation.Quality (12)
Microsoft.Extensions.AI.Integration.Tests (53)
ChatClientIntegrationTests.cs (23)
143var response = ChatClient.GetStreamingResponseAsync("Explain in 10 words how AI works", new()
199new() { ModelId = GetModel_MultiModal_DescribeImage() });
217new() { ModelId = GetModel_MultiModal_DescribeImage() });
244var response = await chatClient.GetResponseAsync(messages, new()
260var response = await chatClient.GetResponseAsync("What is the result of SecretComputation on 42 and 84?", new()
275var response = chatClient.GetStreamingResponseAsync("What is the result of SecretComputation on 42 and 84?", new()
312var response = await chatClient.GetResponseAsync(messages, new()
344var response = await chatClient.GetResponseAsync(messages, new()
376var response = await chatClient.GetResponseAsync(messages, new()
453ChatOptions options = new()
582var response = await chatClient.GetResponseAsync("How much older is Elsa than Anna? Return the age difference as a single number.", new()
614var response = await chatClient.GetResponseAsync("Are birds real?", new()
635var response = await chatClient.GetResponseAsync("What's the current secret number?", new()
897new ChatOptions { Tools = [AIFunctionFactory.Create(() => secretNumber, "GetSecretNumber")] });
923new ChatOptions { Tools = [AIFunctionFactory.Create(() => secretNumber, "GetSecretNumber")] }))
1075"Who is person with ID 123?", new ChatOptions
1256var response = await chatClient.GetResponseAsync(messages, new() { Tools = [getWeather] });
1472var firstResponse = await client.GetResponseAsync(history, new ChatOptions { Tools = allTools });
1481var secondResponse = await client.GetResponseAsync(history, new ChatOptions { Tools = allTools });
1538var response = await client.GetResponseAsync(history, new ChatOptions
1601var firstResponse = await client.GetResponseAsync(history, new ChatOptions
1614var secondResponse = await client.GetResponseAsync(history, new ChatOptions
1707var response = await client.GetResponseAsync(history, new ChatOptions { Tools = allTools });
Microsoft.Extensions.AI.OllamaSharp.Integration.Tests (2)
Microsoft.Extensions.AI.OpenAI.Tests (85)
OpenAIChatClientTests.cs (16)
154var response = await client.GetResponseAsync("hello", new()
234await foreach (var update in client.GetStreamingResponseAsync("hello", new()
331var response = await client.GetResponseAsync("hello", new()
385ChatOptions chatOptions = new()
462ChatOptions chatOptions = new()
545ChatOptions chatOptions = new()
619ChatOptions chatOptions = new()
727Assert.NotNull(await client.GetResponseAsync("hello", new()
826var response = await client.GetResponseAsync(messages, new()
1140var response = await client.GetResponseAsync("How old is Alice?", new()
1224var response = await client.GetResponseAsync("What day is it?", new()
1324await foreach (var update in client.GetStreamingResponseAsync("How old is Alice?", new()
1678var response = await client.GetResponseAsync("hello", new()
1725await foreach (var update in client.GetStreamingResponseAsync("hello", new()
1862Assert.NotNull(await client.GetResponseAsync("hello", new()
1905Assert.NotNull(await client.GetResponseAsync("hello", new()
OpenAIResponseClientTests.cs (42)
152var response = await client.GetResponseAsync("hello", new()
296await foreach (var update in client.GetStreamingResponseAsync("Calculate the sum of the first 5 positive integers.", new()
429await foreach (var update in client.GetStreamingResponseAsync("Solve this problem step by step.", new()
555await foreach (var update in client.GetStreamingResponseAsync("Solve this problem step by step.", new()
660await foreach (var update in client.GetStreamingResponseAsync("hello", new()
799ChatOptions chatOptions = new()
893ChatOptions chatOptions = new()
998var response = await client.GetResponseAsync("hello", new()
1144ChatOptions chatOptions = new()
1271var response = await client.GetResponseAsync("hello", new()
1395var chatOptions = new ChatOptions
1778ChatOptions chatOptions = new()
2186ChatOptions chatOptions = new()
2317var response = await client.GetResponseAsync("hello", new ChatOptions { Tools = [mcpTool] });
2381var response = await client.GetResponseAsync("hello", new()
2472var response = await client.GetResponseAsync([], new()
2522var options = new ChatOptions
2618await foreach (var update in client.GetStreamingResponseAsync("hello", new()
2704var chatOptions = new ChatOptions
2766var chatOptions = new ChatOptions
2889var response = await client.GetResponseAsync("Calculate the sum of numbers from 1 to 5", new()
3109var response = await client.GetStreamingResponseAsync("Calculate the sum of numbers from 1 to 10 using Python", new()
3197await foreach (var update in client.GetStreamingResponseAsync("Calculate the sum of numbers from 1 to 10 using Python", new()
3317var response = await client.GetResponseAsync("hello", new()
3375var response = await client.GetResponseAsync("hello", new()
3434var response = await client.GetResponseAsync("hello", new()
3495var response = await client.GetResponseAsync("hello", new()
3557var response = await client.GetResponseAsync("hello", new()
3620var response = await client.GetResponseAsync("hello", new()
3694await foreach (var update in client.GetStreamingResponseAsync("hello", new()
3775await foreach (var update in client.GetStreamingResponseAsync("hello", new()
3856await foreach (var update in client.GetStreamingResponseAsync("hello", new()
3934await foreach (var update in client.GetStreamingResponseAsync("hello", new()
3999var response = await client.GetResponseAsync("hello", new()
4060var response = await client.GetResponseAsync("hello", new()
4131await foreach (var update in client.GetStreamingResponseAsync("hello", new()
5184new ChatOptions { ContinuationToken = token });
5621var response = await client.GetResponseAsync("Generate an image of a cat", new ChatOptions
5722await foreach (var update in client.GetStreamingResponseAsync("Generate an image of a dog", new ChatOptions
5840await foreach (var update in client.GetStreamingResponseAsync("Generate an image of a sunset", new ChatOptions
5958Assert.NotNull(await client.GetResponseAsync("hello", new()
6007Assert.NotNull(await client.GetResponseAsync("hello", new()
Microsoft.Extensions.AI.Tests (100)
Microsoft.ML.GenAI.LLaMA (2)
Microsoft.ML.GenAI.Phi (2)
412 references to ChatOptions
Aspire.Azure.AI.OpenAI.Tests (1)
Aspire.Dashboard (1)
Aspire.OpenAI.Tests (1)
Microsoft.Extensions.AI (93)
ChatCompletion\AnonymousDelegatingChatClient.cs (11)
21private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? _getResponseFunc;
29private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? _getStreamingResponseFunc;
32private readonly Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task>? _sharedFunc;
51Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc)
77Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc,
78Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
89IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
98IEnumerable<ChatMessage> messages, ChatOptions? options, CancellationToken cancellationToken)
128IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ChatCompletion\CachingChatClient.cs (8)
47IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
57IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
75IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
85IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
147/// <param name="options">The <see cref="ChatOptions"/> to inform the key.</param>
150protected abstract string GetCacheKey(IEnumerable<ChatMessage> messages, ChatOptions? options, params ReadOnlySpan<object?> additionalValues);
207/// does not have a <see cref="ChatOptions.ConversationId"/> set.
209protected virtual bool EnableCaching(IEnumerable<ChatMessage> messages, ChatOptions? options)
ChatCompletion\ChatClientBuilder.cs (4)
108public ChatClientBuilder Use(Func<IEnumerable<ChatMessage>, ChatOptions?, Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task>, CancellationToken, Task> sharedFunc)
143Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, Task<ChatResponse>>? getResponseFunc,
144Func<IEnumerable<ChatMessage>, ChatOptions?, IChatClient, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? getStreamingResponseFunc)
ChatCompletion\FunctionInvokingChatClient.cs (16)
25/// A delegating chat client that invokes functions defined on <see cref="ChatOptions"/>.
32/// in <see cref="ChatOptions.Tools"/> (or in <see cref="AdditionalTools"/>), producing a <see cref="FunctionResultContent"/>
53/// requests not be made in a single response, by setting <see cref="ChatOptions.AllowMultipleToolCalls"/> to <see langword="false"/>.
57/// <see cref="AIFunction"/> instances employed as part of the supplied <see cref="ChatOptions"/> are also safe.
62/// ASP.NET web request should only be used as part of a single <see cref="ChatOptions"/> at a time, and only with
224/// <see cref="ChatOptions.Tools" /> unmodified. However, if the inner client requests the invocation of a tool
225/// that was not in <see cref="ChatOptions.Tools" />, this <see cref="AdditionalTools"/> collection will also be consulted
250/// <see cref="ChatOptions.Tools"/> or <see cref="AdditionalTools"/>) but that aren't <see cref="AIFunction"/>s aren't considered
268IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
416IEnumerable<ChatMessage> messages, ChatOptions? options = null, [EnumeratorCancellation] CancellationToken cancellationToken = default)
841private static void UpdateOptionsForNextIteration(ref ChatOptions? options, string? conversationId)
889private static void PrepareOptionsForLastIteration(ref ChatOptions? options)
925private bool ShouldTerminateLoopBasedOnHandleableFunctions(List<FunctionCallContent>? functionCalls, ChatOptions? options)
993List<ChatMessage> messages, ChatOptions? options,
1122List<ChatMessage> messages, ChatOptions? options,
1793ChatOptions? options,
Microsoft.Extensions.AI.Abstractions (32)
Microsoft.Extensions.AI.Abstractions.Tests (21)
TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.AI.Evaluation.Integration.Tests (4)
Microsoft.Extensions.AI.Evaluation.Quality (21)
Microsoft.Extensions.AI.Evaluation.Reporting (3)
Microsoft.Extensions.AI.Evaluation.Safety (3)
Microsoft.Extensions.AI.Integration.Tests (29)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
ToolReductionTests.cs (9)
29var options = new ChatOptions { Tools = tools };
63var options = new ChatOptions { Tools = tools };
125var options = new ChatOptions { Tools = [] };
430var options = new ChatOptions { Tools = tools };
454var options = new ChatOptions { Tools = tools };
646public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
647public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
649public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
652public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default) =>
Microsoft.Extensions.AI.OllamaSharp.Integration.Tests (1)
Microsoft.Extensions.AI.OpenAI (28)
OpenAIResponsesChatClient.cs (9)
91IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
259IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
570internal static ResponseTool? ToResponseTool(AITool tool, ChatOptions? options = null)
691internal static FunctionTool ToResponseTool(AIFunctionDeclaration aiFunction, ChatOptions? options = null)
722/// <summary>Converts a <see cref="ChatOptions"/> to a <see cref="CreateResponseOptions"/>.</summary>
723private CreateResponseOptions AsCreateResponseOptions(ChatOptions? options, out string? openAIConversationId)
832internal static ResponseTextFormat? ToOpenAIResponseTextFormat(ChatResponseFormat? format, ChatOptions? options = null) =>
885internal static IEnumerable<ResponseItem> ToOpenAIResponseItems(IEnumerable<ChatMessage> inputs, ChatOptions? options)
1488private static ResponsesClientContinuationToken? GetContinuationToken(IEnumerable<ChatMessage> messages, ChatOptions? options = null)
Microsoft.Extensions.AI.OpenAI.Tests (34)
Microsoft.Extensions.AI.Tests (126)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.Extensions.DataIngestion (1)
Microsoft.Extensions.DataIngestion.Tests (4)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\TestChatClient.cs (4)
20public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, Task<ChatResponse>>? GetResponseAsyncCallback { get; set; }
22public Func<IEnumerable<ChatMessage>, ChatOptions?, CancellationToken, IAsyncEnumerable<ChatResponseUpdate>>? GetStreamingResponseAsyncCallback { get; set; }
29public Task<ChatResponse> GetResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
32public IAsyncEnumerable<ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<ChatMessage> messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
Microsoft.ML.GenAI.Core (3)
Microsoft.ML.GenAI.LLaMA (3)
Microsoft.ML.GenAI.Phi (3)