Repository navigation
Description
Describe the bug
The latest library of SemanticKernel does not support Azure o1 series models.
Reason for error: Unsupported parameter: 'max_tokens' is not supported with this model Use 'max_completion_tokens' instead.
To Reproduce
static async Task Main(string[] args)
{
var kernel = Kernel.CreateBuilder()
.AddAzureOpenAIChatCompletion(
"deploy",
"endpoint",
"key"
).Build();
KernelArguments arguments = new(new AzureOpenAIPromptExecutionSettings() { MaxTokens = 4096});
Console.WriteLine(await kernel.InvokePromptAsync("What is the Semantic Kernel? Include citations to the relevant information where it is referenced in the response.", arguments));
}
Platform
- OS: windows
- IDE: Visual Studio
- Language: C#
- Source: NuGet package version 1.29.0
Additional context
Microsoft.SemanticKernel.HttpOperationException
HResult=0x80131500
Message=HTTP 400 (invalid_request_error: unsupported_parameter)
Parameter: max_tokens
Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.
Source=Microsoft.SemanticKernel.Connectors.OpenAI
スタック トレース:
場所 Microsoft.SemanticKernel.Connectors.OpenAI.ClientCore.d__731.MoveNext() 場所 Microsoft.SemanticKernel.Connectors.OpenAI.ClientCore.<GetChatMessageContentsAsync>d__16.MoveNext() 場所 Microsoft.SemanticKernel.KernelFunctionFromPrompt.<GetChatCompletionResultAsync>d__25.MoveNext() 場所 Microsoft.SemanticKernel.KernelFunctionFromPrompt.<InvokeCoreAsync>d__6.MoveNext() 場所 System.Threading.Tasks.ValueTask1.get_Result()
場所 Microsoft.SemanticKernel.KernelFunction.<>c__DisplayClass27_0.<b__0>d.MoveNext()
場所 Microsoft.SemanticKernel.Kernel.d__34.MoveNext()
場所 Microsoft.SemanticKernel.Kernel.d__33.MoveNext()
場所 Microsoft.SemanticKernel.KernelFunction.d__27.MoveNext()
場所 AOAI.Program.
この例外は、最初にこの呼び出し履歴
[外部コード] でスローされました
内部例外 1:
ClientResultException: HTTP 400 (invalid_request_error: unsupported_parameter)
Parameter: max_tokens
Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsBacklog: Planned
Activity
[-]Bug: SemanticKernel does not support Azure o1 series models[/-][+].Net: Bug: SemanticKernel does not support Azure o1 series models[/+]rogerbarreto commentedon Nov 19, 2024
This error is related to the
Azure SDKand can be found here:If that helps as part of the issue above, seems that to avoid this error on happening would be to not set the max tokens in the settings and you should be able to execute.
Another approach that you might want to use is intercept the httprequest call with a Custom
HttpHandlerand modify the content body of your request to sendmax_completion_tokensinstead ofmax_tokenswhen targeting theo1model.mathieumack commentedon Nov 23, 2024
Hi awata (@aeras3637) ,
Here is a sample of fix that can be done with a custom HttpHandler :
AzureOpenAIHttpClientHandler.cs
Note:
It's not just system messages but also temperature and tools that failed.
.Net: Update {Azure}OpenAI Connectors to latest 2.2.0-beta.1 (#10496)
.Net: Update {Azure}OpenAI Connectors to latest 2.2.0-beta.1 (microso…