// SCRAPE BY NEKOLABS https://whatsapp.com/channel/0029VbANq6v0VycMue9vPs3u const axios = require("axios"); const sessions = new Map(); const SESSION_TIMEOUT = 2 * 60 * 1000; const models = { sleepy: "312b3ce9-62dc-4e94-9a40-fb8f60c93ea1", sarah: "4f2edc8d-2992-427f-93c2-849fc2d956de", myra: "deb86452-e27f-47d0-959d-98bdf53fac16", aiko: "c8bfad14-8529-4bf2-a359-b5dd067f2b3b" }; async function hammerAI(userId, message, model) { const url = "https://www.hammerai.com/api/cloud/chat"; const modelId = models[model.toLowerCase()] || model; if (!sessions.has(userId)) { sessions.set(userId, { messages: [ { role: "system", content: "You are an AI chat assistant. Respond politely and helpfully to the user.", }, ], timeout: null, }); } const session = sessions.get(userId); session.messages.push({ role: "user", content: message }); if (session.timeout) clearTimeout(session.timeout); session.timeout = setTimeout(() => { sessions.delete(userId); }, SESSION_TIMEOUT); const payload = { authorId: "b081fd42-5c88-460a-8ccd-d801e882faf7", userId: "", licenseKey: "", generateChat: { quantizationKey: "vllm-mistralai/Mistral-Nemo-Instruct-2407", messages: session.messages, temperature: 0.8, topP: 0.9, topK: 30, nPredict: 256, repetitionPenalty: 1.1, contextSize: 4096, mlock: true, characterId: modelId, }, }; try { const { data } = await axios.post(url, payload, { headers: { "Content-Type": "text/plain;charset=UTF-8", "User-Agent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36", Origin: "https://www.hammerai.com", Referer: `https://www.hammerai.com/chat/${modelId}`, }, }); session.messages.push({ role: "assistant", content: data }); return data; } catch (err) { return `Error: ${err.response?.status || err.message}`; } } const handler = async (req, res) => { try { const { chat, model, key } = req.query; if (!chat) { return res.status(400).json({ success: false, error: 'Missing required parameter: chat' }); } if (!model) { return res.status(400).json({ success: false, error: 'Missing required parameter: model', availableModels: Object.keys(models) }); } if (!models[model.toLowerCase()]) { return res.status(400).json({ success: false, error: 'Invalid model', availableModels: Object.keys(models) }); } if (!key) { return res.status(400).json({ success: false, error: 'Missing required parameter: key' }); } const userId = key; const result = await hammerAI(userId, chat, model); res.json({ author: "Herza", success: true, model: model, response: result }); } catch (error) { res.status(500).json({ success: false, error: error.message }); } }; module.exports = { name: 'HammerAI Chat', description: 'Generate responses using HammerAI with different character models', type: 'GET', routes: ['api/AI/hammerAI'], tags: ['ai', 'hammerai', 'chat'], main: ['AI'], parameters: ['chat', 'model', 'key'], enabled: true, handler };