Skip to content

Instantly share code, notes, and snippets.

@ViniciusFXavier
Created May 16, 2024 23:51
Show Gist options
  • Save ViniciusFXavier/839144c019c4ff5c8c79394916645ec3 to your computer and use it in GitHub Desktop.
Save ViniciusFXavier/839144c019c4ff5c8c79394916645ec3 to your computer and use it in GitHub Desktop.
Gemini Google Ai - Web API
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