1
resposta

Erro no comando node chat.js

Estava dando erros e consultei o chatgpt pra me ajudar, criei um .env para adicionar a chave da api do gemini que criei, mudei o código e funcionou, gostaria de verificar se está correto dessa forma, pois não sei com qual api ele tentaria se conectar da forma que foi mostrada:


```import { GoogleGenerativeAI } from '@google/generative-ai';
import 'dotenv/config';

const genAI = new GoogleGenerativeAI(process.env.API_KEY);

async function run() {
    try {
      console.log("Chave da API:", process.env.API_KEY); // só pra checar
  
      const model = genAI.getGenerativeModel({ model: "gemini-1.5-pro" });
  
      const chat = model.startChat({
        history: [
          { role: "user", parts: [{ text: "Oii adoro viajar" }] },
          { role: "model", parts: [{ text: "legal, para onde deseja viajar?" }] },
        ],
        generationConfig: {
          maxOutputTokens: 100,
        },
      });
  
      const msg = "Quero ir para o canada";
  
      const result = await chat.sendMessage(msg);
      const response = await result.response;
      const text = response.text();
      console.log(text);
    } catch (err) {
      console.error("❌ Erro ao executar o chat:", err);
    }
  }
  
run();

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

1 resposta

Oi, Estudante! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu raciocínio está muito bom! Criar um arquivo .env para armazenar a chave da API e usar o process.env.API_KEY foi uma ótima prática de segurança e organização. Se não fosse essa configuração, o código tentaria buscar a chave diretamente do ambiente de execução, o que poderia gerar erro se não estivesse definida.

Seu fluxo de execução está correto e seguro para desenvolvimento local. Em produção, é importante garantir que o .env nunca seja enviado para repositórios públicos (adicione no .gitignore).

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

  Caso este post tenha lhe ajudado, por favor, marcar como solucionado