إنشاء هايكو حول منتجات Google باستخدام PaLM API وFlutter

1. قبل البدء

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

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

المتطلبات الأساسية

  • المعرفة الأساسية بالنماذج اللغوية الكبيرة (LLM)، مثل مطالبة
  • معرفة أساسية بتطوير Flutter باستخدام Dart

ما ستتعرَّف عليه

  • طريقة استخدام PaLM API من Google
  • طريقة إنشاء تطبيق Flutter على عدّة منصات لعرض النتائج

المتطلبات

2. الإعداد

تنزيل رمز إجراء التفعيل

  1. انتقِل إلى مستودع GitHub هذا.
  2. انقر على الرمز > نزِّل الرمز البريدي لتنزيل جميع الرموز الخاصة بهذا الدرس التطبيقي حول الترميز.
  3. عليك فك ضغط ملف ZIP الذي تم تنزيله لفك ضغط مجلد الجذر "codelabs-main". تحتاج فقط إلى الدليل الفرعي haiku-generator، الذي يحتوي على المجلدات التالية:
  • المجلدات من step0 إلى step3 التي تحتوي على رمز التفعيل الذي يعتمد عليه في كل خطوة في هذا الدرس التطبيقي حول الترميز
  • المجلد finished، الذي يحتوي على الرمز المكتمل لنموذج التطبيق النهائي

تنزيل تبعيات المشروع

  1. في رمز VS، انقر على ملف > فتح المجلد > codelabs-main > haiku_منشئ > (الخطوة 0) > lib > رئيسي.dart
  2. إذا ظهر لك مربّع حوار رمز VS يطالبك بتنزيل الحِزم المطلوبة لتطبيق التفعيل، انقر على الحصول على الحِزم.

مربع حوار رمز VS الذي يطالبك بتنزيل الحزم المطلوبة لتطبيق البداية.

  1. إذا لم يظهر مربّع حوار رمز VS يطلب منك تنزيل الحِزم المطلوبة لتطبيق التفعيل، افتح الوحدة الطرفية ثم انتقِل إلى مجلد step0 وشغِّل الأمر flutter pub get.

تشغيل تطبيق إجراء التفعيل

  1. في رمز VS، تأكد من إعداد محاكي Android أو محاكي iOS بشكل صحيح ويظهر في شريط الحالة.

على سبيل المثال، إليك ما يظهر لك عند استخدام هاتف Pixel 5 مع "محاكي Android":

شريط الحالة الذي تم فيه اختيار هاتف Pixel 5 كجهاز

إليك ما تراه عند استخدام iPhone 13 مع محاكي iOS:

شريط الحالة الذي تم فيه اختيار هاتف iPhone 13 كجهاز

  1. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء. يتم تشغيل التطبيق على محاكي Android أو محاكي iOS.

استكشاف تطبيق إجراء التفعيل

في تطبيق إجراء التفعيل، يمكنك ملاحظة ما يلي:

  • واجهة المستخدم واضحة جدًا.
  • هناك قائمة منسدلة تتيح للمستخدمين اختيار منتج معيّن من Google.
  • بعد أن ينقر المستخدمون على زر إنشاء haiku!، يرسل تطبيق Flutter الطلب المدمَج إلى نقطة نهاية PaLM API التي تعمل على إنشاء هايكو.
  • يعرض التطبيق رمز الهايكو الذي تم إنشاؤه في التطبيق المصغّر النصي بعد تلقّي ردّ. ومع ذلك، في حال اختيار إنشاء haiku!، لن يحدث شيء لأنّه لا يمكن للتطبيق الاتصال بواجهة برمجة تطبيقات PaLM حتى الآن.

تطبيق البداية على نظام التشغيل iOS تطبيق المبتدئين على Android

3- ضبط إمكانية الوصول إلى PaLM API

تحتاج إلى مفتاح واجهة برمجة تطبيقات لاستخدام PaLM API. في وقت نشر هذا الدرس التطبيقي حول الترميز، لا تزال PaLM API في معاينة خاصة.

  • لإعداد إمكانية الوصول إلى PaLM API، اتّبِع المستندات لإنشاء مفتاح واجهة برمجة التطبيقات، ثم دوِّن المفتاح لاستخدامه لاحقًا في هذا الدرس التطبيقي حول الترميز.

4. إضافة قائمة بمنتجات Google

هدفك هو إنشاء شعر هايكو لمنتجات Google. في وقت التشغيل، يمكن لمستخدم التطبيق اختيار منتج ديناميكيًا من قائمة تتضمّن أسماء منتجات تمت تعبئتها تلقائيًا.

لإضافة قائمة بمنتجات Google إلى التطبيق، يجب اتّباع الخطوات التالية:

  1. في رمز VS، انتقِل إلى ملف step1/lib/data/repositories/product_repository_impl.dart.
  2. في نص الدالة getAllProducts()، أضِف المتغيّر التالي الذي يخزِّن مصفوفة من أسماء منتجات Google:

product_repository_impl .dart

var productData = [
  {'productName': 'Google Search'},
  {'productName': 'YouTube'},
  {'productName': 'Android'},
  {'productName': 'Google Maps'},
  {'productName': 'Gmail'}
];

5- يمكنك إرسال الطلب إلى واجهة برمجة التطبيقات PaLM وفك ترميز الردّ.

يتم دمج اسم المنتج الذي يختاره المستخدم مع نموذج الطلب التالي:

Context: You are an awesome haiku writer. 
Message content: Write a cool haiku about {product name}.

