Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao rodar o comando com o nome do bairro no terminal.

import { GoogleGenerativeAI } from "@google/generative-ai";
import { fazerPergunta } from './pergunta.js';

// Access your API key as an environment variable (see "Set up your API key" above)
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);

  async function run() {
    // For text-only input, use the gemini-pro model
    const model = genAI.getGenerativeModel({ model: "gemini-pro"});
  
    const prompt = await fazerPergunta("Me fale sobre o destino que deseja conhecer: ");
  
    const parts = [
      {text: "Você é um chatbot de um site que vende pacotes de viagens. Ao ser perguntado sobre algum destino, seja bairro, cidade, país ou continente, por exemplo,  você poderá fornecer informações. Caso seja perguntado sobre algo que não corresponda a viagens, informe que não pode responder a respeito."},
      {text: "input: me fale sobre o flamengo, bairo tradicional do Rio de janeiro"},
      {text: "output: **Flamengo, um bairro tradicional do Rio de Janeiro**\n\nLocalizado na Zona Sul do Rio de Janeiro, o Flamengo é um bairro nobre e histórico que oferece uma ampla gama de atrações para visitantes.\n\n**Principais pontos turísticos:**\n\n* **Praia do Flamengo:** Uma bela praia urbana com vista para a Baía de Guanabara e o Pão de Açúcar.\n* **Parque do Flamengo:** Um grande parque à beira-mar com jardins serenos, pistas para caminhada e ciclovia.\n* **Museu de Arte Moderna (MAM):** Um museu de renome internacional com uma coleção de arte moderna e contemporânea brasileira e internacional.\n* **Marina da Glória:** Uma marina movimentada, onde os visitantes podem alugar barcos ou simplesmente admirar os iates de luxo.\n* **Monumento aos Pracinhas:** Um monumento imponente em homenagem aos soldados brasileiros que lutaram na Segunda Guerra Mundial.\n\n**Cultura e vida noturna:**\n\nO Flamengo é conhecido por sua vibrante vida cultural e noturna. O bairro abriga:\n\n* **Theatro Municipal do Rio de Janeiro:** Um histórico teatro de ópera e balé.\n* **Casa de Ruy Barbosa:** Um museu que exibe o legado do renomado jurista e político brasileiro.\n* **Bares e restaurantes:** Uma variedade de bares e restaurantes à beira-mar e nas ruas calmas oferecem uma atmosfera animada.\n\n**Transporte:**\n\nO Flamengo é bem conectado ao resto da cidade por meio de metrô, ônibus e táxis. A estação de metrô Flamengo fica no limite do bairro, fornecendo acesso rápido ao centro da cidade e a outras áreas populares.\n\n**Informações adicionais:**\n\n* **População:** Aproximadamente 40.000 habitantes\n* **Área:** 2,6 km²\n* **CEP:** 22210-010"},
      {text: `input: me fale sobre o destino ${prompt}`},
      {text: "output: "},
    ];
  

  const result = await model.generateContent(
    {contents:[{role:"user",parts }]}
  );
  const response = await result.response;
  const text = response.text();
  console.log(text);
}

run();
4 respostas
solução!

Bom dia, Raquel! Tudo bem?

Testando o código que você compartilhou eu não tive nenhum erro, mas imagino o que pode esta causando o erro que você teve.

No código do arquivo index, estamos carregando uma variável que está fora do projeto, sendo a chave de acesso à API do Gemini. Essa chave foi definida pela instrutora nas variáveis de ambiente do computador, mas caso queira fazer de outra forma siga os seguintes passos:

  1. Crie um arquivo como nome .env, lembre-se de deixar o "." no início do nome.

  2. Dentro dele você deve criar uma variável com o nome GEMINI_API_KEY e fazer com que ela receba a sua API_KEY do Gemini. Exemplo:

        GEMINI_API_KE=coloca_a_api_key_aqui
    
  3. Agora, abra o terminal e instale a dependência dotenv com o comando npm install dotenv.

  4. Depois da instalação, acesse o arquivo "index.js" e bem no início importe o dotenv e chame seu método de configuração, esse método é responsável por carregar a sua API_KEY do arquivo ".env" até o seu código JavaScript. Exemplo:

        import dotenv from 'dotenv';
    
        dotenv.config();
    

Ao fazer esses passos de configuração o seu código deve voltar a rodar sem problemas.

Espero ter ajudado e bons estudos!

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

Oi, tudo bem?

Obrigada pela dica! Mas infelizmente não deu certo. O erro é esse:

file:///C:/Users/55119/Projetos/gemini-curso/node_modules/@google/generative-ai/dist/index.mjs:401
    throw new GoogleGenerativeAIFetchError(`Error fetching from ${url.toString()}: [${response.status} ${response.statusText}] ${message}`, response.status, response.statusText, errorDetails);
          ^

GoogleGenerativeAIFetchError: [GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent: [400 Bad Request] API key not valid. Please pass a valid API key. [{"@type":"type.googleapis.com/google.rpc.ErrorInfo","reason":"API_KEY_INVALID","domain":"googleapis.com","metadata":{"service":"generativelanguage.googleapis.com"}}]
    at handleResponseNotOk (file:///C:/Users/55119/Projetos/gemini-curso/node_modules/@google/generative-ai/dist/index.mjs:401:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async makeRequest (file:///C:/Users/55119/Projetos/gemini-curso/node_modules/@google/generative-ai/dist/index.mjs:374:9)
    at async generateContent (file:///C:/Users/55119/Projetos/gemini-curso/node_modules/@google/generative-ai/dist/index.mjs:813:22)
    at async run (file:///C:/Users/55119/Projetos/gemini-curso/index.js:23:18) {
  status: 400,
  statusText: 'Bad Request',
  errorDetails: [
    {
      '@type': 'type.googleapis.com/google.rpc.ErrorInfo',
      reason: 'API_KEY_INVALID',
      domain: 'googleapis.com',
      metadata: { service: 'generativelanguage.googleapis.com' }
    }
  ]
}

Eu peguei minha chave no aistudio e fiz esse passo a passo que indicou, mas continuo tendo problemas após perguntar o destino. Poderia me ajudar, por favor.

Oi Raquel!

O erro que você compartilhou informa que a API KEY que você está usando é invalida. Isso pode significar que você esta usando realmente uma Chave inválida ou como você está usando faz com que ela não seja reconhecida corretamente.

Na captura de tela abaixo mostrarei como estou adicionando a minha API KEY no arquivo .env. Não recomendo que copie a API KEY que deixei na captura de tela, já que ela não existe :

Captura de tela que mostra uma variável de ambiente dentro do arquivo .env

E o início do seu arquivo index.js deve estar assim:

Captura de tela do arquivo index.js mostrando as importações

Verifique se os seus arquivos estão seguindo essa mesma estrutura antes de rodar o código novamente. Caso o erro apareça novamente, tente criar uma nova API KEY no site AI Studio.

Espero que isso solucione o problema!

Olá, pessoal! Tudo certo?

Obrigada pela ajuda, depois de um longo período de análise do código e ajustes, finalmente funcionou. Muito obrigadaaaa