Modern technology gives us many things.

بالخطوات: كيفية إضافة خدمات الذكاء الاصطناعي لتطوير البوت الخاص بك!

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

0 620

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

تُوفّر شركة IBM أدواتها عن طريق منصة Bluemix وتُمكّنك هذه الأدوات والخدمات من دمج وِحدات الذكاء الاصطناعي وتعلم الآلة بالبوت الخاص بك عن طريق بعض خدمات الويب. وعلى وجه التحديد يمكنك استخدام خدمات مثل:

  • محادثات واتسون “Watson Conversation”: لتحديد نيّة المستخدم، وذلك للرد على رسائل المستخدم عندما تكون كلماته ليست في قائمة الأوامر.
  • خدمة استرجاع البيانات “Watson Retrieve”: تُقدّم هذه الخدمة خدمات محركات البحث بالإضافة إلى تقديم نتائج مخصصة ومحددة بعناية.
  • التحويل من صوت إلى نص “Watson Speech To Text”: تقوم هذه الخدمة بتفسير “تحويل” ما يقوله المستخدم للبوت عندما يُرسِل تسجيلاً صوتياً.
  • تحويل النص إلى صوت “Watson Text To Speech”: لقراءة الأخبار وملخصات المقالات وإرسالها للمستخدم أي تحويل النصوص إلى مقاطع صوتية.
  • تحليلات واتسون “Watson Tradeoff Analytics”: تسمح هذه الخدمة للبوت باختيار المقالات تلقائياً اعتماداً على تفضيلات المستخدم السابقة.

قد يهمك أيضًا الاطلاع على كيفية استغلال الذكاء الاصطناعي من أجل نتائج تجارية قوية!

كيف تُعد حسابك على منصة Bluemix؟

قبل البدء، يجب أن يكون لديك إمكانية الوصول للمنصة. يُمكنك الاشتراك في نسخة تجريبية مجانية لمدة 30 يوماً بدون الحاجة إلى بطاقة ائتمان. يمكنك استخدام 2 جيجابايت من البيانات لتشغيل تطبيقاتك، وستستمتع بخدمات IBM Watson بشكل كامل، بالإضافة إلى دعم مجاني، هذه المساحة من المتوقع أن تكون كافية لاختبار التطبيقات والمشاريع الشخصية في بداية نشأتها.

1- بعد تسجيل الدخول إلى Bluemix قم باختيار خدمة من Watson Catalog وإضافتها إلى حسابك.

2- تكوين وإنشاء الخدمات، لكل خدمة، قم بإنشاء اسم مستخدم وكلمة مرور مميزة، للوصول إلى الخدمة يتم تمرير البيانات “الاسم وكلمة المرور” إلى خدمات الويب باستخدام بروتوكول HTTP.

3- بيانات الدخول يتم تمريرها تلقائيًا إلى IBM Watson. يُمكنك اختبار خدمات الويب باستخدام أدوات سطر الأوامر مثل Curl أو باستخدام متصفح واجهة برمجة التطبيقات والتي يمكنها التحكم في الخدمات عن طريق صفحة ويب تفاعلية، في هذا المقال استخدمنا أداة Curl. يُمكنك أيضاً اختبار استجابة التطبيق للطلبات التي تم إنشاؤها.

خدمة المحادثات من واتسون “Watson Conversation

لنلقِ نظرة على خدمات واتسون، واحدة من أهم وظائفها هي الكشف عن نيّة المستخدم في الرسائل، وهو أمر مفيد جداً في المحادثة مع بوت الدردشة. بعد إضافة هذه الخدمة، يُمكِن للبوت أن يستقبل مُدخلات المستخدمين ويقوم بتحليلها ثم يُعطي الاستجابة المناسبة لها. هذه الخدمة تُضفي طابعًا من الذكاء على روبوتات الدردشة.

