تقنية

ابحث عن رسائل البريد الإلكتروني المشروعة في مجلد البريد العشوائي في Gmail باستخدام الذكاء الاصطناعي وGoogle Script


استخدم الذكاء الاصطناعي لتحسين اكتشاف الرسائل غير المرغوب فيها في Gmail والعثور على رسائل البريد الإلكتروني الشرعية التي تم تصنيفها عن طريق الخطأ على أنها رسائل غير مرغوب فيها بواسطة خوارزميات Google.

إن النتائج الإيجابية الكاذبة في Gmail غير شائعة ولكنها يمكن أن تحدث، مما يعني أن رسالة بريد إلكتروني مهمة قد تنتهي عن طريق الخطأ في مجلد الرسائل غير المرغوب فيها. عندما تتعامل مع مئات الرسائل غير المرغوب فيها يوميًا، يصبح تحديد رسائل البريد الإلكتروني المشروعة هذه أكثر صعوبة.

يمكنك إنشاء عوامل تصفية في Gmail بحيث لا يتم وضع علامة على رسائل البريد الإلكتروني الواردة من مرسلين محددين أو التي تحتوي على كلمات رئيسية معينة كرسائل غير مرغوب فيها. ولكن من الواضح أن هذه المرشحات لن تعمل مع رسائل البريد الإلكتروني الواردة من مرسلين جدد أو غير معروفين.

ابحث عن الرسائل المصنفة بشكل غير صحيح في البريد العشوائي في Gmail

ماذا لو استخدمنا الذكاء الاصطناعي لتحليل رسائل البريد الإلكتروني العشوائية في Gmail والتنبؤ بالرسائل التي من المحتمل أن تكون إيجابية كاذبة؟ باستخدام هذه القائمة من رسائل البريد الإلكتروني التي تم تصنيفها بشكل خاطئ، يمكننا نقل رسائل البريد الإلكتروني هذه تلقائيًا إلى البريد الوارد أو إنشاء تقرير للمراجعة اليدوية.

إليك نموذج تقرير تم إنشاؤه من Gmail. يتضمن قائمة برسائل البريد الإلكتروني ذات درجة منخفضة من البريد العشوائي والتي من المحتمل أن تكون شرعية ويجب نقلها إلى البريد الوارد. يتضمن التقرير أيضًا ملخصًا لمحتوى البريد الإلكتروني بلغتك المفضلة.


للبدء، افتح برنامج Google Script هذا واعمل نسخة منه في Google Drive. قم بالتبديل إلى محرر Apps Script وقم بتوفير عنوان بريدك الإلكتروني ومفتاح OpenAI API واللغة المفضلة لملخص البريد الإلكتروني.

اختر ال reportFalsePositives وظيفة من القائمة المنسدلة وانقر على زر التشغيل لتشغيل البرنامج النصي. سيبحث عن رسائل البريد الإلكتروني العشوائية غير المقروءة في حساب Gmail الخاص بك، ويحللها باستخدام واجهة برمجة تطبيقات OpenAI، ويرسل إليك تقريرًا عن رسائل البريد الإلكتروني ذات درجة البريد العشوائي المنخفضة.

إذا كنت ترغب في تشغيل هذا البرنامج النصي تلقائيًا على فترات زمنية منتظمة، فانتقل إلى قائمة “المشغلات” في محرر Google Apps Script وقم بإعداد مشغل يعتمد على الوقت لتشغيل هذا البرنامج النصي مرة واحدة كل يوم كما هو موضح أدناه. يمكنك أيضًا اختيار الوقت من اليوم الذي ترغب فيه في تلقي التقرير.


جوجل سكريبت - مشغل الوقت

كيف يعمل تصنيف البريد العشوائي بالذكاء الاصطناعي – الجزء الفني

إذا كنت ترغب في معرفة كيفية عمل البرنامج النصي، فإليك نظرة عامة مختصرة:

يستخدم Gmail Script واجهة برمجة تطبيقات Gmail للبحث عن رسائل البريد الإلكتروني العشوائية غير المقروءة في حساب Gmail الخاص بك. ثم يرسل بعد ذلك محتوى البريد الإلكتروني إلى OpenAI’s API لتصنيف درجة البريد العشوائي وإنشاء ملخص باللغة المفضلة لديك. من المحتمل أن تكون رسائل البريد الإلكتروني ذات درجة البريد العشوائي المنخفضة نتائج إيجابية كاذبة ويمكن نقلها إلى البريد الوارد.

1. تكوين المستخدم

يمكنك تقديم عنوان بريدك الإلكتروني الذي يجب إرسال التقرير إليه، ومفتاح OpenAI API الخاص بك، ونموذج LLM المفضل لديك، ولغة ملخص البريد الإلكتروني.


const USER_EMAIL = 'email@domain.com'; 
const OPENAI_API_KEY = 'sk-proj-123'; 
const OPENAI_MODEL = 'gpt-4o'; 
const USER_LANGUAGE = 'English'; 

