summaryrefslogtreecommitdiff
path: root/internal/llm/openai_request_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/llm/openai_request_test.go')
-rw-r--r--internal/llm/openai_request_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/llm/openai_request_test.go b/internal/llm/openai_request_test.go
new file mode 100644
index 0000000..f9925f9
--- /dev/null
+++ b/internal/llm/openai_request_test.go
@@ -0,0 +1,32 @@
+package llm
+
+import (
+ "encoding/json"
+ "testing"
+)
+
+func TestBuildOAChatRequest_MaxTokensKeyByModel(t *testing.T) {
+ msgs := []Message{{Role: "user", Content: "hi"}}
+ mt := 123
+ // Legacy model: use max_tokens
+ r1 := buildOAChatRequest(Options{Model: "gpt-4.1", MaxTokens: mt}, msgs, nil, false)
+ b1, _ := json.Marshal(r1)
+ if !contains(string(b1), "max_tokens") || contains(string(b1), "max_completion_tokens") {
+ t.Fatalf("expected max_tokens only, got %s", string(b1))
+ }
+ // gpt-5 family: use max_completion_tokens
+ r2 := buildOAChatRequest(Options{Model: "gpt-5.0-preview", MaxTokens: mt}, msgs, nil, false)
+ b2, _ := json.Marshal(r2)
+ if !contains(string(b2), "max_completion_tokens") || contains(string(b2), "max_tokens\":") {
+ t.Fatalf("expected max_completion_tokens only, got %s", string(b2))
+ }
+}
+
+func contains(s, sub string) bool {
+ for i := 0; i+len(sub) <= len(s); i++ {
+ if s[i:i+len(sub)] == sub {
+ return true
+ }
+ }
+ return false
+}