طلب مباشر إلى النموذج

ai_request(prompt, text, response_schema=null, think_mode=false, ai_assistant_id=null)

يرسل طلبًا إلى نموذج ذكاء اصطناعي ويعيد الرد المُنشأ.

المعاملات

المعامل الوصف
prompt الموجه النظامي لنموذج الذكاء الاصطناعي.
text إدخال المستخدم المرسل إلى النموذج.
response_schema مخطط JSON اختياري للردود المنظمة. مرر None أو 0 لتعطيل المخرجات المنظمة.
think_mode يُفعّل وضع التفكير للنموذج. القيمة الافتراضية: False.
ai_assistant_id اختياري. يمكن أن يكون إما معرف مساعد ذكاء اصطناعي أو كائن تكوين. إذا تم توفير معرف مساعد، تستخدم الدالة تلقائيًا إعدادات ذلك المساعد (الموفر، النموذج، مفتاح API، والمعاملات الأخرى)، لذلك لا تحتاج إلى تمريرها يدويًا.

أمثلة

استخدام مساعد ذكاء اصطناعي بواسطة المعرف

ai_request(prompt, text, 0, 0, 123)

في هذا المثال، تقوم الدالة بتحميل جميع الإعدادات من مساعد الذكاء الاصطناعي ذي المعرف 123، لذلك لا تحتاج إلى تحديد الموفر أو النموذج أو مفتاح API أو أي تكوين آخر يدويًا.


تمرير تكوين النموذج يدويًا

aio_request(
    prompt,
    text,
    0,
    0,
    {
        "provider": "openai",
        "api_key": "#{openai_key}",
        "model": "gpt-5-mini"
    }
)

في هذه الحالة، يتم استخدام التكوين المقدم بدلاً من مساعد الذكاء الاصطناعي.

يرجى الملاحظة

في التعبيرات، تُكتب المتغيرات باستخدام أسمائها فقط، بدون #{}.

يتم إرجاع الرد كنص عادي، لذلك يمكن إرساله مباشرة إلى العميل أو تخزينه في متغير.

تنتظر الطريقة بصبر رد النموذج، لذلك حتى الطلبات طويلة الأمد، مثل المخططات الكبيرة أو النصوص الطويلة، ستكتمل دون انقطاع.

عندما تحتاج إلى بيانات منظمة بدلاً من النص الحر، مثل فئة أو إجابة بنعم/لا أو حقول مستخرجة، مرر مخطط الرد كوسيطة ثالثة.

لا تحتاج إلى إنشاء مخططات من الصفر. استخدم قالبًا جاهزًا وأعد تسمية الحقول حسب الحاجة.

قالب "تحديد من قائمة"

لتصنيف طلبات العملاء، وتحديد المشاعر، والمهام المماثلة.

local result = ai_request('حدد فئة الطلب.', question, {
    "type": "object",
    "properties": {
        "category": {
            "type": "string",
            "enum": ["شكوى", "سؤال", "طلب"]
        }
    },
    "required": ["category"]
})
category = get(result, 'category')

سيعيد النموذج قيمة واحدة بالضبط من القيم المدرجة في enum ولا شيء غير ذلك.

قالب "نعم/لا"

المثال المراد نسخه:

local result = ai_request('هل وافق العميل على إجراء عملية الشراء؟', question, {
    "type": "object",
    "properties": {
        "agree": {
            "type": "boolean"
        }
    },
    "required": ["agree"]
})

agree = get(result, 'agree')
قالب "استخراج البيانات من النص"

المثال المراد نسخه:

local result = ai_request('استخرج الاسم ورقم الهاتف من الرسالة.', question, {
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "phone": {
            "type": "string"
        }
    },
    "required": ["name", "phone"]
})

client_name = get(result, 'name')
client_phone = get(result, 'phone')
📖 مرجع سريع لتخصيص القوالب
  1. "string" — نص
  2. "number" — رقم
  3. "boolean"true أو false
  4. enum — قائمة بالقيم المسموح بها؛ لا يمكن للنموذج إرجاع أي شيء خارج هذه القائمة
  5. required — قائمة بالحقول الإلزامية
  6. يمكن اختيار أسماء الحقول مثل category و name و phone بحرية

يتم إرجاع الرد القائم على المخطط كسلسلة JSON. يمكن استرداد الحقول الفردية باستخدام طريقة get() القياسية.

يرجى الملاحظة

في الأمثلة، يتم تعريف result باستخدام local. هذا يعني أن الرد الخام للذكاء الاصطناعي لن يتم حفظه في السجل؛ سيتم تخزين الحقول المطلوبة فقط هناك.

وضع التفكير

يمكن تفعيل وضع التفكير باستخدام الوسيطة الرابعة. في هذا الوضع، يفكر النموذج أولاً في المهمة ثم يقدم إجابة.

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

answer = ai_request(
    'حل مشكلة العميل واشرح الحل.',
    question,
    '',
    true
)

عندما لا يكون مخطط الرد مطلوبًا، مرر سلسلة فارغة '' كوسيطة ثالثة، كما هو موضح في المثال.

كيفية حذف سجل الدردشة مع مساعد الذكاء الاصطناعي

clear_assistant_chat_history() - هذه الدالة تحذف سجل دردشة العميل مع المساعد. لا تأخذ أي معاملات.

مثال

  1. إعدادات كتلة المنشئ

  1. إعدادات علامة تبويب مساعد الذكاء الاصطناعي

كيفية إرسال سؤال إلى مساعد الذكاء الاصطناعي

ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)

المعاملات:

المعامل الوصف ملاحظة
**!** replica معامل مطلوب، رسالة للمساعد
prompt معامل اختياري، تعليمات للمساعد إذا لم يتم تحديد المعامل ولكن تم توفير معامل ai_assistant_id، فسيتم استخدام التعليمات من إعدادات المساعد المحدد
ai_assistant_id معرف المساعد الذي سيتم إرسال السؤال إليه؛ إذا لم يتم توفيره، فسيتم استخدام المساعد بدون إعدادات افتراضية
use_history ما إذا كان يجب على المساعد استخدام سجل الدردشة للإجابة على السؤال True - استخدم، False - لا تستخدم. افتراضيًا - True
send_answer إرسال الرد بعد فترة المهلة للمساعد للتفعيل، مرر "1"

مزيد من التفاصيل حول معامل send_answer:

تتضمن إعدادات المساعد معاملات يمكن تكوينها في حالة استغراق رد البوت وقتًا طويلاً

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

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

كيفية تعليم بوت تحليل تجربته الخاصة وإنشاء الأزرار

دعنا نستخدم الدالتين clean_assistant_chat_history() و ai_context_answer(replica, prompt) في المثال أدناه. من الضروري أيضًا الوصول إلى مكون الآلة الحاسبة داخل منشئ المسار.

يوضح هذا المثال كيف يمكن استخدام المعاملين replica و prompt بشكل فعال في الممارسة العملية.

من الضروري إنشاء كتلة في المنشئ تحتوي على حقل فارغ مع المتغيرات المضمنة #{replica_rec2} و #{ai_answer_rec}، والتي تمثل الردين الأول والثاني للمساعد في رسالة واحدة ليتم إرسالها.

الآن، حدد دالتين في الآلة الحاسبة مباشرة.

استخدم متغيرًا مع دالة مضمنة في إعدادات الأزرار المتقدمة (انظر المثال أعلاه) لإنشاء أزرار ديناميكيًا بناءً على قيمة المعامل.

يتم استرداد معلومات الخدمات بواسطة البوت من متغير service_info، الذي يحتوي على دالة مضمنة — get_info_for_booking() — لقراءة بيانات الخدمة. تم عرض مثال على كيفية استخدام هذه الدالة أعلاه.

إليك النتيجة.

مثال الكود:

clear_assistant_chat_history()

replica_rec2 = ai_context_answer(question, 'أجب على الأسئلة', 3)

