Executando Multimodality localmente
Use esta página para executar qualquer um dos projetos Multimodality extraídos: geração de imagens ou compreensão de imagens. Ambos precisam da mesma mudança de chave Vite e da mesma atualização do SDK OpenAI. Depois disso, siga o reparo para o projeto que você tem. A mudança de chave é a que todo projeto de navegador extraído nestes cursos precisa; Running Chef Claude locally a aplica a um projeto React com duas rotas de provider.
O que você precisa primeiro
Instale uma versão LTS suportada do Node.js. Node 24 é recomendado e inclui npm. O projeto instala o Vite mais recente, que precisa do Node 22.12 ou mais novo.
Verifique se os dois comandos funcionam:
$ node --version
v24.18.0
$ npm --version
11.18.0Você precisa de uma chave de API OpenAI com faturamento e acesso ao modelo que você usa. O acesso à geração de imagens pode exigir verificação organizacional.
Use uma chave temporária com um limite de gastos baixo. Ambos os projetos fazem requisições OpenAI pagas a partir do código do navegador, então qualquer pessoa que abra as ferramentas de desenvolvedor do navegador pode ler a chave.
node --version e npm --version. Cada um deve imprimir um número de versão. Em seguida, crie uma chave OpenAI temporária com faturamento e um limite de gastos baixo. Se você planeja executar o projeto de geração de imagens, verifique se sua organização precisa de verificação antes de começar.
Abra e prepare o projeto
Abra um terminal na pasta extraída contendo package.json:
$ cd path-to-your-downloaded-project
$ npm install
$ npm install openai@latestO segundo install substitui o SDK antigo do curso pelo atual antes de você mudar o modelo.
Verifique index.js para ver qual projeto você tem. O projeto de geração de imagens chama openai.images.generate e constrói um formulário de pôster com um título de filme e um estilo de arte. O projeto de visão chama openai.chat.completions.create com gpt-4-vision-preview e tem uma pasta images/.
Crie .env e .gitignore ao lado de package.json:
VITE_OPENAI_API_KEY=your-openai-api-key.env
node_modules/As entradas .gitignore mantêm duas coisas fora de qualquer repositório que você criar a partir desta pasta: sua chave e a pasta node_modules que npm pode reconstruir a qualquer momento. Ignoring files and good habits cobre o hábito mais amplo.
Em index.js, mude a chave do cliente OpenAI de:
apiKey: process.env.OPENAI_API_KEY,para:
apiKey: import.meta.env.VITE_OPENAI_API_KEY,Deixe a linha dangerouslyAllowBrowser: true abaixo dela no lugar. O SDK se recusa a rodar no navegador sem ela.
A chave está incluída no frontend
Isso é aceitável apenas para aprendizado local temporário com uma chave restrita. Requisições de imagem podem custar dinheiro. Nunca implante ou compartilhe esta versão apenas do navegador; mova a requisição OpenAI para um backend primeiro.
package.json, instale seus pacotes, depois instale o SDK OpenAI atual por cima. Coloque sua chave temporária em .env e deixe .gitignore manter esse arquivo fora do Git. Depois mude a única linha apiKey em index.js e deixe a linha abaixo dela intacta.
Repare o projeto de geração de imagens
O snapshot do curso chama o modelo dall-e-3 aposentado e espera uma URL de imagem hospedada. Seguindo o guia de geração de imagens OpenAI atual, mude sua requisição de imagem para usar gpt-image-2:
const image = await openai.images.generate({
model: "gpt-image-2",
prompt,
size: "1024x1024",
})O modelo retorna a imagem como dados base64 em vez de uma URL. Onde o código lê image.data[0].url:
const imgURL = image.data[0].url;construa uma URL de dados PNG a partir da imagem base64 retornada em vez disso:
const imgURL = `data:image/png;base64,${image.data[0].b64_json}`;Mantenha a linha que coloca imgURL na saída do pôster como está.
gpt-image-2, depois mude a linha imgURL para que ela construa uma URL de dados PNG a partir de b64_json. Faça ambas as mudanças juntas. Se você mudar o modelo e manter .url, o pôster não aparecerá.
Repare o projeto de visão
No projeto Vision Part 2, substitua a ID de modelo aposentada:
model: "gpt-4-vision-preview",pelo gpt-4o-mini com capacidade de imagem:
model: "gpt-4o-mini",O formato de mensagem existente ainda pode enviar entradas de texto e imagem, então o resto da requisição permanece igual.
gpt-4o-mini e mantenha a mensagem de texto e imagem exatamente como está. Apenas a ID do modelo muda aqui, não a forma da requisição.
Execute qualquer um dos projetos
$ npm startAbra a URL Local impressa por Vite.
No projeto de geração de imagens, digite um título de filme, escolha um estilo de arte e selecione Gerar Pôster. A página mostra "Generating poster for..." enquanto a requisição é executada, depois o pôster. Se a requisição falhar, a página mostra "Sorry, an error occurred while generating the poster." e o console do navegador mostra o erro.
O projeto de visão envia sua requisição assim que a página carrega. A página mostra a imagem sendo analisada, e a descrição do modelo aparece no console do navegador, não na página. Cada carregamento de página envia uma nova requisição paga, incluindo o recarregamento que Vite dispara quando você salva index.js.
Reinicie após mudar .env e pare o projeto com Ctrl+C.
npm start e abra a URL Local que Vite imprime. Para geração de imagens, envie um título de filme e estilo de arte e espere pelo pôster. Para visão, abra o console do navegador: a descrição do modelo aparece lá. Cada tentativa é uma requisição paga, então decida o que você quer testar antes de começar a clicar.
Solução de problemas
process is not defined: Substitua a leitura de chave process.env restante em index.js pela forma import.meta.env.VITE_....
A imagem gerada está quebrada: Confirme que o código lê b64_json e adiciona o prefixo data:image/png;base64, em vez de ler .url.
O modelo não está disponível: Confirme faturamento, verificação organizacional e acesso ao modelo no projeto OpenAI. A disponibilidade do provider pode variar por conta.
A página de visão permanece em branco: A página adiciona a imagem apenas após a requisição ter sucesso, então uma página em branco significa que a requisição falhou. Leia o erro no console do navegador. Se não apontar para a chave ou o modelo, envie uma mensagem apenas de texto para gpt-4o-mini primeiro; um sucesso lá confirma que sua conta pode usar o modelo, então a parte de imagem da mensagem é o que inspecionar em seguida.
A requisição funciona mas a página permanece inalterada: Verifique o console do navegador para um erro de renderização e compare o campo retornado com o reparo relevante acima.
process.env restante, confirme o modelo, depois verifique b64_json para geração de imagens. Para qualquer um dos projetos, o console do navegador mostra o erro. A maioria das falhas aqui são uma edição inacabada.

