Spaces:
Sleeping
Sleeping
| // 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 | |
| }; |