يمكنك أيضًا الاطلاع على كيفية إضافة المساعدات الإضافية لماسنجر إلى متجرك الإلكتروني؟!

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

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

فيما يلي بعض الأمثلة على جمل التدريب، ويمكننا تصنيف بعضها كطلب للمساعدة والبعض الآخر كطلب بحث عن شيء معين.

Can you help me?,help

Please help!,help

Someone help,help

I want to know how this works,help

How does this work?,help

I would like to know why,search

Can you search for this for me?,search

I have a question,search

I’d like to ask a question,search

ضمن نافذة النوايا، قم بإدخال النوايا والجمل أو رفع ملف CSV الخاص بك، حيث يمكنك من هذه النافذة ملء تطبيقك الخاص بالكثير من الجمل التدريبية. بعد تدريب النموذج الخاص بك يُمكنك الآن تجربة جمل جديدة وتحديد إمكانية التطبيق في التعرف عليها وتحليلها من عدمها.

حاول تمييز مساحات العمل المختلفة عن طريق WORKSPACEID وهو المُعرف الذي يتم إنشاؤه تلقائياً عند إنشاء المساحة، وهو موجود في عنوان الويب الذي يظهر لك في الشريط العلوي للمتصفح بينما تقوم بتصفح مساحة العمل.

curl -X POST -u “USERNAME”:”PASSWORD” -H “Content-Type:application/json” -d “{\”input\”: {\”text\”: \”how are you\”}}” “https://gateway.watsonplatform.net/conversation/api/v1/workspaces/WORKSPACEID/message?version=2016-07-11”

{“input”:{“text”:”how are you”},

“context”:{“conversation_id”:”…” …},

“entities”:[],

“intents”:[{“intent”:”hello”,”confidence”:1}],

“output”:{“log_messages”:[…],”text”:[]}

}

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

خدمة الاستعادة والتصنيف “Watson Retrieve and Rank”

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

تتعامل خدمة Watson Retrieve and Rank مع هذه المشكلة من خلال دمج محرك البحث مع خوارزميات تعلم الآلة. حيث يُمكنك ترتيب نتائج البحث يدويًا، استناداً إلى تلك البيانات،

يُمكن للبوت أن يعلم تفضيلاتك وأن يكون قادرًا  على ترتيب النتائج في عمليات البحث المستقبلية.

تحتاج خدمة “Retrieve and Rank” إلى أمرين: تطبيق Apache Solr وRanker، وتستخدم الخدمة مُحرك بحث Apache Solr وهو محرك بحث مبني على مُحرك Lucene أيضاً. يحتاج إعداد تطبيق Solr كخدمة على منصة Watson Cloud إلى ثلاث خطوات:

1- إنشاء تطبيق Solr باستخدام مكالمة خدمة ويب وهنا تقوم المكالمة بإعادة إرسال مُعرّف للتطبيق والذي سيتم استخدامه لاحقاً.

2- قم بتحميل ملفات التكوين إلى التطبيق. تحدد ملفات التكوين كيفية تصرف محرك البحث مثل الكلمات التي يتم التعامل معها والتعامل مع المرادفات واستراتيجيات الفهرسة والتصفية وغيرها.

3- قم بتحميل مستند بلغة JSON والذي يحتوي على كافة الوثائق المطلوب البحث عنها. ينبغي عليك استرجاع النصوص من المستندات الخاصة بك، تعيين مُعرف مميز لكل وثيقة ومستند، ووضعها في ملف JSON ليتم تحميلها إلى تطبيق Solr باستخدام خدمة IBM Watson.

لتدريب الـRanker، يجب أن تتعامل معه كما كنا نتعامل مع مصنف اللغة العصبية الطبيعية Natural Language Classifier. يُمكنك صنع ملف CSV يحتوي على الأسئلة التي يُمكن أن يسألها المستخدم، متبوعاً بأي عدد من الأعمدة التي توضّح مُعرّف وثيقة البحث، وأهمية كل مستند. بعد تدريب النموذج، يُمكنك إجراء استعلامات البحث اللاحقة. سيحاول البوت إعادة ترتيب وفقاً لتفضيلاتك.

عملية إعداد تطبيق Apache Solr والـRanker لإعداد خدمة الاسترجاع والتصنيف تُعدّ معقدةً نوعاً ما. قم بمراجعة الوثائق والمستندات على موقع Watson للوصول إلى ملفات الأمثلة الجاهزة لإضافتها مباشرةً لتطبيقك.

يمكنك أيضًا الاطلاع على كيف نحسن الشات بوتس سريعًا!

خدمة التحليلات Watson Tradeoff Analytics

يُمكِن لخدمة Tradeoff Analytics مساعدة البوت في اتخاذ القرارات وتقديم التوصيات للمستخدمين، ويُعد هذا هو الاستخدام الأكثر شيوعاً لهذه الخدمة. تكمن العملية البسيطة في تصفية النتائج وتحليلها على أساس تفضيلات المستخدم أو المعايير المذكورة. ولكن التصفية والتحليل غالباً ما تعطي نتائج سيئة لأنهما عمليتان متناقضتان. فتقوم خدمة Tradeoff Analytics بالموازنة بين هذه المعايير والعمليات المتضادة باستخدام خوارزمية تُسمّى Pareto Optimization.

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

فيما يلي ملف إدخال بيانات بصيغة XML كمثال رسمي من شركة IBM يُوضّح طريقة إدخال البيانات عبر هذه الخدمة.

تحتوي الأعمدة على حقول “مفاتيح” يجب تحسينها أثناء اتخاذ القرار، وتحتوي مصفوفة الخيارات على قائمة من العناصر المطلوب الاختيار منها، ويحتوي كل عنصر على كافة المفاتيح الموجودة في الأعمدة.

{

“subject”: “phones”,

“columns”: [

{

“key”: “price”,

“type”: “numeric”,

“goal”: “min”,

“is_objective”: true,

“full_name”: “Price”,

“range”: {

“low”: 0,

“high”: 400

},

“format”: “number:2”

},

{

“key”: “weight”,

“type”: “numeric”,

“goal”: “min”,

“is_objective”: true,

“full_name”: “Weight”,

“format”: “number:0”

},

{

“key”: “brand”,

“type”: “categorical”,

“goal”: “min”,

“is_objective”: true,

“full_name”: “Brand”,

“range”: [

“Apple”,

“HTC”,

“Samsung”,

“Sony”

],

“preference”: [

“Samsung”,

“Apple”,

“HTC”

]

},

{

“key”: “rDate”,

“type”: “datetime”,

“goal”: “max”,

“full_name”: “Release Date”,

“format”: “date: ‘MMM dd, yyyy'”

}

],

“options”: [

{

“key”: “1”,

“name”: “Samsung Galaxy S4”,

“values”: {

“price”: 249,

“weight”: 130,

“brand”: “Samsung”,

“rDate”: “2013-04-29T00:00:00Z”

}

},

{

“key”: “2”,

“name”: “Apple iPhone 5”,

“values”: {

“price”: 449,

“weight”: 112,

“brand”: “Apple”,

“rDate”: “2012-09-21T00:00:00Z”

}

},

{

“key”: “3”,

“name”: “HTC One”,

“values”: {

“price”: 299,

“weight”: 143,

“brand”: “HTC”,

“rDate”: “2013-03-01T00:00:00Z”

}

}

]

}

قم بتحميل الملف التالي مع استبدال الحقول اللازمة مثل اسم المستخدم وكلمة المرور عبر بروتوكول HTTP لمساحة العمل الخاص بك لتشغيل خدمة Trafeoff Analytics.

curl -X POST -u USERNAME”:”PASSWORD”

–header “Content-Type: application/json”

–data @problem.json

https://gateway.watsonplatform.net/tradeoff-

