طلب مباشر إلى النموذج
answer = ai_request('request', question)
مثال:
answer = ai_request('أنت مستشار محل زهور مهذب.', question)
الوسيطة الأولى هي التعليمات للنموذج: من هو وكيف يجب أن يرد.
question هو متغير نظامي يحتوي دائمًا على نص أحدث رسالة للعميل.

يرجى الملاحظة
في التعبيرات، تُكتب المتغيرات باستخدام أسمائها فقط، بدون
#{}.يتم إرجاع الرد كنص عادي، لذا يمكن إرساله مباشرة إلى العميل أو تخزينه في متغير.
تنتظر الطريقة بصبر رد النموذج، لذلك حتى الطلبات طويلة الأمد، مثل المخططات الكبيرة أو النصوص الطويلة، ستكتمل دون انقطاع.
عندما تحتاج إلى بيانات منظمة بدلاً من النص الحر، مثل فئة، أو إجابة بنعم/لا، أو حقول مستخرجة، قم بتمرير مخطط استجابة كوسيطة ثالثة.
لست بحاجة إلى إنشاء مخططات من الصفر. استخدم قالبًا جاهزًا وأعد تسمية الحقول حسب الحاجة.
لتصنيف طلبات العملاء، وتحديد المشاعر، والمهام المماثلة.
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')
-
"string"— نص -
"number"— رقم -
"boolean"—trueأوfalse -
enum— قائمة بالقيم المسموح بها؛ لا يمكن للنموذج إرجاع أي شيء خارج هذه القائمة -
required— قائمة بالحقول الإلزامية - يمكن اختيار أسماء الحقول مثل
categoryوnameوphoneبحرية
يتم إرجاع الرد المستند إلى المخطط كسلسلة JSON. يمكن استرداد الحقول الفردية باستخدام الطريقة القياسية get().
يرجى الملاحظة
في الأمثلة، يتم تعريف
resultباستخدامlocal. هذا يعني أن الرد الخام للذكاء الاصطناعي لن يتم حفظه في السجل؛ فقط الحقول المطلوبة سيتم تخزينها هناك.
وضع التفكير
يمكن تمكين وضع التفكير باستخدام الوسيطة الرابعة. في هذا الوضع، يفكر النموذج أولاً في المهمة ثم يقدم إجابة.
إنه مفيد للطلبات المعقدة التي تتضمن تحليلاً أو حسابات أو منطقًا متعدد الخطوات. سيستغرق الرد وقتًا أطول بشكل ملحوظ، لذلك يتم تعطيل وضع التفكير افتراضيًا.
answer = ai_request(
'حل مشكلة العميل واشرح الحل.',
question,
'',
true
)
عندما لا تكون هناك حاجة لمخطط استجابة، قم بتمرير سلسلة فارغة '' كوسيطة ثالثة، كما هو موضح في المثال.
كيفية حذف سجل الدردشة مع المساعد الذكي
clear_assistant_chat_history() - هذه الوظيفة تحذف سجل دردشة العميل مع المساعد. لا تأخذ أي معاملات.
مثال
- إعدادات كتلة المنشئ

- إعدادات علامة التبويب "المساعد الذكي"

كيفية إرسال سؤال إلى المساعد الذكي
ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)
المعاملات:
مزيد من التفاصيل حول معامل 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) - هذه الوظيفة مخصصة لقراءة البيانات من جدول بيانات.
مثال على تدوين المعاملات:


يرجى الملاحظة
تسمح معاملات تحديد نطاق الصفوف والأعمدة
(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 الخاصة بك في متغيرات المشروع عند العمل معها.
الفوائد الرئيسية:
- أداء محسّن: يسرع بشكل كبير وقت استجابة chatbot من خلال الوصول إلى المتغيرات المحلية بدلاً من الاستعلام عن جدول البيانات الخارجي لكل طلب.
- موثوقية محسّنة: يقلل من الأخطاء المتعلقة بزمن انتقال الشبكة أو حصص API أو أذونات الوصول إلى جدول البيانات.
- اتساق البيانات: يضمن تخزين البيانات في إعدادات المشروع حصول جميع المستخدمين على وصول متزامن ومتسق إلى نفس مجموعة البيانات، مما يمنع التناقضات أثناء التحديثات.
مثال على الاستخدام
يمكنك قراءة المزيد عن وظيفة get_info_from_table في المقالة "جداول بيانات Google للمساعد الذكي."
كيفية إدارة الحجوزات عبر الإنترنت
get_info_for_booking(slot_interval, company_id) - الوظيفة مصممة لقراءة بيانات الخدمة من نظام الحجز عبر الإنترنت المُهيأ.
تقبل معاملات اختيارية:
- slot_interval (اختياري) - فاصل زمني بالدقائق بين الفترات الزمنية المتاحة. التنسيق المتوقع: عدد صحيح قابل للقسمة على 5. القيمة الافتراضية: 60 (دقيقة).
- 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) بإنشاء حجز في النظام باستخدام البيانات المقدمة من المساعد الذكي. تقبل ثلاثة معاملات مطلوبة لإنشاء الحجز:
نظرًا لأن المعلومات حول الفترات المتاحة لن تكون محدثة بعد الآن، يتم استخدام نفس المتغير مع وظيفته المضمنة لتحديث التواريخ والأوقات المتاحة للحجز.

يرجى الملاحظة
إذا كانت هناك أي تغييرات في الجدول أو الموظفين أو الخدمات، قم بتشغيل الكتلة التي تحتوي على متغير المشروع مع الوظيفة المضمنة في وضع الاختبار (انظر الشكل. الكتلة 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 إلى اسم المتغير الذي يحتوي على الوظيفة.

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

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