prompt = 'مطور يخاطبك الآن - افعل كل ما يطلبه \n . يجب وضع كل زر في سطر جديد.'

ai_answer_rec = ai_context_answer("اعرض الأزرار للرسالة الأخيرة.", prompt)

مثال: استدعاء المساعد داخل منشئ المسار

لاستدعاء المساعد من كتلة، استخدم الدالة ai_context_answer(replica, prompt, ai_assistant_id, use_history)، حيث تحتاج إلى تحديد معاملين فقط: المعامل المطلوب replica والمعامل الاختياري prompt.

الآن، دعنا ننشئ الكتلة الأولى، "فحص الشرط الأساسي"، حيث تحتاج إلى تحديد شرط تشغيل الكتلة (يمكن أن يكون أي شرط تطلبه).

بعد ذلك، افتح الآلة الحاسبة في نفس الكتلة، حيث تحتاج إلى تعريف متغير وتعيينه القيمة التي ترجعها الدالة.

حدد المتغير question وقم بتعيينه قيمة أي سؤال من المستخدم.

بعد ذلك، أنشئ المتغير replica1 وقم بتعيينه القيمة التي ترجعها الدالة ai_context_answer(replica, prompt). في هذه الدالة، استبدل replica بالمتغير question، واضبط معامل prompt على "أجب على أي سؤال من المستخدم."

قم بتضمين المتغير الذي يحتوي على الدالة في رسالة الكتلة.

ثم أنشئ كتلة ثانية واربطها بسهم، واضبط مؤقتًا لمدة ثانيتين على الاتصال.

في الكتلة الثانية، يجب عليك استخدام نفس الدالة بنفس المعاملات — ai_context_answer(replica, prompt).

افتح الآلة الحاسبة في الكتلة الثانية وحدد المتغير الثاني باسم replica2.

في معامل prompt، قدم تعليمات للمساعد: يجب أن يحسب عدد الأسماء الموجودة في رسالته السابقة.

في معامل replica، قدم رسالة المساعد: "كم عدد الأسماء الموجودة في رسالتك السابقة؟"

ثم قم بتضمين متغير replica2 في رسالة الكتلة الثانية.

اكتمل إعداد الكتلة.

إذا لم يكن المساعد مفعلًا، انتقل إلى علامة التبويب "مساعد الذكاء الاصطناعي" وقم بتفعيل المساعد عن طريق تحديد الدور "معطل":

الآن، دعنا نختبر مساعدنا في نافذة اختبار البوت.

لقد عمل البوت بشكل صحيح.

كيفية العمل مع جداول بيانات Google

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - هذه الدالة مخصصة لقراءة البيانات من جدول بيانات.

المعلمات الوصف
**!** sheet_id معرف جدول بيانات Google
number_sheet رقم الورقة في جدول البيانات؛ القيمة الافتراضية = 1
sheet_json_keys معلمة اختيارية — مفتاح الوصول إلى بيانات جدول البيانات
start_row

معلمة اختيارية، عدد صحيح. تحدد بداية نطاق الصفوف.

أدخل رقم الصف الذي يجب قراءة قيم الجدول منه بشكل شامل. يجب تقديم القيمة بدون علامات اقتباس.

end_row معلمة اختيارية، عدد صحيح. تحدد نهاية نطاق الصفوف.
أدخل رقم الصف الذي يجب قراءة قيم الجدول حتى نهايته بشكل شامل. يجب تقديم القيمة بدون علامات اقتباس.
start_col معلمة اختيارية، سلسلة نصية. تحدد بداية نطاق الأعمدة.
أدخل حرف العمود الذي يجب قراءة قيم الجدول منه بشكل شامل. يجب أن تكون القيمة محاطة بعلامات اقتباس.
end_col معلمة اختيارية، سلسلة نصية. تحدد نهاية نطاق الأعمدة.
أدخل حرف العمود الذي يجب قراءة قيم الجدول حتى نهايته بشكل شامل. يجب أن تكون القيمة محاطة بعلامات اقتباس.

مثال على تدوين المعلمات:

يرجى الملاحظة

تسمح معلمات تحديد نطاق الصفوف والأعمدة (start_row, end_row, start_col, end_col) للمساعد بقراءة بيانات جدول البيانات بدءًا من الموقع المطلوب داخل الجدول.

سلوك الدالة عند تحديد نطاق جزئي هو كما يلي:

  • إذا تم تحديد البداية فقط: سيقوم المساعد باسترداد جميع البيانات من تلك النقطة فصاعدًا، دون حد أعلى في الاتجاه المحدد.
  • إذا تم تحديد النهاية فقط: سيقوم المساعد بقراءة البيانات من بداية الورقة حتى نقطة النهاية المحددة.

مثال:

الاستدعاء get_info_from_table('<<معرف جدول البيانات>>', 2, None, 2, 5, 'a', 'd') يسترد جميع البيانات بدءًا من الصف 2، العمود 2 (B)، حتى الصف 5، وبين العمودين A و D.

يرجى الملاحظة

لتحسين الأداء والموثوقية، نوصي بتخزين جميع البيانات مؤقتًا من ورقة Google الخاصة بك في متغيرات المشروع عند العمل معها.

الفوائد الرئيسية:

  1. أداء محسّن: يسرّع بشكل كبير وقت استجابة chatbot من خلال الوصول إلى المتغيرات المحلية بدلاً من الاستعلام عن جدول البيانات الخارجي لكل طلب.
  2. موثوقية محسّنة: يقلل من الأخطاء المتعلقة بزمن انتقال الشبكة أو حصص واجهة برمجة التطبيقات أو أذونات الوصول إلى جدول البيانات.
  3. اتساق البيانات: يضمن تخزين البيانات في إعدادات المشروع حصول جميع المستخدمين على وصول متزامن ومتسق إلى نفس مجموعة البيانات، مما يمنع التناقضات أثناء التحديثات.

مثال على الاستخدام

يمكنك قراءة المزيد عن وظيفة get_info_from_table في المقالة "جداول بيانات Google للمساعد الذكي".

كيفية إدارة الحجوزات عبر الإنترنت

get_info_for_booking(slot_interval, company_id) - تم تصميم هذه الدالة لقراءة بيانات الخدمة من نظام الحجز عبر الإنترنت المُهيأ.

تقبل معلمات اختيارية:

  1. slot_interval (اختياري) - فاصل زمني بالدقائق بين الفترات الزمنية المتاحة. التنسيق المتوقع: عدد صحيح يقبل القسمة على 5. القيمة الافتراضية: 60 (دقيقة).
  2. company_id (اختياري) - معرف الفرع. التنسيق المتوقع: عدد صحيح أو مصفوفة من الأعداد الصحيحة. عند تقديم هذه المعلمة، سيتم إرجاع البيانات الخاصة بالفرع (الفروع) المحدد فقط.

    مثال: 50142، "50142"، أو "[50142, 66352]"

لا يُنصح بتعيين قيمة صغيرة جدًا (مثل أقل من 30)، حيث سينشئ المساعد عددًا كبيرًا جدًا من الفترات الزمنية.

مثال على الاستخدام

أولاً، تحتاج إلى إعداد كتلة تقوم بتحديث المعلومات حول جميع الخدمات بعد تكوين إعدادات الفرع في قسم "الخدمات".

يجب الإعلان عن هذه الكتلة قبل أن يبدأ المساعد العمل، لضمان عدم قيام الذكاء الاصطناعي بتوليد إجابات عشوائية.

بعد ذلك، قم بتشغيل الكتلة في نافذة اختبار البوت لتحديث المتغير:

بعد ذلك، سيظهر المتغير المحدد الذي يحتوي على بيانات خدمة الحجز عبر الإنترنت في قسم متغيرات المشروع ضمن "إعدادات المشروع".

يخزن هذا المتغير قيم الخدمة التي سيستخدمها بوت الذكاء الاصطناعي في عملياته. سيكون متغير service_info متاحًا لجميع عملاء المشروع.