لإرسال هذا الطلب إلى نقطة نهاية PaLM API لإنشاء رمز haiku، اتّبِع الخطوات التالية:

  1. في رمز VS، انتقِل إلى ملف step2/lib/data/repositories/poem_repository_impl.dart.
  2. في نص الدالة getPoems()، أضِف الرمز التالي:

poem_repository_impl.dart

// TODO: Replace YOUR_API_KEY with your API key.
var apiKey = 'YOUR_API_KEY';
const haikuCount = 5;

final url = Uri.parse(
   'https://generativelanguage.googleapis.com/v1beta2/models/chat-bison-001:generateMessage?key=$apiKey');
final headers = {'Content-Type': 'application/json'};
final body = jsonEncode({
 "prompt": {
   "context": "You are an awesome haiku writer.",
   "examples": [
     {
       "input": {"content": "Write a haiku about Google Photos."},
       "output": {
         "content":
             "Google Photos, my friend\nA journey of a lifetime\nCaptured in pixels"
       }
     }
   ],
   "messages": [
     {"content": "Write a cool haiku for $productName"}
   ]
 },
 "candidate_count": haikuCount,
 "temperature": 1,
});

try {
 final response = await http.post(url, headers: headers, body: body);
 if (response.statusCode == 200) {
   final decodedResponse = json.decode(response.body);
   String haikus = 'Here are $haikuCount haikus about $productName:\n\n';
   for (var i = 0; i < haikuCount; i++) {
     haikus += '${i + 1}.\n';
     haikus += decodedResponse['candidates'][i]['content'] + '\n\n';
   }
   return haikus;
 } else {
   return 'Request failed with status: ${response.statusCode}.\n\n${response.body}';
 }
} catch (error) {
 throw Exception('Error sending POST request: $error');
}

استبدِل السلسلة YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات السابق.

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

6- تشغيل التطبيق على الأنظمة الأساسية للأجهزة الجوّالة

  1. في رمز VS، اضبط الجهاز المستهدَف على جهاز Android أو iOS.
  2. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء، ثم انتظِر إلى أن يتم تحميل التطبيق.
  3. اختَر منتجًا من القائمة المنسدلة، ثم اختَر إنشاء haiku!. يعرض التطبيق رمز هايكو عن المنتج المحدّد.

التطبيق النهائي على iOS التطبيق النهائي على Android

7. تشغيل التطبيق على الأنظمة الأساسية لسطح المكتب

بالإضافة إلى Android وiOS، يتوافق Flutter أيضًا مع الأنظمة الأساسية لأجهزة الكمبيوتر المكتبي، بما في ذلك Linux وmacOS وWindows.

تشغيل التطبيق على نظام التشغيل Linux

  1. في رمز VS، اضبط الجهاز المستهدَف على Linux (linux-x64).
  2. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء، ثم انتظِر إلى أن يتم تحميل التطبيق.
  3. اختَر منتجًا من القائمة المنسدلة، ثم اختَر إنشاء haiku!.

التطبيق النهائي على نظام التشغيل Linux

تشغيل التطبيق على نظام التشغيل macOS

بالنسبة إلى نظام التشغيل macOS، يجب إعداد استحقاقات مناسبة لأنّ التطبيق يرسل طلبات HTTP إلى الخلفية. لمزيد من المعلومات، يُرجى الاطّلاع على الحقوق و"وضع حماية التطبيقات".

لتشغيل التطبيق على نظام التشغيل macOS، اتّبِع الخطوات التالية:

  1. في الملفين step3/macos/Runner/DebugProfile.entitlements وstep3/macos/Runner/Release.entitlements، أضِف الرمز التالي:

DebugProfile.entitlements | Release.entitlements

<key>com.apple.security.network.client</key>
<true/>
  1. في رمز VS، اضبط الجهاز المستهدَف على macOS (darwin) .
  2. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء، ثم انتظِر إلى أن يتم تحميل التطبيق.
  3. اختَر منتجًا من القائمة المنسدلة، ثم اختَر إنشاء haiku!.

التطبيق النهائي على macOS

تشغيل التطبيق على نظام التشغيل Windows

  1. في رمز VS، اضبط الجهاز المستهدَف على Windows (Windows-x64).
  2. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء، ثم انتظِر إلى أن يتم تحميل التطبيق.
  3. اختَر منتجًا من القائمة المنسدلة، ثم اختَر إنشاء haiku!.

التطبيق النهائي على Windows

8. تشغيل التطبيق على منصة الويب

يمكنك أيضًا إضافة دعم الويب إلى تطبيق Flutter. يتم تلقائيًا تفعيل نظام الويب الأساسي لتطبيقات Flutter، ما عليك سوى تشغيله.

لتشغيل التطبيق على النظام الأساسي للويب، اتّبِع الخطوات التالية:

  1. في رمز VS، اضبط الجهاز المستهدَف على Chrome (web-JavaScript).
  2. انقر على a19a0c68bc4046e6.png بدء تصحيح الأخطاء، ثم انتظِر إلى أن يتم تحميل التطبيق في Google Chrome.
  3. اختَر منتجًا من القائمة المنسدلة، ثم اختَر إنشاء haiku!.

التطبيق النهائي على الويب

9. تهانينا

لقد أنشأت تطبيقًا شاملًا ينشئ هايكو حول منتجات Google! على الرغم من أنّ التطبيق لا ينشئ هايكوس إلا لمنتجات محدّدة من Google، يمكنك بسهولة تغيير الطلب وإنشاء النص الذي تريده. بعد أن تعرّفت على كيفية استخدام PaLM API، يمكنك إنشاء تطبيقات رائعة تستخدم النماذج اللغوية الكبيرة.

مزيد من المعلومات