|
3 | 3 | using System; |
4 | 4 | using System.Collections.Generic; |
5 | 5 | using System.Text.Json; |
| 6 | +using Microsoft.Extensions.AI; |
6 | 7 | using Microsoft.SemanticKernel; |
7 | 8 | using Microsoft.SemanticKernel.ChatCompletion; |
8 | 9 | using Microsoft.SemanticKernel.Connectors.OpenAI; |
@@ -88,6 +89,37 @@ public void ItUsesExistingOpenAIExecutionSettings() |
88 | 89 | Assert.Equal(actualSettings.Modalities, executionSettings.Modalities); |
89 | 90 | } |
90 | 91 |
|
| 92 | + [Fact] |
| 93 | + public void ItPropagatesValuesToChatOptions() |
| 94 | + { |
| 95 | + // Arrange |
| 96 | + OpenAIPromptExecutionSettings actualSettings = new() |
| 97 | + { |
| 98 | + ChatSystemPrompt = "chat system prompt", |
| 99 | + FrequencyPenalty = 0.7, |
| 100 | + MaxTokens = 128, |
| 101 | + PresencePenalty = 0.7, |
| 102 | + Seed = 123456, |
| 103 | + StopSequences = ["foo", "bar"], |
| 104 | + Temperature = 0.7, |
| 105 | + TopP = 0.7, |
| 106 | + }; |
| 107 | + |
| 108 | + // Act |
| 109 | + ChatOptions? actualOptions = actualSettings.ToChatOptions(null); |
| 110 | + |
| 111 | + // Assert |
| 112 | + Assert.NotNull(actualOptions); |
| 113 | + Assert.Equal((float)actualSettings.Temperature, (float)actualOptions.Temperature!, 3); |
| 114 | + Assert.Equal((float)actualSettings.TopP, (float)actualOptions.TopP!, 3); |
| 115 | + Assert.Equal((float)actualSettings.FrequencyPenalty, (float)actualOptions.FrequencyPenalty!, 3); |
| 116 | + Assert.Equal((float)actualSettings.PresencePenalty, (float)actualOptions.PresencePenalty!); |
| 117 | + Assert.Equal(actualSettings.StopSequences, actualOptions.StopSequences); |
| 118 | + Assert.Equal(actualSettings.ChatSystemPrompt, actualOptions.Instructions); |
| 119 | + Assert.Equal(actualSettings.MaxTokens, actualOptions.MaxOutputTokens); |
| 120 | + Assert.Equal(actualSettings.Seed, actualOptions.Seed); |
| 121 | + } |
| 122 | + |
91 | 123 | [Fact] |
92 | 124 | public void ItCanUseOpenAIExecutionSettings() |
93 | 125 | { |
|
0 commit comments