Skip to content

deepseek generateObject can't work #7913

@chengfengfengwang

Description

@chengfengfengwang

Description

const main = async () => {
  const result = await generateObject({
    model: deepseek("deepseek-chat"),
    prompt: `Generate a random person`,
    schema: z.object({
      name: z.string().describe("The name of the person"),
      age: z.number().describe("The age of the person")
    }),
  });
  console.log(result.object);
};

get error

node:internal/process/promises:394
    triggerUncaughtException(err, true /* fromPromise */);
    ^

APICallError [AI_APICallError]: Prompt must contain the word 'json' in some form to use 'response_format' of type 'json_object'.
    at <anonymous> (/Users/wangchengfeng/code/tts/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:56:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async postToApi (/Users/wangchengfeng/code/tts/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:112:28)
    at async OpenAICompatibleChatLanguageModel.doGenerate (/Users/wangchengfeng/code/tts/node_modules/@ai-sdk/openai-compatible/src/openai-compatible-chat-language-model.ts:213:9)
    at async fn (/Users/wangchengfeng/code/tts/node_modules/ai/src/generate-object/generate-object.ts:337:30)
    at async <anonymous> (/Users/wangchengfeng/code/tts/node_modules/ai/src/telemetry/record-span.ts:18:22)
    at async _retryWithExponentialBackoff (/Users/wangchengfeng/code/tts/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
    at async fn (/Users/wangchengfeng/code/tts/node_modules/ai/src/generate-object/generate-object.ts:308:32)
    at async <anonymous> (/Users/wangchengfeng/code/tts/node_modules/ai/src/telemetry/record-span.ts:18:22)
    at async generateObject (/Users/wangchengfeng/code/tts/node_modules/ai/src/generate-object/generate-object.ts:264:12) {
  cause: undefined,
  url: 'https://api.deepseek.com/v1/chat/completions',
  requestBodyValues: {
    model: 'deepseek-chat',
    user: undefined,
    max_tokens: undefined,
    temperature: undefined,
    top_p: undefined,
    frequency_penalty: undefined,
    presence_penalty: undefined,
    response_format: { type: 'json_object' },
    stop: undefined,
    seed: undefined,
    reasoning_effort: undefined,
    messages: [ { role: 'user', content: 'Generate a random person' } ],
    tools: undefined,
    tool_choice: undefined
  },
  statusCode: 400,
  responseHeaders: {
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '195',
    'content-type': 'application/json',
    date: 'Sat, 09 Aug 2025 04:25:16 GMT',
    server: 'CW',
    'set-cookie': 'HWWAFSESTIME=1754713512170; path=/',
    'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
    vary: 'origin, access-control-request-method, access-control-request-headers',
    'x-content-type-options': 'nosniff',
    'x-ds-trace-id': 'd6a625495e18ca0a805607cccacb82cf'
  },
  responseBody: `{"error":{"message":"Prompt must contain the word 'json' in some form to use 'response_format' of type 'json_object'.","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}`,
  isRetryable: false,
  data: {
    error: {
      message: "Prompt must contain the word 'json' in some form to use 'response_format' of type 'json_object'.",
      type: 'invalid_request_error',
      param: null,
      code: 'invalid_request_error'
    }
  },
  [Symbol(vercel.ai.error)]: true,
  [Symbol(vercel.ai.error.AI_APICallError)]: true
}

AI SDK Version

"@ai-sdk/deepseek": "^1.0.3",
"ai": "^5.0.8",

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions