import sqlite3 from 'sqlite3'; import fetch from 'node-fetch'; const db = new sqlite3.Database('./prisma/keep-notes.db'); db.all("SELECT * FROM SystemConfig", async (err, rows) => { if (err) throw err; const config = rows.reduce((acc, row) => ({ ...acc, [row.key]: row.value }), {}); const apiKey = config.CUSTOM_OPENAI_API_KEY; const baseUrl = config.CUSTOM_OPENAI_BASE_URL || 'https://openrouter.ai/api/v1/'; const model = config.AI_MODEL_TAGS; console.log("Using model:", model); console.log("Base URL:", baseUrl); const payload = { model: model, messages: [ { role: "system", content: "Tu es l'Assistant IA de Keep Notes." }, { role: "user", content: "hello ..." }, { role: "assistant", content: "La configuration du Model Context Protocol..." }, { role: "user", content: "dis moi comment utiliser le MCP" } ] }; try { const url = baseUrl.endsWith('/') ? `${baseUrl}chat/completions` : `${baseUrl}/chat/completions`; const res = await fetch(url, { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json', 'HTTP-Referer': 'http://localhost:3000', // OpenRouter requirement 'X-Title': 'Keep Notes', // OpenRouter requirement }, body: JSON.stringify(payload) }); const data = await res.json(); if (!res.ok) { console.error("OPENROUTER ERROR:"); console.error(JSON.stringify(data, null, 2)); } else { console.log("OPENROUTER SUCCESS:"); console.log(data.choices[0].message.content.substring(0, 50)); } } catch (error) { console.error("FETCH ERROR:", error); } });