| package dto |
|
|
| import ( |
| "testing" |
|
|
| "github.com/QuantumNous/new-api/common" |
| "github.com/stretchr/testify/require" |
| "github.com/tidwall/gjson" |
| ) |
|
|
| func TestGeneralOpenAIRequestPreserveExplicitZeroValues(t *testing.T) { |
| raw := []byte(`{ |
| "model":"gpt-4.1", |
| "stream":false, |
| "max_tokens":0, |
| "max_completion_tokens":0, |
| "top_p":0, |
| "top_k":0, |
| "n":0, |
| "frequency_penalty":0, |
| "presence_penalty":0, |
| "seed":0, |
| "logprobs":false, |
| "top_logprobs":0, |
| "dimensions":0, |
| "return_images":false, |
| "return_related_questions":false |
| }`) |
|
|
| var req GeneralOpenAIRequest |
| err := common.Unmarshal(raw, &req) |
| require.NoError(t, err) |
|
|
| encoded, err := common.Marshal(req) |
| require.NoError(t, err) |
|
|
| require.True(t, gjson.GetBytes(encoded, "stream").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "max_tokens").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "max_completion_tokens").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "top_p").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "top_k").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "n").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "frequency_penalty").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "presence_penalty").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "seed").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "logprobs").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "top_logprobs").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "dimensions").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "return_images").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "return_related_questions").Exists()) |
| } |
|
|
| func TestOpenAIResponsesRequestPreserveExplicitZeroValues(t *testing.T) { |
| raw := []byte(`{ |
| "model":"gpt-4.1", |
| "max_output_tokens":0, |
| "max_tool_calls":0, |
| "stream":false, |
| "top_p":0 |
| }`) |
|
|
| var req OpenAIResponsesRequest |
| err := common.Unmarshal(raw, &req) |
| require.NoError(t, err) |
|
|
| encoded, err := common.Marshal(req) |
| require.NoError(t, err) |
|
|
| require.True(t, gjson.GetBytes(encoded, "max_output_tokens").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "max_tool_calls").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "stream").Exists()) |
| require.True(t, gjson.GetBytes(encoded, "top_p").Exists()) |
| } |
|
|