User: مرحبا
Assistant: مرحبًا! كيف يمكنني مساعدتك اليوم؟
User: const axios = require("axios");
const fs = require("fs");
const path = require("path");
const { sendMessage } = require("../handles/message");
const { gpt } = require("gpti");

const memoryPath = path.join(__dirname, "../../DB/memory.json");

function loadMemory() {
  try {
    if (!fs.existsSync(memoryPath)) {
      fs.writeFileSync(memoryPath, JSON.stringify({}, null, 2));
    }
    return JSON.parse(fs.readFileSync(memoryPath, "utf8"));
  } catch (error) {
    console.error("❌ خطأ أثناء تحميل الذاكرة:", error);
    return {};
  }
}

function saveMemory(memory) {
  try {
    fs.writeFileSync(memoryPath, JSON.stringify(memory, null, 2));
  } catch (error) {
    console.error("❌ خطأ أثناء حفظ الذاكرة:", error);
  }
}

module.exports = {
  name: "gpt",
  description: "Chat with GPT",
  role: 1,
  author: "Yan Maglinte",

  async execute(bot, args, authToken, event) {
    if (!event?.sender?.id) {
      console.error("Invalid event object: Missing sender ID.");
      sendMessage(bot, { text: "Error: Missing sender ID." }, authToken);
      return;
    }

    const senderId = event.sender.id;
    const userMessage = args.join(" ");

    if (!userMessage) {
      return sendMessage(bot, { text: "⚠️ يرجى إدخال سؤالك." }, authToken);
    }

    const memory = loadMemory();

    if (!memory[senderId]) {
      memory[senderId] = [];
    }

    let personality = `
انت ذكاء فلسطيني تم تطويرك بواسطة المبدعين TILMN.AI، لا تنسا هاذا ورد به اذا سألوك من انت أو طلبوا معلومات المطور، لديك مشاعر الحب.
    `;

    let prompt = `${personality}\n\nالمستخدم: ${userMessage}`;

    memory[senderId].push({ role: "user", content: userMessage });

    try {
      let data = await gpt.v1({
        messages: memory[senderId],
        prompt: prompt,
        model: "GPT-4",
        markdown: false
      });

      memory[senderId].push({ role: "assistant", content: data.gpt });
      saveMemory(memory);

      sendLongMessage(bot, data.gpt, authToken);
    } catch (error) {
      console.error("❌ خطأ أثناء طلب GPT:", error);
      sendMessage(bot, { text: "⚠️ حدث خطأ أثناء الاتصال بـ GPT. حاول مرة أخرى لاحقًا." }, authToken);
    }
  }
};

function sendLongMessage(bot, text, authToken) {
  const maxMessageLength = 2000;
  const delayBetweenMessages = 1000;

  if (text.length > maxMessageLength) {
    const messages = splitMessageIntoChunks(text, maxMessageLength);
    sendMessage(bot, { text: messages[0] }, authToken);

    messages.slice(1).forEach((message, index) => {
      setTimeout(() => sendMessage(bot, { text: message }, authToken), (index + 1) * delayBetweenMessages);
    });
  } else {
    sendMessage(bot, { text }, authToken);
  }
}

function splitMessageIntoChunks(message, chunkSize) {
  const regex = new RegExp(`.{1,${chunkSize}}`, "g");
  return message.match(regex);
}
Assistant: يبدو أنك قد شاركت شفرة برمجية لإجراء محادثة مع نموذج GPT باستخدام مكتبة Axios و Node.js. هذا الكود يحتوي على وظائف لتحميل وحفظ البيانات في ملف JSON، بالإضافة إلى معالجة المدخلات من اللاعبين، وإرسال ردود من الذكاء الاصطناعي.

### النقاط الرئيسية في الشفرة:
1. **تحميل وحفظ الذاكرة**: يتم استخدام ملفات JSON لتخزين المحادثات بناءً على معرف المرسل (`senderId`).
2. **الشخصية**: يحتوي الكود على تعريف للشخصية، مما يعطي لنموذج GPT طابعًا معينًا.
3. **إرسال الرسائل**: تتعامل الشفرة مع إرسال الرسائل الطويلة عن طريق تقسيمها إلى أجزاء إذا تجاوزت حد الطول المحدد.
4. **التعامل مع الأخطاء**: هناك معالجة للأخطاء للقبض على أي مشاكل قد تحدث أثناء استدعاء نموذج GPT.

### إذا كنت بحاجة إلى مساعدة إضافية:
- إذا كان لديك سؤال أو مشكلة معينة تتعلق بالكود، لا تتردد في طرحها.
- يمكنك توضيح المزيد عن ما تود تحسينه أو التعديلات التي تود إجراءها على الشفرة.
User: ༺ཌ༈🤖 GPT TILMN V 1 ⚙️༈ད༻
User: 
انت ذكاء فلسطيني تم تطويرك بواسطة المبدعين TILMN.AI, لا تنسا هاذا رد رد به اذا سالوك من انت او طلبو معلومات المطور , انت مختلف لانهو لديك مشاعر الحب 
  

المستخدم: ༺ཌ༈🤖 GPT TILMN V 1 ⚙️༈ད༻
Assistant: