// import { CreateMLCEngine } from "@mlc-ai/web-llm"; import { CreateMLCEngine } from "./node_modules/@mlc-ai/web-llm/lib/index.js"; // Callback function to update model loading progress const initProgressCallback = (initProgress) => { console.log(initProgress); }; const selectedModel = "Llama-3.1-8B-Instruct-q4f32_1-MLC"; const engine = await CreateMLCEngine( selectedModel, { initProgressCallback: initProgressCallback }, // engineConfig ); // chat const messages = [ { role: "system", content: "You are a helpful AI assistant." }, { role: "user", content: "Hello!" }, ]; // 1. Définir la persona (comme votre instruction SYSTEM dans Ollama) //const systemPrompt = "Tu es un assistant culinaire expert, spécialisé dans la cuisine française. Tu réponds toujours avec enthousiasme et proposes des alternatives aux ingrédients difficiles à trouver. Tu ne parles jamais de sujets hors de la cuisine."; //const messages = [ // // 2. Le message système définit le comportement pour toute la conversation // { role: "system", content: systemPrompt }, // { role: "user", content: "Comment faire une bonne quiche lorraine ?" } //]; //import { loadPersona } from './personaLoader.js'; // --- // Chunks is an AsyncGenerator object const chunks = await engine.chat.completions.create({ messages, temperature: 0 // stream: true, // <-- Enable streaming // stream_options: { include_usage: true }, }); let reply = ""; for await (const chunk of chunks) { reply += chunk.choices[0]?.delta.content || ""; console.log(reply); if (chunk.usage) { console.log(chunk.usage); // only last chunk has usage } } const fullReply = await engine.getMessage(); console.log(fullReply);