diff --git a/src/Infrastructure/BotSharp.Abstraction/MLTasks/Utilities/LlmUtility.cs b/src/Infrastructure/BotSharp.Abstraction/MLTasks/Utilities/LlmUtility.cs index 6c6d7b33f..f11ff6d56 100644 --- a/src/Infrastructure/BotSharp.Abstraction/MLTasks/Utilities/LlmUtility.cs +++ b/src/Infrastructure/BotSharp.Abstraction/MLTasks/Utilities/LlmUtility.cs @@ -14,6 +14,10 @@ public static class LlmUtility { res = VerifyModelParameter(curVal, value.Default, value.Options); } + else + { + res = curVal; + } return res; } diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs index 256c56f67..efa12572b 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs @@ -588,16 +588,19 @@ private ChatCompletionOptions InitChatCompletionOption(Agent agent) /// Parse reasoning setting: returns (temperature, reasoning effort level) /// /// + /// /// - private (float?, ChatReasoningEffortLevel?) ParseReasoning( - ReasoningSetting? settings, - Agent agent) + private (float?, ChatReasoningEffortLevel?) ParseReasoning(ReasoningSetting? settings, Agent agent) { float? temperature = null; ChatReasoningEffortLevel? reasoningEffortLevel = null; + var level = _state.GetState("reasoning_effort_level") + .IfNullOrEmptyAs(agent?.LlmConfig?.ReasoningEffortLevel); + if (settings == null) { + reasoningEffortLevel = ParseReasoningEffortLevel(level); return (temperature, reasoningEffortLevel); } @@ -606,22 +609,18 @@ private ChatCompletionOptions InitChatCompletionOption(Agent agent) temperature = settings.Temperature; } - - var defaultLevel = settings?.EffortLevel; - - if (settings?.Parameters != null - && settings.Parameters.TryGetValue("EffortLevel", out var settingValue) - && !string.IsNullOrEmpty(settingValue?.Default)) + if (string.IsNullOrEmpty(level)) { - defaultLevel = settingValue.Default; + level = settings?.EffortLevel; + if (settings?.Parameters != null + && settings.Parameters.TryGetValue("EffortLevel", out var settingValue) + && !string.IsNullOrEmpty(settingValue?.Default)) + { + level = settingValue.Default; + } } - var level = _state.GetState("reasoning_effort_level") - .IfNullOrEmptyAs(agent?.LlmConfig?.ReasoningEffortLevel) - .IfNullOrEmptyAs(defaultLevel); - reasoningEffortLevel = ParseReasoningEffortLevel(level); - return (temperature, reasoningEffortLevel); } diff --git a/src/WebStarter/appsettings.json b/src/WebStarter/appsettings.json index e0410d530..24aeb5e2e 100644 --- a/src/WebStarter/appsettings.json +++ b/src/WebStarter/appsettings.json @@ -511,7 +511,7 @@ "Id": "gpt-5", "Name": "gpt-5.1", "Version": "gpt-5.1", - "ApiKey": "o", + "ApiKey": "", "Type": "chat", "MultiModal": true, "Capabilities": [