You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ChatRequestSettingsTests.cs 7.0 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using LLamaSharp.SemanticKernel;
  2. using Microsoft.SemanticKernel;
  3. namespace LLama.Unittest.SemanticKernel
  4. {
  5. public class ChatRequestSettingsTests
  6. {
  7. [Fact]
  8. public void ChatRequestSettings_FromRequestSettingsNull()
  9. {
  10. // Arrange
  11. // Act
  12. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(null, null);
  13. // Assert
  14. Assert.NotNull(requestSettings);
  15. Assert.Equal(0, requestSettings.FrequencyPenalty);
  16. Assert.Null(requestSettings.MaxTokens);
  17. Assert.Equal(0, requestSettings.PresencePenalty);
  18. Assert.Equal(1, requestSettings.ResultsPerPrompt);
  19. Assert.NotNull(requestSettings.StopSequences);
  20. Assert.Empty(requestSettings.StopSequences);
  21. Assert.Equal(0, requestSettings.Temperature);
  22. Assert.NotNull(requestSettings.TokenSelectionBiases);
  23. Assert.Empty(requestSettings.TokenSelectionBiases);
  24. Assert.Equal(0, requestSettings.TopP);
  25. }
  26. [Fact]
  27. public void ChatRequestSettings_FromRequestSettingsNullWithMaxTokens()
  28. {
  29. // Arrange
  30. // Act
  31. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(null, 200);
  32. // Assert
  33. Assert.NotNull(requestSettings);
  34. Assert.Equal(0, requestSettings.FrequencyPenalty);
  35. Assert.Equal(200, requestSettings.MaxTokens);
  36. Assert.Equal(0, requestSettings.PresencePenalty);
  37. Assert.Equal(1, requestSettings.ResultsPerPrompt);
  38. Assert.NotNull(requestSettings.StopSequences);
  39. Assert.Empty(requestSettings.StopSequences);
  40. Assert.Equal(0, requestSettings.Temperature);
  41. Assert.NotNull(requestSettings.TokenSelectionBiases);
  42. Assert.Empty(requestSettings.TokenSelectionBiases);
  43. Assert.Equal(0, requestSettings.TopP);
  44. }
  45. [Fact]
  46. public void ChatRequestSettings_FromExistingRequestSettings()
  47. {
  48. // Arrange
  49. var originalRequestSettings = new LLamaSharpPromptExecutionSettings()
  50. {
  51. FrequencyPenalty = 0.5,
  52. MaxTokens = 100,
  53. PresencePenalty = 0.5,
  54. ResultsPerPrompt = -1,
  55. StopSequences = new[] { "foo", "bar" },
  56. Temperature = 0.5,
  57. TokenSelectionBiases = new Dictionary<int, int>() { { 1, 2 }, { 3, 4 } },
  58. TopP = 0.5,
  59. };
  60. // Act
  61. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
  62. // Assert
  63. Assert.NotNull(requestSettings);
  64. Assert.Equal(originalRequestSettings, requestSettings);
  65. }
  66. [Fact]
  67. public void ChatRequestSettings_FromAIRequestSettings()
  68. {
  69. // Arrange
  70. var originalRequestSettings = new PromptExecutionSettings()
  71. {
  72. ModelId = "test",
  73. };
  74. // Act
  75. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
  76. // Assert
  77. Assert.NotNull(requestSettings);
  78. Assert.Equal(originalRequestSettings.ModelId, requestSettings.ModelId);
  79. }
  80. [Fact]
  81. public void ChatRequestSettings_FromAIRequestSettingsWithExtraPropertiesInSnakeCase()
  82. {
  83. // Arrange
  84. var originalRequestSettings = new PromptExecutionSettings()
  85. {
  86. ModelId = "test",
  87. ExtensionData = new Dictionary<string, object>
  88. {
  89. { "frequency_penalty", 0.5 },
  90. { "max_tokens", 250 },
  91. { "presence_penalty", 0.5 },
  92. { "results_per_prompt", -1 },
  93. { "stop_sequences", new [] { "foo", "bar" } },
  94. { "temperature", 0.5 },
  95. { "token_selection_biases", new Dictionary<int, int>() { { 1, 2 }, { 3, 4 } } },
  96. { "top_p", 0.5 },
  97. }
  98. };
  99. // Act
  100. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
  101. // Assert
  102. Assert.NotNull(requestSettings);
  103. Assert.Equal(0.5, requestSettings.FrequencyPenalty);
  104. Assert.Equal(250, requestSettings.MaxTokens);
  105. Assert.Equal(0.5, requestSettings.PresencePenalty);
  106. Assert.Equal(-1, requestSettings.ResultsPerPrompt);
  107. Assert.NotNull(requestSettings.StopSequences);
  108. Assert.Contains("foo", requestSettings.StopSequences);
  109. Assert.Contains("bar", requestSettings.StopSequences);
  110. Assert.Equal(0.5, requestSettings.Temperature);
  111. Assert.NotNull(requestSettings.TokenSelectionBiases);
  112. Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
  113. Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
  114. Assert.Equal(0.5, requestSettings.TopP);
  115. }
  116. [Fact]
  117. public void ChatRequestSettings_FromAIRequestSettingsWithExtraPropertiesInPascalCase()
  118. {
  119. // Arrange
  120. var originalRequestSettings = new PromptExecutionSettings()
  121. {
  122. ModelId = "test",
  123. ExtensionData = new Dictionary<string, object>
  124. {
  125. { "FrequencyPenalty", 0.5 },
  126. { "MaxTokens", 250 },
  127. { "PresencePenalty", 0.5 },
  128. { "ResultsPerPrompt", -1 },
  129. { "StopSequences", new [] { "foo", "bar" } },
  130. { "Temperature", 0.5 },
  131. { "TokenSelectionBiases", new Dictionary<int, int>() { { 1, 2 }, { 3, 4 } } },
  132. { "TopP", 0.5 },
  133. }
  134. };
  135. // Act
  136. var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
  137. // Assert
  138. Assert.NotNull(requestSettings);
  139. Assert.Equal(0.5, requestSettings.FrequencyPenalty);
  140. Assert.Equal(250, requestSettings.MaxTokens);
  141. Assert.Equal(0.5, requestSettings.PresencePenalty);
  142. Assert.Equal(-1, requestSettings.ResultsPerPrompt);
  143. Assert.NotNull(requestSettings.StopSequences);
  144. Assert.Contains("foo", requestSettings.StopSequences);
  145. Assert.Contains("bar", requestSettings.StopSequences);
  146. Assert.Equal(0.5, requestSettings.Temperature);
  147. Assert.NotNull(requestSettings.TokenSelectionBiases);
  148. Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
  149. Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
  150. Assert.Equal(0.5, requestSettings.TopP);
  151. }
  152. }
  153. }