
تُعتبر Flows محرك أتمتة قوي يسمح بالسحب والإفلات لإنشاء تدفقات اتصالات. في البداية قمنا بتصميمه كحل بدون كود، لكننا وجدنا أن العديد من المستخدمين يمكنهم الحصول على سلوك قوي للغاية من خلال كتابة بعض الأكواد لحالات استخدام محددة. يمكن أن تكون هذه الأكواد داخل Flow Builder، أو يمكن أن تكون وظائف سحابية من جهات خارجية مثل وظائف AWS Lambda أو وظائف Google Cloud.
هذه مجرد مظاهرة بسيطة باستخدام GoogleCloud Functions وFlows للقيام بالتعرف على الصور للصورة المرسلة على Telegram.
التدفقات وما بعدها
بصفتي مطورًا لـ Flows، أفكر غالبًا في من هم مستخدمونا، ولماذا يستخدمون Flows، وما الذي يحتاجون إليه لتحقيق أهدافهم؛ ثم، أي الميزات التي نحتاج إلى تنفيذها لخدمة هؤلاء المستخدمين بأفضل طريقة.
تُعد Flows أداة قوية لأتمتة العمليات باستخدام السحب والإفلات لإنشاء تدفقات الاتصالات. لقد صممناها في البداية كحل بدون كود، لكننا وجدنا أن العديد من المستخدمين يمكنهم الحصول على سلوك قوي حقًا بكتابة بعض الكود لحالات استخدام محددة. على سبيل المثال، يمكنك إنشاء تدفقات تولد بشكل تلقائي العملاء المحتملين والحالات في Salesforce استنادًا إلى تفاعلات العملاء عبر قنوات متعددة. يمكن وضع هذه الأكواد داخل Flows، أو يمكن أن تكون وظائف سحابية من طرف ثالث مثل وظائف AWS Lambda أو وظائف Google Cloud.
حالة استخدام مثيرة للاهتمام: التعرف على الصور
كمثال قصير ومضحك، سأريك كيف تنفذ تطبيقًا يتعرف على النقانق. سنقوم بإعداد تدفق في Flows، سيستقبل الصور من المستخدمين ويقرر، ما إذا كانوا قد أرسلوا هوت دوج أم لا.
بالنسبة للعديد من عملائنا، يمكن أن يكون هذا النوع من التعرف على الصور قويًا جدًا. تخيل أنك تدير خدمة توصيل وأردت التحقق تلقائيًا من عمليات التسليم الناجحة. مشابه لما سأعرضه، يمكنك استخدام بيانات الموقع وصور الطرود وحتى توقيعات المستلمين لإنشاء تدفق تحقق في Flows.
خطة للنجاح
إعداد وظيفة Google Cloud
أولاً، سنحتاج إلى إعداد وظيفة سحابية. لبدء الاستخدام بسرعة، اتبع دليل بدء التشغيل السريع لوظائف Google السحابية. كـ‘مشغل’ اختر مشغل HTTP، بيئة التنفيذ: Node.js 10، وفي حقل التعليمات البرمجية المصدر أدخل الشيفرة البرمجية. إنها شيفرة برمجية بسيطة، تتحقق مما إذا كان الطلب يحتوي على شيفرة JSON وتجيب بنعم أو لا.

بعد ذلك، ستحتاج إلى نشر هذه الوظيفة. لاختبارها داخل منصة Google Cloud، اتبع الخطوات من الدليل.
لاختبارها من متصفحك، اذهب إلى العنوان التالي وأدخل العنوان المحدد للوظيفة الخاصة بك:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
يجب أن يعيد {“isHotDog”: true} والعنوان https://your-function-address.cloudfunctions.net/HotDogOrNot
يجب أن يعيد {“isHotDog”: false}.
عمل جيد! لقد قمت بإعداد وظيفة سحابية من Google. الآن نحتاج إلى جعل الوظيفة السحابية أكثر ذكاءً.
إعداد واجهة برمجة تطبيقات Google Vision
لجعلها أكثر ذكاءً، دعنا نضيف التعرف على الصور. لهذا الغرض، سنستخدم Google Vision API. للبدء، اتبع الخطوات 1-4 في دليل البدء السريع لواجهة Vision API. في البرنامج التعليمي ستقوم بتفعيل واجهة Vision API وإنشاء حساب خدمة لاستخدامها.
الآن عُد إلى وظيفة السحابة التي أنشأتها. فعّل “متغيرات البيئة، الشبكات، المهلات وأكثر” وفي ملف “حساب الخدمة” اختر حساب خدمة VisionAPI الذي أنشأته للتو. الآن يمكننا الوصول إلى واجهة Vision API داخل وظيفتنا.

