🤖 feat: GPT-5.1 (#10491)

This commit is contained in:
Danny Avila 2025-11-14 12:28:20 -05:00 committed by GitHub
parent e71c48ec3d
commit 6522789f5b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 50 additions and 14 deletions

View file

@ -345,7 +345,7 @@ ${memory ?? 'No existing memories'}`;
};
// Handle GPT-5+ models
if ('model' in finalLLMConfig && /\bgpt-[5-9]\b/i.test(finalLLMConfig.model ?? '')) {
if ('model' in finalLLMConfig && /\bgpt-[5-9](?:\.\d+)?\b/i.test(finalLLMConfig.model ?? '')) {
// Remove temperature for GPT-5+ models
delete finalLLMConfig.temperature;

View file

@ -940,6 +940,16 @@ describe('getOpenAIConfig', () => {
{ reasoning_effort: null, reasoning_summary: null, shouldHaveReasoning: false },
{ reasoning_effort: undefined, reasoning_summary: undefined, shouldHaveReasoning: false },
{ reasoning_effort: '', reasoning_summary: '', shouldHaveReasoning: false },
{
reasoning_effort: ReasoningEffort.unset,
reasoning_summary: '',
shouldHaveReasoning: false,
},
{
reasoning_effort: ReasoningEffort.none,
reasoning_summary: null,
shouldHaveReasoning: true,
},
{
reasoning_effort: null,
reasoning_summary: ReasoningSummary.concise,

View file

@ -300,7 +300,11 @@ export function getOpenAILLMConfig({
delete modelKwargs.verbosity;
}
if (llmConfig.model && /\bgpt-[5-9]\b/i.test(llmConfig.model) && llmConfig.maxTokens != null) {
if (
llmConfig.model &&
/\bgpt-[5-9](?:\.\d+)?\b/i.test(llmConfig.model) &&
llmConfig.maxTokens != null
) {
const paramName =
llmConfig.useResponsesApi === true ? 'max_output_tokens' : 'max_completion_tokens';
modelKwargs[paramName] = llmConfig.maxTokens;

View file

@ -927,7 +927,7 @@ export enum KnownEndpoints {
export enum FetchTokenConfig {
openrouter = KnownEndpoints.openrouter,
helicone = KnownEndpoints.helicone
helicone = KnownEndpoints.helicone,
}
export const defaultEndpoints: EModelEndpoint[] = [
@ -964,6 +964,10 @@ export const alternateName = {
};
const sharedOpenAIModels = [
'gpt-5.1',
'gpt-5.1-chat-latest',
'gpt-5.1-codex',
'gpt-5.1-codex-mini',
'gpt-5',
'gpt-5-mini',
'gpt-5-nano',

View file

@ -230,9 +230,10 @@ const openAIParams: Record<string, SettingDefinition> = {
description: 'com_endpoint_openai_reasoning_effort',
descriptionCode: true,
type: 'enum',
default: ReasoningEffort.none,
default: ReasoningEffort.unset,
component: 'slider',
options: [
ReasoningEffort.unset,
ReasoningEffort.none,
ReasoningEffort.minimal,
ReasoningEffort.low,
@ -240,6 +241,7 @@ const openAIParams: Record<string, SettingDefinition> = {
ReasoningEffort.high,
],
enumMappings: {
[ReasoningEffort.unset]: 'com_ui_auto',
[ReasoningEffort.none]: 'com_ui_none',
[ReasoningEffort.minimal]: 'com_ui_minimal',
[ReasoningEffort.low]: 'com_ui_low',
@ -291,7 +293,7 @@ const openAIParams: Record<string, SettingDefinition> = {
ReasoningSummary.detailed,
],
enumMappings: {
[ReasoningSummary.none]: 'com_ui_none',
[ReasoningSummary.none]: 'com_ui_unset',
[ReasoningSummary.auto]: 'com_ui_auto',
[ReasoningSummary.concise]: 'com_ui_concise',
[ReasoningSummary.detailed]: 'com_ui_detailed',

View file

@ -166,7 +166,8 @@ export enum ImageDetail {
}
export enum ReasoningEffort {
none = '',
unset = '',
none = 'none',
minimal = 'minimal',
low = 'low',
medium = 'medium',