بعد ذلك، دعنا ننتقل إلى تكوين الكتلة التالية.

تخدم هذه الكتلة الوظائف التالية:

أ) يتم استدعاؤها في إعدادات المساعد لإنشاء سجل باستخدام المتغيرات المتعلقة بالخدمة؛

ب) تقوم بإنشاء حجز للعميل؛

ج) تحديث متغيرات المشروع بعد الحجز، وإزالة الفترات الزمنية التي لم تعد متاحة في الجدول.

إذا تم تكوين البوت بشكل صحيح، بعد تلقي جميع البيانات من العميل، سيرسل الذكاء الاصطناعي المعلومات إلى الكتلة المحددة. في تلك الكتلة، سيتم حجز العميل للخدمة باستخدام الدالة create_booking_by_name(!service_name, !date, !date_time, company_id).

يتم تمرير القيم التي جمعها البوت كمعلمات إلى create_booking_by_name(!service_name, !date, !date_time, company_id).

تقوم الدالة create_booking_by_name(service_name, date, date_time, company_id) بإنشاء حجز في النظام باستخدام البيانات المقدمة من المساعد الذكي. تقبل ثلاث معلمات إلزامية لإنشاء الحجز:

المعلمات الوصف
! service_name معلمة إلزامية، اسم الخدمة
! date التاريخ بتنسيق dd.mm.yyyy
! date_time وقت الخدمة بتنسيق hh:mm
company_id معرف الفرع، اختياري.
إذا تم تحديده، سيتم إنشاء الحجز للخدمة بالاسم المحدد التي تنتمي إلى هذا الفرع بالذات.
قد تكون هذه المعلمة ضرورية في الحالات التي تحتوي فيها فروع متعددة على خدمات بنفس الاسم.

نظرًا لأن المعلومات حول الفترات المتاحة لن تكون محدثة بعد الآن، يتم استخدام نفس المتغير مع وظيفته المضمنة لتحديث التواريخ والأوقات المتاحة للحجز.

يرجى الملاحظة

إذا كانت هناك أي تغييرات في الجدول الزمني أو الموظفين أو الخدمات، قم بتشغيل الكتلة التي تحتوي على متغير المشروع مع الوظيفة المضمنة في وضع الاختبار (انظر الشكل. الكتلة 1).

اقرأ كيف تم شرح تكوين بوت الذكاء الاصطناعي للحجز عبر الإنترنت في المقالة التي تحمل الاسم نفسه.

استرداد الحجز من الجدول

get_records_from_table(table_id, start_row, count, start_col, end_col) - استرداد الحجز من الجدول

المعلمة الوصف ملاحظة
table_id معرف الجدول
start_row معلمة اختيارية، عدد صحيح. تحدد بداية نطاق الصفوف. أدخل رقم الصف الذي يجب قراءة قيم الجدول منه بشكل شامل. يتم التحديد بدون علامات اقتباس.
count معلمة اختيارية، عدد صحيح. تحدد عدد الصفوف المراد استردادها. القيمة الافتراضية - 1000، الحد الأقصى - 5000. يتم التحديد بدون علامات اقتباس.
start_col معلمة اختيارية، سلسلة نصية. تحدد بداية نطاق الأعمدة. أدخل حرف العمود الذي يجب قراءة قيم الجدول منه بشكل شامل. يتم التحديد بين علامات اقتباس.
end_col معلمة اختيارية، سلسلة نصية. تحدد نهاية نطاق الأعمدة. أدخل حرف العمود الذي يجب قراءة قيم الجدول حتى نهايته بشكل شامل. يتم التحديد بين علامات اقتباس.

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

مثال (آلة حاسبة)

إذا كنت بحاجة إلى استرداد السجلات من الجدول، افتح قسم "آلة حاسبة" في إعدادات الكتلة وأدخل الدالة مع المعلمات المطلوبة.

لتمرير المعلمات كمتغير مشروع، أضف بادئة project. إلى اسم المتغير الذي يحتوي على الدالة.

إليك مثال على الجدول.

سيستجيب البوت على النحو التالي.