الآن دعنا نغير الكود. في تبويب “Package.json”، أدخل هذا الكود. سيضيف مكتبة Google Vision API كاعتماد لوظيفتك.
في تبويب "Index.js" حدّث الكود الحالي مع المقطع البرمجي التالي.

ما الفرق مقارنةً بالإصدار السابق؟ أضفنا طلبًا إلى VisionAPI، الذي يُرجع ‘التصنيفات’ التي وجدها على الصورة. ثم نقوم بتصفية هذه التصنيفات وفقًا للوصف: إذا كان يحتوي على “hot dog” وإذا كان لديه ثقة تتجاوز 60% في هذا التصنيف. إذا كان هناك على الأقل تصنيف واحد متبقي بعد التصفية، فهذا يعني أننا وجدنا هوت دوغ في الصورة.
لفهم كيف تعمل Google Vision API ولمشاهدة استجابات النموذج، تحقق من وثائق Vision API الرسمية.
بعد ذلك، قم بنشر الإصدار الجديد من وظيفتنا. لاختباره من متصفحك، ابحث عن أي صورة لهوت دوغ واحفظ رابطها. الآن اذهب إلى عنوان URL الخاص بوظيفتك (بإدخال العنوان الصحيح لوظيفتك) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
واستبدل “url_to_image” برابط للصورة المعثور عليها. إذا كان هناك هوت دوغ في الصورة، ستُرجع الصفحة {“isHotDog”: true}.
الآن دعونا نربط هذه الوظيفة بـ Flow Builder.
إنشاء تدفق في Flows
قم بتسجيل الدخول إلى لوحة تحكم Bird أو اشترك للحصول على حساب إذا لم يكن لديك حساب.
إذا كنت جديدًا في Flows ولم تقم بإعداد أي قنوات، فستحتاج إلى الذهاب إلى صفحة إعداد القنوات، واختيار إعداد قناة Telegram. اخترت Telegram لهذا العرض التوضيحي لأنه من السهل والسريع الإعداد.

الآن لديك قناة يمكننا استخدامها في Flows. اذهب إلى صفحة Flows، قم بإنشاء تدفق مخصص جديد، واختر مشغل قناة "Telegram".

سيتم توجيهك إلى صفحة التدفق، حيث يجب عليك اختيار قناة Telegram كمشغل، في حالتنا هي "Hotdog". يرجى إضافة خطوتين: "جلب المتغيرات" و"الرد على رسالة القناة".
داخل خطوة "جلب المتغيرات"، سنقوم باستدعاء وظيفة السحابة الخاصة بنا واسترداد الرد في المتغير "isHotDog" والذي سيتضمن "true" أو "false" كاستجابة من وظيفة GoogleCloud. في حقل URL، يرجى إدخال عنوان URL لوظيفتك https://your-function-address.cloudfunctions.net/HotDogOrNot
واملأ جميع الحقول الأخرى كما في صورة محتوى خطوة "جلب المتغيرات".
وفي خطوة "الرد على رسالة القناة"، سنرد على العميل برسالة تحتوي على الإجابة بنعم أو لا. لذلك، أدخل في حقل "الرد بالرسالة" النص التالي "هل النقانق في الصورة؟ {{isHotDog}}".


إذا كانت لديك أي مشكلة في بناء التدفق، يمكنك استخدام الكود التالي:

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

إذا كانت لديك أي مشكلة في بناء التدفق، يمكنك استخدام الكود التالي:
النتائج


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