openai_request_zero_value_test.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package dto
  2. import (
  3. "testing"
  4. "github.com/QuantumNous/new-api/common"
  5. "github.com/stretchr/testify/require"
  6. "github.com/tidwall/gjson"
  7. )
  8. func TestGeneralOpenAIRequestPreserveExplicitZeroValues(t *testing.T) {
  9. raw := []byte(`{
  10. "model":"gpt-4.1",
  11. "stream":false,
  12. "max_tokens":0,
  13. "max_completion_tokens":0,
  14. "top_p":0,
  15. "top_k":0,
  16. "n":0,
  17. "frequency_penalty":0,
  18. "presence_penalty":0,
  19. "seed":0,
  20. "logprobs":false,
  21. "top_logprobs":0,
  22. "dimensions":0,
  23. "return_images":false,
  24. "return_related_questions":false
  25. }`)
  26. var req GeneralOpenAIRequest
  27. err := common.Unmarshal(raw, &req)
  28. require.NoError(t, err)
  29. encoded, err := common.Marshal(req)
  30. require.NoError(t, err)
  31. require.True(t, gjson.GetBytes(encoded, "stream").Exists())
  32. require.True(t, gjson.GetBytes(encoded, "max_tokens").Exists())
  33. require.True(t, gjson.GetBytes(encoded, "max_completion_tokens").Exists())
  34. require.True(t, gjson.GetBytes(encoded, "top_p").Exists())
  35. require.True(t, gjson.GetBytes(encoded, "top_k").Exists())
  36. require.True(t, gjson.GetBytes(encoded, "n").Exists())
  37. require.True(t, gjson.GetBytes(encoded, "frequency_penalty").Exists())
  38. require.True(t, gjson.GetBytes(encoded, "presence_penalty").Exists())
  39. require.True(t, gjson.GetBytes(encoded, "seed").Exists())
  40. require.True(t, gjson.GetBytes(encoded, "logprobs").Exists())
  41. require.True(t, gjson.GetBytes(encoded, "top_logprobs").Exists())
  42. require.True(t, gjson.GetBytes(encoded, "dimensions").Exists())
  43. require.True(t, gjson.GetBytes(encoded, "return_images").Exists())
  44. require.True(t, gjson.GetBytes(encoded, "return_related_questions").Exists())
  45. }
  46. func TestOpenAIResponsesRequestPreserveExplicitZeroValues(t *testing.T) {
  47. raw := []byte(`{
  48. "model":"gpt-4.1",
  49. "max_output_tokens":0,
  50. "max_tool_calls":0,
  51. "stream":false,
  52. "top_p":0
  53. }`)
  54. var req OpenAIResponsesRequest
  55. err := common.Unmarshal(raw, &req)
  56. require.NoError(t, err)
  57. encoded, err := common.Marshal(req)
  58. require.NoError(t, err)
  59. require.True(t, gjson.GetBytes(encoded, "max_output_tokens").Exists())
  60. require.True(t, gjson.GetBytes(encoded, "max_tool_calls").Exists())
  61. require.True(t, gjson.GetBytes(encoded, "stream").Exists())
  62. require.True(t, gjson.GetBytes(encoded, "top_p").Exists())
  63. }