Created
May 16, 2024 23:51
-
-
Save ViniciusFXavier/839144c019c4ff5c8c79394916645ec3 to your computer and use it in GitHub Desktop.
Gemini Google Ai - Web API
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { GoogleGenerativeAI } from "@google/generative-ai"; | |
const API_KEY = "KKKKKKEEEEEEEEEYYYYYYYYYY"; | |
const genAI = new GoogleGenerativeAI(API_KEY); | |
const generationConfig = { | |
temperature: 0.9, | |
}; | |
// Modelo 'gemini-pro' para chat | |
const model = genAI.getGenerativeModel({ | |
model: "gemini-pro", | |
generationConfig | |
}); | |
// Inicia a conversa | |
const chat = model.startChat({}); | |
// Elementos do HTML | |
const chatMessagesEl = document.getElementById("chat-messages"); | |
const messageInputEl = document.getElementById("message-input"); | |
const sendButtonEl = document.getElementById("send-button"); | |
// Variável para controlar a ocultação da primeira mensagem | |
let firstMessageSent = false; | |
// Função para adicionar mensagens ao chat | |
function appendMessage(role, text) { | |
const messageEl = document.createElement("li"); | |
messageEl.classList.add("message", `${role}-message`); | |
// Criar parágrafos e transformar links | |
const paragraphs = text.split("\n\n"); | |
paragraphs.forEach((paragraph) => { | |
const p = document.createElement("p"); | |
p.innerHTML = paragraph.replace(/(https?:\/\/[^\s]+)/g, '<a href="$1" target="_blank">$1</a>'); | |
messageEl.appendChild(p); | |
}); | |
chatMessagesEl.appendChild(messageEl); | |
} | |
// Função para enviar a mensagem e obter a resposta | |
async function sendMessage(messageText) { | |
if (firstMessageSent) { | |
appendMessage("user", messageText); | |
} else { | |
firstMessageSent = true; // Marca a primeira mensagem como enviada | |
} | |
try { | |
const result = await chat.sendMessage(messageText); | |
const response = await result.response; | |
const teacherMessage = response.text(); | |
appendMessage("teacher", teacherMessage); | |
} catch (error) { | |
console.error("Erro ao enviar mensagem:", error); | |
// Exibir uma mensagem de erro para o usuário | |
} | |
} | |
// Enviar mensagem automática "Olá" e obter a resposta | |
(async () => { | |
const introMessage = "1. Ofereça o link da musica nesse formato https://www.youtube.com/results?search_query=AQUI O NOME DA MUSICA QUE ELA ESCOLHEU"; | |
await sendMessage(introMessage); | |
})(); | |
// Evento de clique no botão "Enviar" | |
sendButtonEl.addEventListener("click", () => { | |
const message = messageInputEl.value.trim(); | |
if (message) { | |
sendMessage(message); | |
messageInputEl.value = ""; | |
} | |
}); | |
// Evento de pressionar "Enter" no campo de entrada | |
messageInputEl.addEventListener("keydown", (event) => { | |
if (event.key === "Enter") { | |
sendButtonEl.click(); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment