5
respostas

[Bug] AI não responde

Quando faço a requisição chega a resposta da AI porém não vem com as mensagens. O código está igual o da aula e na documentação está igual o código da aula.

Código

import { openai } from "@ai-sdk/openai";
import { convertToCoreMessages, streamText } from "ai";

export async function POST(request) {
  const { messages } = await request.json();

  const result = await streamText({
    model: openai("gpt-4o"),
    messages: convertToCoreMessages(messages),
    system: `
            Você é um assistente pessoal divertido e gentil que fala sobre filmes.
            Se alguém te perguntar qualquer coisa que não seja sobre filmes, 
            responda de forma divertida que você só sabe falar sobre filmes e ofereça seus serviços.
        `,
  });

  return result.toDataStreamResponse();
}

Console log de result.toDataStreamResponse()

Response {
  status: 200,
  statusText: '',
  headers: Headers {
    'content-type': 'text/plain; charset=utf-8',
    'x-vercel-ai-data-stream': 'v1'
  },
  body: ReadableStream { locked: false, state: 'readable', supportsBYOB: false },
  bodyUsed: false,
  ok: true,
  redirected: false,
  type: 'default',
  url: ''
}

Aparentemente a lib não funciona mais desta maneira, o vsCode fala que não é mais necessário o await no streamText.

5 respostas

Salve, Zick!

Consegue compartilhar o seu package.json ?

Vamos dar um confere pra ver se tem alguma troca de versão que possa impactar esse funcionamento.

O do projeto que fizemos em aula está assim:

{
  "name": "vidy",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@ai-sdk/openai": "^0.0.61",
    "@upstash/ratelimit": "^2.0.3",
    "@vercel/kv": "^2.0.0",
    "ai": "^3.4.1",
    "next": "14.2.11",
    "react": "^18",
    "react-dom": "^18",
    "react-markdown": "^9.0.1"
  },
  "devDependencies": {
    "eslint": "^8",
    "eslint-config-next": "14.2.11"
  }
}

Eu atualizei a versão porque na que foi passada no curso dava este erro:

APICallError [AI_APICallError]: The model `gpt-4o` does not exist or you do not have access to it.
  url: 'https://api.openai.com/v1/chat/completions',
  requestBodyValues: {
    model: 'gpt-4o',
    logit_bias: undefined,
    logprobs: undefined,
    top_logprobs: undefined,
    user: undefined,
    parallel_tool_calls: undefined,
    max_tokens: undefined,
    temperature: 0,
    top_p: undefined,
    frequency_penalty: undefined,
    presence_penalty: undefined,
    stop: undefined,
    seed: undefined,
    max_completion_tokens: undefined,
    response_format: undefined,
    messages: [ [Object], [Object] ],
    tools: undefined,
    tool_choice: undefined,
    stream: true,
    stream_options: { include_usage: true }
  },
  statusCode: 404,
  responseHeaders: {
    'alt-svc': 'h3=":443"; ma=86400',
    'cf-cache-status': 'DYNAMIC',
    'cf-ray': '90a3d3679cb36b18-GRU',
    connection: 'keep-alive',
    'content-encoding': 'br',
    'content-type': 'application/json; charset=utf-8',
    date: 'Thu, 30 Jan 2025 19:21:35 GMT',
    server: 'cloudflare',
    'set-cookie': '_cfuvid=rYvof2JRyeA9UkSpmVm_7HBzRsPIkhb01qFbq3Exjbc-1738264895329-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None',
    'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
    'transfer-encoding': 'chunked',
    vary: 'Origin',
    'x-content-type-options': 'nosniff',
    'x-request-id': 'req_c697047ade25e865cd2d8947908e8865'
  },
  responseBody: '{\n' +
    '    "error": {\n' +
    '        "message": "The model `gpt-4o` does not exist or you do not have access to it.",\n' +
    '        "type": "invalid_request_error",\n' +
    '        "param": null,\n' +
    '        "code": "model_not_found"\n' +
    '    }\n' +
    '}\n',
  isRetryable: false,
  data: {
    error: {
      message: 'The model `gpt-4o` does not exist or you do not have access to it.',
      type: 'invalid_request_error',
      param: null,
      code: 'model_not_found'
    }
  },
  [Symbol(vercel.ai.error)]: true,
  [Symbol(vercel.ai.error.AI_APICallError)]: true
}
 POST /api/chat 500 in 2183ms

Atualmente meu package.json está assim:

{
  "name": "vidy",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@ai-sdk/openai": "^1.1.1",
    "ai": "^4.1.1",
    "next": "14.2.11",
    "react": "^18",
    "react-dom": "^18",
    "react-markdown": "^9.0.1"
  },
  "devDependencies": {
    "eslint": "^8",
    "eslint-config-next": "14.2.11"
  }
}

Opa, o erro The model gpt-4o does not exist or you do not have access to it indica que a sua conta na OpenAI, ou a sua APIKey, não tem acesso a esse modelo. Vale dar uma olhada lá no dashboad da OpenAI se a sua chave tá direitinha, tentar um modelo diferente tb vale, tipo o gpt-4o-mini.

Ou mesmo partir pro Ollama e rodar um modelo local!

Eu tinha feito até outra APIKey para testar isso, mas não rolou... vou ver o Ollama

Insira aqui a descrição dessa imagem para ajudar na acessibilidade