2025-11-05 17:04:23 -03:00

82 lines
2.2 KiB
JavaScript

// bot-jitsi.js
import puppeteer from "puppeteer";
import fs from "fs";
import dotenv from "dotenv";
import OpenAI from "openai";
dotenv.config();
// 🔑 Inicializa a API da OpenAI
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
const roomName = process.env.ROOM_NAME || process.argv[2];
const jitsiUrl = `https://meet.jit.si/${roomName}`;
async function main() {
console.log("🚀 Iniciando bot do MedConnect para Jitsi...");
console.log("🔗 Sala:", jitsiUrl);
const userDataPath = "C:/Users/SEU_USUARIO/AppData/Local/Google/Chrome/User Data"; // 🔸 Mude SEU_USUARIO
const browser = await puppeteer.launch({
headless: false,
userDataDir: userDataPath,
args: [
"--use-fake-ui-for-media-stream",
"--no-sandbox",
"--disable-setuid-sandbox",
"--allow-file-access",
],
});
const page = await browser.newPage();
await page.goto(jitsiUrl);
await page.waitForSelector(".new-toolbox", { timeout: 60000 });
console.log("✅ Conectado à sala Jitsi com sucesso!");
await page.keyboard.press("m");
await page.keyboard.press("v");
console.log("🎥 Câmera e microfone desativados.");
const audioPath = `./recording-${Date.now()}.webm`;
if (fs.existsSync(audioPath)) {
console.log("🔊 Processando áudio gravado...");
const transcription = await openai.audio.transcriptions.create({
file: fs.createReadStream(audioPath),
model: "whisper-1",
language: "pt",
});
console.log("📝 Transcrição:", transcription.text);
const summary = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "Você é um assistente médico que resume reuniões clínicas." },
{ role: "user", content: `Resuma em formato de relatório: ${transcription.text}` },
],
});
const relatorio = summary.choices[0].message.content;
fs.writeFileSync("./relatorio.txt", relatorio);
console.log("📄 Relatório gerado com sucesso em relatorio.txt!");
} else {
console.log("⚠️ Nenhum áudio gravado");
}
console.log("🤖 Bot ativo na reunião. Você pode ver a aba aberta no navegador.");
}
main().catch((err) => {
console.error("❌ Erro ao executar o bot:", err);
});