Rodando Intro to Mistral AI localmente
Use esta página para rodar o projeto Intro to Mistral AI extraído no seu computador e obter uma resposta do Mistral com sua própria chave. Duas coisas diferem do editor do Scrimba: uma linha em index.js deve ler a chave do jeito que o Vite faz, e a resposta aparece no console do seu navegador, não na página. O projeto faz a pergunta ao Mistral assim que a página carrega, então não há botão para clicar.
O que você precisa antes
Instale uma versão LTS suportada do Node.js. A versão 24 é recomendada e inclui npm.
Verifique se ambos os comandos funcionam. Seus números de versão podem ser diferentes:
$ node --version
v24.18.0
$ npm --version
11.18.0Você também precisa de uma chave de API do Mistral, porque o projeto pede uma resposta ao Mistral. Crie uma no console do Mistral seguindo os passos da chave de API do Mistral. Dê a ela uma data de expiração alguns dias à frente e copie-a imediatamente: o Mistral mostra a chave completa apenas uma vez. Este projeto chama o Mistral pelo navegador, então a chave fica na página.
node --version e npm --version imprimem uma versão. Depois crie uma chave de API do Mistral com expiração curta e copie-a em algum lugar seguro antes de fechar o diálogo. Você não conseguirá vê-la novamente depois.
Instale os pacotes
Abra um terminal na pasta do projeto extraído. É aquela que contém package.json, index.js e tools.js:
$ cd path-to-your-extracted-project
$ npm installnpm termina reportando quantos pacotes adicionou:
added 20 packages, and audited 21 packages in 9spackage.json e rode npm install. Deve terminar dizendo quantos pacotes foram adicionados. Se npm disser que não consegue encontrar package.json, você está na pasta errada.
Mude uma linha em index.js
O editor do Scrimba preenche process.env.MISTRAL_API_KEY para você. O navegador não tem process, e o Vite não cria um, então a leitura da chave deve mudar.
Abra index.js e mude a terceira linha de:
const client = new MistralClient(process.env.MISTRAL_API_KEY);para:
const client = new MistralClient(import.meta.env.VITE_MISTRAL_API_KEY);Vite entrega ao código do navegador apenas as variáveis cujos nomes começam com VITE_, e é por isso que o nome ganha esse prefixo. O resto do arquivo fica como o curso escreveu.
index.js, substitua process.env.MISTRAL_API_KEY por import.meta.env.VITE_MISTRAL_API_KEY e salve o arquivo. Essa é a única mudança de código que este projeto precisa.
Adicione sua chave ao .env
Crie .env ao lado de package.json e coloque sua chave nele:
VITE_MISTRAL_API_KEY=your-mistral-api-key-hereCrie .gitignore ao lado de package.json e adicione:
.env
node_modules/Uma chave que chega a um repositório Git fica em seu histórico mesmo depois que você deleta o arquivo. O manual do Git cobre o hábito em ignorando arquivos e boas práticas.
Esta chave é visível no navegador
Vite escreve cada valor VITE_ no código que envia para o navegador, então qualquer um que abra esta página consegue ler sua chave. Mantenha esta versão no seu próprio computador: nunca faça deploy ou compartilhe, e nunca faça commit de .env. Uma versão que você publica precisa de um backend ou função serverless que mantenha a chave no servidor.
.env ao lado de package.json com sua chave em uma linha, depois liste .env em .gitignore para que o Git nunca a salve. Inicie o app e leia a resposta
Inicie o servidor de desenvolvimento:
$ npm startVite pode primeiro imprimir um aviso que começa com (!) Your Vite config uses features. Isso não para o app. Abaixo dele, Vite imprime o endereço para abrir:
VITE v8.3.4 ready in 740 ms
➜ Local: http://localhost:5173/Abra o endereço Local exato. A página mostra apenas o logo do Mistral, e é tudo que ela vai mostrar. A resposta vai para o console, então abra as ferramentas do desenvolvedor do seu navegador (F12, ou Cmd+Option+J no Chrome em um Mac) e selecione a aba Console.
Em alguns segundos o console imprime a resposta do Mistral para "quando a transação T1001 foi paga?": uma sentença dando a data do pagamento, 5 de outubro de 2021 (armazenada em tools.js como 2021-10-05). A redação é da própria modelo. Essa sentença significa que sua chave, a modelo e a chamada de função funcionaram tudo.
Se nenhuma resposta aparecer, a razão está no console em vermelho. Vite também copia o erro no terminal onde está rodando, em uma linha contendo [vite] (client). A solução de problemas abaixo combina cada mensagem.
Cada vez que a página carrega, incluindo quando o Vite a recarrega depois que você salva um arquivo, ela pede ao Mistral novamente. Pare o projeto com Ctrl+C.
npm start, ignore o aviso de config se aparecer, e abra o endereço Local. Ver apenas o logo está correto. Abra o Console nas ferramentas do desenvolvedor do seu navegador e espere alguns segundos pela resposta sobre a transação T1001.
Solução de problemas
O console diz process is not defined: Ou index.js ainda lê process.env, ou o Vite não encontrou a chave. Verifique a terceira linha de index.js primeiro. Se ela já lê import.meta.env.VITE_MISTRAL_API_KEY, verifique que .env está ao lado de package.json e o nome é exatamente VITE_MISTRAL_API_KEY, depois salve .env: Vite reinicia e a página pede ao Mistral novamente.
O console mostra HTTP error! status: 401 e Invalid API Key: A chave chegou ao Mistral, mas o Mistral não a aceitou. Verifique que .env contém a chave inteira, sem espaços ao redor. Se a chave expirou ou foi deletada no console do Mistral, crie uma nova. Salve .env: Vite reinicia e a página pede ao Mistral novamente.
O console mostra outro HTTP error! status:: Leia o texto Response: depois dele. É a própria explicação do Mistral, e diz o que corrigir. Se menciona a modelo, compare mistral-large-latest em index.js com a página de modelos do Mistral e mude apenas o nome da modelo. Mantenha o SDK em 0.1.3.
O console diz Max retries reached, depois de cerca de meio minuto: Mistral continuava respondendo com um limite de taxa ou um erro do servidor. Espere um minuto, depois recarregue a página uma vez.
process, HTTP error ou Max retries e combine com um cabeçalho em negrito acima. 