2. ابحث عن رسائل البريد الإلكتروني غير المقروءة في مجلد البريد العشوائي في Gmail

نحن نستخدم وقت العصر للعثور على رسائل البريد الإلكتروني العشوائية التي وصلت خلال الـ 24 ساعة الماضية وما زالت غير مقروءة.

const HOURS_AGO = 24; 
const MAX_THREADS = 25; 

const getSpamThreads_ = () => {
  const epoch = (date) => Math.floor(date.getTime() / 1000);
  const beforeDate = new Date();
  const afterDate = new Date();
  afterDate.setHours(afterDate.getHours() - HOURS_AGO);
  const searchQuery = `is:unread in:spam after:${epoch(afterDate)} before:${epoch(beforeDate)}`;
  return GmailApp.search(searchQuery, 0, MAX_THREADS);
};

3. قم بإنشاء مطالبة لنموذج OpenAI

نقوم بإنشاء مطالبة لنموذج OpenAI باستخدام رسالة البريد الإلكتروني. تطلب المطالبة من نموذج الذكاء الاصطناعي تحليل محتوى البريد الإلكتروني وتعيين درجة البريد العشوائي على مقياس من 0 إلى 10. ويجب أن تكون الاستجابة بتنسيق JSON.

const SYSTEM_PROMPT = `You are an AI email classifier. Given the content of an email, analyze it and assign a spam score on a scale from 0 to 10, where 0 indicates a legitimate email and 10 indicates a definite spam email. Provide a short summary of the email in ${USER_LANGUAGE}. Your response should be in JSON format.`;

const MAX_BODY_LENGTH = 200; 

const getMessagePrompt_ = (message) => {
  const body = message
    .getPlainBody()
    .replace(/https?:\/\/[^\s>]+/g, '')
    .replace(/[\n\r\t]/g, ' ')
    .replace(/\s+/g, ' ')
    .trim(); 
  return [
    `Subject: ${message.getSubject()}`,
    `Sender: ${message.getFrom()}`,
    `Body: ${body.substring(0, MAX_BODY_LENGTH)}`,
  ].join('\n');
};

4. اتصل بـ OpenAI API للحصول على نقاط البريد العشوائي

نقوم بتمرير رسالة المطالبة إلى OpenAI API ونحصل على درجة البريد العشوائي وملخص لمحتوى البريد الإلكتروني. يتم استخدام درجة البريد العشوائي لتحديد ما إذا كانت رسالة البريد الإلكتروني إيجابية كاذبة.

ال tokens يتتبع المتغير عدد الرموز المميزة المستخدمة في مكالمات OpenAI API ويتم تضمينها في تقرير البريد الإلكتروني. يمكنك استخدام هذه المعلومات لمراقبة استخدام واجهة برمجة التطبيقات (API) الخاصة بك.

let tokens = 0;

const getMessageScore_ = (messagePrompt) => {
  const apiUrl = `https://api.openai.com/v1/chat/completions`;
  const headers = {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${OPENAI_API_KEY}`,
  };
  const response = UrlFetchApp.fetch(apiUrl, {
    method: 'POST',
    headers,
    payload: JSON.stringify({
      model: OPENAI_MODEL,
      messages: [
        { role: 'system', content: SYSTEM_PROMPT },
        { role: 'user', content: messagePrompt },
      ],
      temperature: 0.2,
      max_tokens: 124,
      response_format: { type: 'json_object' },
    }),
  });
  const data = JSON.parse(response.getContentText());
  tokens += data.usage.total_tokens;
  const content = JSON.parse(data.choices[0].message.content);
  return content;
};

5. معالجة رسائل البريد الإلكتروني العشوائية وإرسال التقرير بالبريد الإلكتروني

يمكنك تشغيل برنامج Google النصي هذا يدويًا أو إعداد مشغل cron لتشغيله تلقائيًا على فترات زمنية منتظمة. فهو يضع علامة على رسائل البريد الإلكتروني العشوائي كمقروءة حتى لا تتم معالجتها مرة أخرى.

const SPAM_THRESHOLD = 2; 

const reportFalsePositives = () => {
  const html = [];
  const threads = getSpamThreads_();
  for (let i = 0; i < threads.length; i += 1) {
    const [message] = threads[i].getMessages();
    const messagePrompt = getMessagePrompt_(message);
    
    const { spam_score, summary } = getMessageScore_(messagePrompt);
    if (spam_score <= SPAM_THRESHOLD) {
      
      html.push(`<tr><td>${message.getFrom()}</td> <td>${summary}</td></tr>`);
    }
  }
  threads.forEach((thread) => thread.markRead()); 
  if (html.length > 0) {
    const htmlBody = [
      `<table border="1">`,
      '<tr><th>Email Sender</th><th>Summary</th></tr>',
      html.join(''),
      '</table>',
    ].join('');
    const subject = `Gmail Spam Report - ${tokens} tokens used`;
    GmailApp.sendEmail(USER_EMAIL, subject, '', { htmlBody });
  }
};

راجع أيضًا: مصادقة رسائل Gmail الخاصة بك



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى