OpenAI lance Frontier, sa plateforme de gestion d’agents IA pour les entreprises
https://www.blogdumoderateur.com/openai-lance-frontier-plateforme-gestion-agents-ia-entreprises/
https://www.blogdumoderateur.com/openai-lance-frontier-plateforme-gestion-agents-ia-entreprises/
BDM
OpenAI lance Frontier, sa plateforme de gestion d’agents IA pour les entreprises
OpenAI lance Frontier pour les entreprises souhaitant construire, déployer et gérer des agents IA à grande échelle. L'objectif est de centraliser la gestion de ces
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ♣𝐓𝐄𝐂𝐇 𝐇𝐈𝐍𝐔𝐆𝐄𝐑𝐀 ᵇʸ ˡⁱᵐᵘˡᵉ🌐Code&Free🟢 (♘Fᵣₑₑ🌿🥀 ᭄ᵍᵒᵈ)
CRICFy_v5.6_.apk
21.3 MB
CANAL+ Sport GRATUIT sur Android !
Comment profiter de l'application :
1. Installez et ouvrez l'application.
2. Découvrez les événements sportifs en direct ou à venir, sélectionnez et choisissez un serveur de diffusion.
3. Profitez de tous les contenus CANAL+ Sport et bien plus sur votre smartphone !
4. Ajustez la qualité vidéo en fonction de votre connexion via l'icône ⚙ pendant la lecture.
t.me/scriptbothinugera
Example of main entry points for a WhatsApp bot with pairing code
By @DevCode237 :
import makeWASocket, {
useMultiFileAuthState,
DisconnectReason,
fetchLatestBaileysVersion,
Browsers,
makeInMemoryStore
} from '@whiskeysockets/baileys';
import pino from 'pino';
import { Boom } from '@hapi/boom';
import { getMenu } from './lib/menu.mjs';
import config from './config.mjs';
import readline from 'readline';
import fs from 'fs/promises';
import path from 'path';
import { performance } from 'node:perf_hooks'; // ← pour performance.now()
const logger = pino({ level: 'silent' });
const store = makeInMemoryStore({ logger });
// Fichier persistant pour les chats
const CHATS_FILE = path.join(process.cwd(), 'chats.json');
let chatsMap = new Map();
async function loadChats() {
try {
const data = await fs.readFile(CHATS_FILE, 'utf-8');
const chatsArray = JSON.parse(data);
chatsMap = new Map(chatsArray.map(chat => [chat.id, chat]));
console.log(`Chats chargés : ${chatsMap.size}`);
} catch (err) {
if (err.code !== 'ENOENT') console.error('Erreur chargement chats.json:', err);
chatsMap = new Map();
}
}
async function saveChats() {
try {
const chatsArray = Array.from(chatsMap.values());
await fs.writeFile(CHATS_FILE, JSON.stringify(chatsArray, null, 2));
} catch (err) {
console.error('Erreur sauvegarde chats.json:', err);
}
}
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
const question = text => new Promise(resolve => rl.question(text, resolve));
async function connect() {
await loadChats();
const { state, saveCreds } = await useMultiFileAuthState('./session_limule');
const { version } = await fetchLatestBaileysVersion();
const sock = makeWASocket({
version,
logger,
printQRInTerminal: false,
auth: state,
browser: Browsers.macOS('Chrome'),
syncFullHistory: false
});
store.bind(sock.ev);
// Mise à jour persistante des chats
sock.ev.on('chats.upsert', chats => {
chats.forEach(chat => chatsMap.set(chat.id, chat));
saveChats();
});
sock.ev.on('chats.update', updates => {
updates.forEach(update => {
const existing = chatsMap.get(update.id);
if (existing) Object.assign(existing, update);
});
saveChats();
});
sock.ev.on('chats.delete', ids => {
ids.forEach(id => chatsMap.delete(id));
saveChats();
});
sock.ev.on('creds.update', saveCreds);
sock.ev.on('connection.update', async update => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
const reason = new Boom(lastDisconnect?.error)?.output?.statusCode;
if (reason !== DisconnectReason.loggedOut) connect();
else console.log('Déconnexion (logged out)');
} else if (connection === 'open') {
console.log('Limule-Bot connecté ✅');
}
if (!sock.authState.creds.registered) {
const phone = await question('Entre ton numéro WhatsApp (ex: 23769xxxxxxxx) : ');
const code = await sock.requestPairingCode(phone.trim());
console.log(`Code de pairing : ${code}`);
}
});
sock.ev.on('messages.upsert', async ({ messages }) => {
const m = messages[0];
if (!m.message) return;
const from = m.key.remoteJid;
const sender = m.key.participant || from;
const isOwner = sender.replace(/\D/g, '') === config.ownerNumber;
// Extraction texte (caption incluse)
let text = m.message.conversation ||
m.message.extendedTextMessage?.text ||
m.message.imageMessage?.caption ||
m.message.videoMessage?.caption ||
'';
text = text.trim();
if (!text.startsWith(config.prefix)) return;
const args = text.slice(config.prefix.length).trim().split(/ +/);
const command = args.shift()?.toLowerCase();
if (!command) return;
const commands = {
async ping() {
const start = performance.now();
await sock.sendMessage(from, { text: '🏓 Pong !' });
const latency = (performance.now() - start).toFixed(2);
await sock.sendMessage(from, {
text: `Pong ! Latency: *${latency} ms* ${latency < 150 ? '⚡' : latency < 300 ? '🚀' : '🐢'}`
});
},
async uptime() {
const up = process.uptime();
const h = Math.floor(up / 3600).toString().padStart(2, '0');
const m = Math.floor((up % 3600) / 60).toString().padStart(2, '0');
const s = Math.floor(up % 60).toString().padStart(2, '0');
await sock.sendMessage(from, { text: `⏳ *Uptime* : ${h}h ${m}m ${s}s` });
},
async menu() {
const menuMsg = await getMenu(from, m.pushName || 'Toi');
await sock.relayMessage(from, menuMsg.message, { messageId: m.key.id });
},
help: 'menu',
async cmds() {
const cmdList = [
'🏓 !ping — Test de latence',
'⏳ !uptime — Temps d\'activité',
'📜 !menu / !help — Menu principal',
'📋 !cmds — Cette liste',
'🖼️ !sticker — Image/vidéo → sticker',
'🖼️ !toimg — Sticker → image',
'📢 !bc <texte> — Diffusion (owner only)',
'🔒 !self — Mode privé (owner only)',
'🔗 !channel — Lien de la chaîne'
].join('\n');
await sock.sendMessage(from, {
text: `┏━━━ *Commandes disponibles* ━━━┓\n\n\( {cmdList}\n\n┗━━━━━━━━━━━━━━━━━━━━━┛\n \){config.footer}`
});
},
async sticker() {
const quoted = m.message.extendedTextMessage?.contextInfo?.quotedMessage ||
m.message.imageMessage || m.message.videoMessage;
if (!quoted || (!quoted.imageMessage && !quoted.videoMessage && !quoted.stickerMessage)) {
return sock.sendMessage(from, { text: '❌ Réponds à une image, vidéo ou sticker !' });
}
try {
const buffer = await sock.downloadMediaMessage(quoted);
await sock.sendMessage(from, { sticker: buffer });
await sock.sendMessage(from, { react: { text: '✅', key: m.key } });
} catch (err) {
console.error('Sticker error:', err);
await sock.sendMessage(from, { text: '❌ Échec création sticker' });
}
},
async toimg() {
const quoted = m.message.extendedTextMessage?.contextInfo?.quotedMessage;
if (!quoted?.stickerMessage) {
return sock.sendMessage(from, { text: '❌ Réponds à un sticker !' });
}
try {
const buffer = await sock.downloadMediaMessage(quoted);
await sock.sendMessage(from, { image: buffer, caption: 'Sticker → Image' });
await sock.sendMessage(from, { react: { text: '🖼️', key: m.key } });
} catch (err) {
console.error('Toimg error:', err);
await sock.sendMessage(from, { text: '❌ Échec conversion' });
}
},
async bc() {
if (!isOwner) return sock.sendMessage(from, { text: '⛔ Owner only' });
const broadcastText = args.join(' ') || '(test broadcast)';
let success = 0, failed = 0;
for (const [jid] of chatsMap) {
if (jid === 'status@broadcast' || jid === from) continue;
try {
await sock.sendMessage(jid, {
text: `📢 Broadcast :\n\n\( {broadcastText}\n\n \){config.footer}`
});
success++;
} catch (err) {
failed++;
console.error(`Échec BC → ${jid}:`, err.message);
}
}
await sock.sendMessage(from, {
text: `📊 *Broadcast terminé*\n\n✅ Réussis : ${success}\n❌ Échecs : ${failed}\nTotal : ${success + failed}`
});
},
async self() {
if (!isOwner) return sock.sendMessage(from, { text: '⛔ Owner only' });
await sock.sendMessage(from, { text: '🔒 Mode self activé (placeholder – à développer)' });
},
async channel() {
await sock.sendMessage(from, {
text: `🌟 *Rejoins la chaîne officielle !*\n\n→ \( {config.channelLink}\n\n \){config.footer}`
});
}
};
try {
const handler = commands[command];
if (handler) {
if (typeof handler === 'string') return await commands[handler]();
await handler();
} else {
await sock.sendMessage(from, { react: { text: '❓', key: m.key } });
}
} catch (err) {
console.error(`Erreur commande ${command}:`, err);
await sock.sendMessage(from, { text: `😓 Erreur avec *${command}* — réessaie plus tard` });
}
});
setInterval(saveChats, 10 * 60 * 1000); // Sauvegarde toutes les 10 min
}
connect().catch(err => {
console.error('Erreur fatale:', err);
process.exit(1);
});This media is not supported in your browser
VIEW IN TELEGRAM
OpenAI dévoile GPT-5.3-Codex, son modèle agentique le plus rapide
https://www.blogdumoderateur.com/openai-devoile-gpt-5-3-codex/
https://www.blogdumoderateur.com/openai-devoile-gpt-5-3-codex/
BDM
OpenAI dévoile GPT-5.3-Codex, son modèle agentique le plus rapide
OpenAI vient de lancer GPT-5.3-Codex, présenté comme son modèle agentique le plus avancé à ce jour, plus rapide de 25 %.
Forwarded from ▇ █ ɴᴇxᴜs🌐ʟᴀʙs █ ▇ (—͟͞͞𝐒𝐤𝐲𝐥𝐞𝐫🥀꧁🌀𓆩Limule𓆪🌀꧂ 𝐇𝐨𝐬𝐡𝐢𝐧𝐨)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from ▇ █ ɴᴇxᴜs🌐ʟᴀʙs █ ▇ (—͟͞͞𝐒𝐤𝐲𝐥𝐞𝐫🥀꧁🌀𓆩Limule𓆪🌀꧂ 𝐇𝐨𝐬𝐡𝐢𝐧𝐨)
🟢GreenThe bot's profile picture
Forwarded from ▇ █ ɴᴇxᴜs🌐ʟᴀʙs █ ▇
NEXUS Labs est une start-up spécialisée dans le développement logiciel et l'automatisation intelligente. Notre mission est de transformer les défis technologiques en opportunités de croissance.
Avec une expertise pointue en développement d'applications, création de bots multi-plateformes et architecture logicielle, nous accompagnons les entreprises dans leur transformation digitale.
Notre approche combine innovation technique, agilité et focus sur les résultats pour livrer des solutions qui dépassent les attentes.