analytics/api/v1/dilemmas?generate_visualization=false”

ستقوم الخدمة بإعادة إرسال النتائج إلى المستخدم. في هذه الحالة، فإن الخيار الأفضل هو رقم 1، وهو سامسونج جالاكسي S4.

{

“problem”: {

… …

“resolution”: {

“solutions”: [

{

“solution_ref”: “1”,

“status”: “FRONT”

},

{

“solution_ref”: “2”,

“status”: “INCOMPLETE”,

“status_cause”: {

“message”: “A column of a option is out of range. Option \”2\” has a value in column \”price\” which is:\”449\” while the column range is: \”[0.0,400.0]\””,

“error_code”: “RANGE_MISMATCH”,

“tokens”: [

“price”,

“449”,

“[0.0,400.0]”

]

}

},

{

“solution_ref”: “3”,

“status”: “EXCLUDED”

}

]

}

}

خدمة تحويل النصوص إلى صوتيات Watson Text to Speech

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

curl -X GET -u “USERNAME”:”PASSWORD”

–output output.wav

“https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?accept=audio/wav&text=TEXT_TO_READ_ALOUD&voice=en-US_AllisonVoice”

هذه الخدمة بسيطة، حيث يجب عليك إرسال النصوص عبر بروتوكول HTTP، وستقوم الخدمة بإعادة النص على هيئة ملف صوتي بصيغة WAV محتويًا على الصوت. مع ذلك، ضغط ملفات WAV لا يتم بطريقة فعّالة لذلك عملية إرسال الملف إلى المستخدم قد تستغرق بعض الوقت، أحد الحلول هو تحويل ملف الصوت بصيغة WAV الصادر من قِبَل الخدمة إلى ملف صوتي بصيغة MP3.

في الكود الخاص بنا، قمنا باستخدام خدمة Zencoder لهذا الغرض، حيث يتم تخزين محتوى ملف WAV على خوادم خدمة واتسون من شركة IBM، ثم تمرير المحتوى إلى Zencoder، بعد اكتمال عملية التحويل، يُمكِن للبوت استرداد عنوان الملف المُحوّل وإرسالها للمستخدم.

ربما يهمك أيضًا لمصنعي البوتات: كيف تُنشىء بوت إخباري على منصة سلاك

 خدمة تحويل الصوت إلى نص Watson Speech To Text

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

curl -X POST -u “USERNAME”:”PASSWORD”

–header “Content-Type: audio/ogg”

–data-binary @audio.ogg

“https://stream.watsonplatform.net/speech-to-text/api/v1/recognize”

في معظم تطبيقات المراسلة الحديثة، يُمكِن للمستخدمين إرسال رسائل صوتية مسجلة لبعضهم البعض. تظهر الرسالة في صندوق الدردشة على شكل مقطع صوتي قابل للتشغيل. عندما يُرسل المستخدم رسالة صوتية إلى بوت الدردشة، تُرسل واجهة برمجة البوت رابط التسجيل الصوتي إلى ويبهوك البوت.

فإذا قام المستخدم بإرسال رسالة صوتية، فإن BassServlet تقوم بتحويلها إلى نص وتقوم بتمرير النص إلى دالة Converse() الموجود في الكود المصدري للبوت.

استناداً إلى المنصة المستخدمة، قد تضطر إلى القيام ببعض الخطوات الأخرى. على سبيل المثال، في منصة فيسبوك ماسنجر تكون التسجيلات والمقاطع الصوتية بصيغة MP3، في هذه الحالة سيتحتم علينا تحويل صيغة الملف وذلك لأن منصة IBM Watson تدعم الملفات الصوتية بصيغة OGG فقط. لذلك يجب عليك استخدام خدمة تحويل مثل Zencoder  لمعالجة المقاطع الصوتية قبل إرسالها لمنصة المُعالجَة.

 

 

تعليقات
Loading...