Skip to content

Commit f677943

Browse files
authored
fix: look for gpt model type in any part of id (#76)
1 parent 34c2960 commit f677943

File tree

2 files changed

+28
-20
lines changed

2 files changed

+28
-20
lines changed

providers/openai/language_model.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -557,21 +557,26 @@ func (o languageModel) Stream(ctx context.Context, call fantasy.Call) (fantasy.S
557557
}
558558

559559
func isReasoningModel(modelID string) bool {
560-
return strings.HasPrefix(modelID, "o") || strings.HasPrefix(modelID, "gpt-5") || strings.HasPrefix(modelID, "gpt-5-chat")
560+
return strings.HasPrefix(modelID, "o1") || strings.Contains(modelID, "-o1") ||
561+
strings.HasPrefix(modelID, "o3") || strings.Contains(modelID, "-o3") ||
562+
strings.HasPrefix(modelID, "o4") || strings.Contains(modelID, "-o4") ||
563+
strings.HasPrefix(modelID, "oss") || strings.Contains(modelID, "-oss") ||
564+
strings.Contains(modelID, "gpt-5") || strings.Contains(modelID, "gpt-5-chat")
561565
}
562566

563567
func isSearchPreviewModel(modelID string) bool {
564568
return strings.Contains(modelID, "search-preview")
565569
}
566570

567571
func supportsFlexProcessing(modelID string) bool {
568-
return strings.HasPrefix(modelID, "o3") || strings.HasPrefix(modelID, "o4-mini") || strings.HasPrefix(modelID, "gpt-5")
572+
return strings.HasPrefix(modelID, "o3") || strings.Contains(modelID, "-o3") ||
573+
strings.Contains(modelID, "o4-mini") || strings.Contains(modelID, "gpt-5")
569574
}
570575

571576
func supportsPriorityProcessing(modelID string) bool {
572-
return strings.HasPrefix(modelID, "gpt-4") || strings.HasPrefix(modelID, "gpt-5") ||
573-
strings.HasPrefix(modelID, "gpt-5-mini") || strings.HasPrefix(modelID, "o3") ||
574-
strings.HasPrefix(modelID, "o4-mini")
577+
return strings.Contains(modelID, "gpt-4") || strings.Contains(modelID, "gpt-5") ||
578+
strings.Contains(modelID, "gpt-5-mini") || strings.HasPrefix(modelID, "o3") ||
579+
strings.Contains(modelID, "-o3") || strings.Contains(modelID, "o4-mini")
575580
}
576581

577582
func toOpenAiTools(tools []fantasy.Tool, toolChoice *fantasy.ToolChoice) (openAiTools []openai.ChatCompletionToolUnionParam, openAiToolChoice *openai.ChatCompletionToolChoiceOptionUnionParam, warnings []fantasy.CallWarning) {

providers/openai/responses_language_model.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,17 @@ type responsesModelConfig struct {
5656

5757
func getResponsesModelConfig(modelID string) responsesModelConfig {
5858
supportsFlexProcessing := strings.HasPrefix(modelID, "o3") ||
59-
strings.HasPrefix(modelID, "o4-mini") ||
60-
(strings.HasPrefix(modelID, "gpt-5") && !strings.HasPrefix(modelID, "gpt-5-chat"))
61-
62-
supportsPriorityProcessing := strings.HasPrefix(modelID, "gpt-4") ||
63-
strings.HasPrefix(modelID, "gpt-5-mini") ||
64-
(strings.HasPrefix(modelID, "gpt-5") &&
65-
!strings.HasPrefix(modelID, "gpt-5-nano") &&
66-
!strings.HasPrefix(modelID, "gpt-5-chat")) ||
59+
strings.Contains(modelID, "-o3") || strings.Contains(modelID, "o4-mini") ||
60+
(strings.Contains(modelID, "gpt-5") && !strings.Contains(modelID, "gpt-5-chat"))
61+
62+
supportsPriorityProcessing := strings.Contains(modelID, "gpt-4") ||
63+
strings.Contains(modelID, "gpt-5-mini") ||
64+
(strings.Contains(modelID, "gpt-5") &&
65+
!strings.Contains(modelID, "gpt-5-nano") &&
66+
!strings.Contains(modelID, "gpt-5-chat")) ||
6767
strings.HasPrefix(modelID, "o3") ||
68-
strings.HasPrefix(modelID, "o4-mini")
68+
strings.Contains(modelID, "-o3") ||
69+
strings.Contains(modelID, "o4-mini")
6970

7071
defaults := responsesModelConfig{
7172
requiredAutoTruncation: false,
@@ -74,7 +75,7 @@ func getResponsesModelConfig(modelID string) responsesModelConfig {
7475
supportsPriorityProcessing: supportsPriorityProcessing,
7576
}
7677

77-
if strings.HasPrefix(modelID, "gpt-5-chat") {
78+
if strings.Contains(modelID, "gpt-5-chat") {
7879
return responsesModelConfig{
7980
isReasoningModel: false,
8081
systemMessageMode: defaults.systemMessageMode,
@@ -84,11 +85,13 @@ func getResponsesModelConfig(modelID string) responsesModelConfig {
8485
}
8586
}
8687

87-
if strings.HasPrefix(modelID, "o") ||
88-
strings.HasPrefix(modelID, "gpt-5") ||
89-
strings.HasPrefix(modelID, "codex-") ||
90-
strings.HasPrefix(modelID, "computer-use") {
91-
if strings.HasPrefix(modelID, "o1-mini") || strings.HasPrefix(modelID, "o1-preview") {
88+
if strings.HasPrefix(modelID, "o1") || strings.Contains(modelID, "-o1") ||
89+
strings.HasPrefix(modelID, "o3") || strings.Contains(modelID, "-o3") ||
90+
strings.HasPrefix(modelID, "o4") || strings.Contains(modelID, "-o4") ||
91+
strings.HasPrefix(modelID, "oss") || strings.Contains(modelID, "-oss") ||
92+
strings.Contains(modelID, "gpt-5") || strings.Contains(modelID, "codex-") ||
93+
strings.Contains(modelID, "computer-use") {
94+
if strings.Contains(modelID, "o1-mini") || strings.Contains(modelID, "o1-preview") {
9295
return responsesModelConfig{
9396
isReasoningModel: true,
9497
systemMessageMode: "remove",

0 commit comments

Comments
 (0)