Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const axios = require("axios");
- /**
- * HammerAI Chat Client
- * Interagir com a API de chat da HammerAI e manter sessões de chat por usuário.
- *
- * List Model:
- * - Sleepy : 312b3ce9-62dc-4e94-9a40-fb8f60c93ea1
- * - Sarah: 4f2edc8d-2992-427f-93c2-849fc2d956de
- * - Myra : deb86452-e27f-47d0-959d-98bdf53fac16
- * - Aiko : c8bfad14-8529-4bf2-a359-b5dd067f2b3b
- *
- * @author synshin9
- *
- * @By: 𖧄 𝐋𝐔𝐂𝐀𝐒 𝐌𝐎𝐃 𝐃𝐎𝐌𝐈𝐍𝐀 𖧄
- * Canal: https://whatsapp.com/channel/0029Vb69bDnAe5VmzSMwBH11
- *
- */
- const sessions = new Map();
- const SESSION_TIMEOUT = 2 * 60 * 1000;
- /**
- * Envie uma mensagem para a HammerAI e receba uma resposta no chat.
- *
- * @param {string} userId - Identificador único para o usuário (e.g., WhatsApp ID, Telegram ID).
- * @param {string} message - Texto de entrada do usuário para enviar à IA.
- * @param {string} model - ID do personagem do modelo de IA no HammerAI.
- * @returns {Promise<string>} - Mensagem de resposta da IA.
- */
- async function hammerAI(userId, message, model) {
- const url = "https://www.hammerai.com/api/cloud/chat";
- if (!sessions.has(userId)) {
- sessions.set(userId, {
- messages: [
- {
- role: "system",
- content:
- "Você é um assistente de bate-papo com IA. Responda ao usuário de forma educada e prestativa.",
- },
- ],
- 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);
- console.log(`Sessão ${userId} expirou após 2 minutos de inatividade..`);
- }, 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: model,
- },
- };
- 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/${model}`,
- },
- });
- session.messages.push({ role: "assistant", content: data });
- return data;
- } catch (err) {
- return `Error: ${err.response?.status || err.message}`;
- }
- }
- module.exports = { hammerAI }
- /*
- EXEMPLO DE USO:
- const { hammerAI } = require('./hammerai');
- async function exemploUso() {
- try {
- const userId = "user-12345"; // ID único do usuário
- const message = "Olá, como você está?"; // Mensagem do usuário
- const model = "4f2edc8d-2992-427f-93c2-849fc2d956de"; // Modelo Sarah
- const resposta = await hammerAI(userId, message, model);
- console.log("Resposta do HammerAI:");
- console.log(resposta);
- } catch (error) {
- console.error("Erro na comunicação com HammerAI:", error);
- }
- }
- // exemploUso();
- MODELOS DISPONÍVEIS:
- - Sleepy: 312b3ce9-62dc-4e94-9a40-fb8f60c93ea1
- - Sarah: 4f2edc8d-2992-427f-93c2-849fc2d956de
- - Myra: deb86452-e27f-47d0-959d-98bdf53fac16
- - Aiko: c8bfad14-8529-4bf2-a359-b5dd067f2b3b
- */
Advertisement
Add Comment
Please, Sign In to add comment