ai-sdk-provider icon indicating copy to clipboard operation
ai-sdk-provider copied to clipboard

Sending the temperature parameter when shouldn't

Open devraymondsh opened this issue 7 months ago • 1 comments

When using openai/o1-pro, even though the temperature parameter is not set, it's being sent to openrouter resulting in type validation error. I assume OpenRouterTeam/ai-sdk-provider sends the parameter to openrouter regardless of user not passing it to Verecel AI Sdk.

error: [Error [AI_TypeValidationError]: Type validation failed: Value: {"error":{"message":"Provider returned error","code":400,"metadata":{"raw":"{\n  \"error\": {\n    \"message\": \"Unsupported parameter: 'temperature' is not supported with this model.\",\n    \"type\": \"invalid_request_error\",\n    \"param\": \"temperature\",\n    \"code\": null\n  }\n}","provider_name":"OpenAI"}},"user_id":"user_2vSfnyzwd0KdOWggmDc0KJ867oH"}.
[
  {
    "code": "invalid_union",
    "unionErrors": [
      {
        "issues": [
          {
            "code": "invalid_type",
            "expected": "array",
            "received": "undefined",
            "path": [
              "choices"
            ],
            "message": "Required"
          }
        ],
        "name": "ZodError"
      },
      {
        "issues": [
          {
            "code": "invalid_type",
            "expected": "string",
            "received": "undefined",
            "path": [
              "error",
              "type"
            ],
            "message": "Required"
          },
          {
            "code": "invalid_type",
            "expected": "string",
            "received": "number",
            "path": [
              "error",
              "code"
            ],
            "message": "Expected string, received number"
          }
        ],
        "name": "ZodError"
      }
    ],
    "path": [],
    "message": "Invalid input"
  }
    ]] {
  value: {
    error: {
      message: 'Provider returned error',
      code: 400,
      metadata: {
        raw: '{\n' +
          '  "error": {\n' +
          `    "message": "Unsupported parameter: 'temperature' is not supported with this model.",\n` +
          '    "type": "invalid_request_error",\n' +
          '    "param": "temperature",\n' +
          '    "code": null\n' +
          '  }\n' +
          '}',
        provider_name: 'OpenAI'
      }
    },
    user_id: 'user_2vSfnyzwd0KdOWggmDc0KJ867oH'
  },
  [cause]: [Error [ZodError]: [
    {
      "code": "invalid_union",
      "unionErrors": [
        {
          "issues": [
            {
              "code": "invalid_type",
              "expected": "array",
              "received": "undefined",
              "path": [
                "choices"
              ],
              "message": "Required"
            }
          ],
          "name": "ZodError"
        },
        {
          "issues": [
            {
              "code": "invalid_type",
              "expected": "string",
              "received": "undefined",
              "path": [
                "error",
                "type"
              ],
              "message": "Required"
            },
            {
              "code": "invalid_type",
              "expected": "string",
              "received": "number",
              "path": [
                "error",
                "code"
              ],
              "message": "Expected string, received number"
            }
          ],
          "name": "ZodError"
        }
      ],
      "path": [],
      "message": "Invalid input"
    }
  ]] {
    issues: [ [Object] ],
    addIssue: [Function (anonymous)],
    addIssues: [Function (anonymous)]
  }
}

devraymondsh avatar Apr 20 '25 07:04 devraymondsh

Logging baseArgs:

{
  baseArgs: {
    model: 'openai/o1-pro',
    models: undefined,
    logit_bias: undefined,
    logprobs: undefined,
    top_logprobs: undefined,
    user: undefined,
    parallel_tool_calls: undefined,
    max_tokens: <something>,
    temperature: 0,
    top_p: undefined,
    frequency_penalty: undefined,
    presence_penalty: undefined,
    seed: undefined,
    stop: undefined,
    response_format: undefined,
    top_k: undefined,
    messages: [<something>],
    include_reasoning: undefined,
    reasoning: { include: true },
    usage: { include: true }
  }
}

devraymondsh avatar Apr 20 '25 12:04 devraymondsh