با PalM API و Flutter هایکو درباره محصولات Google ایجاد کنید

۱. قبل از شروع

یکی از هیجان‌انگیزترین پیشرفت‌های یادگیری ماشین (ML)، هوش مصنوعی مولد است که می‌تواند تصاویر، متن، صدا و حتی ویدیوی شگفت‌انگیزی را بر اساس متن ساده یا درخواست‌های کاربران تولید کند. گوگل به طور خاص با انتشار API PaLM ، به توسعه‌دهندگان این امکان را می‌دهد تا دسته‌هایی از برنامه‌ها را با تجربیات کاربری لذت‌بخش که با فناوری PaLM بازآفرینی شده‌اند، بسازند.

در این آزمایشگاه کد، شما برنامه‌ای می‌سازید که از API مربوط به PaLM برای تولید هایکو بر اساس نام محصولات گوگل استفاده می‌کند. همچنین از Flutter برای ایجاد یک برنامه چند پلتفرمی که هایکوها را نمایش می‌دهد، استفاده می‌کنید.

پیش‌نیازها

  • دانش پایه در مورد مدل‌های زبان بزرگ (LLM)، مانند دستورالعمل‌ها
  • دانش پایه توسعه Flutter با Dart

آنچه یاد خواهید گرفت

  • نحوه استفاده از API مربوط به PaLM از گوگل.
  • چگونه یک برنامه چند پلتفرمی Flutter بسازیم که نتایج را نمایش دهد.

آنچه نیاز دارید

۲. آماده شوید

کد شروع را دانلود کنید

  1. به این مخزن گیت‌هاب بروید.
  2. برای دانلود تمام کدهای این codelab، روی Code > Download zip کلیک کنید.
  3. فایل زیپ دانلود شده را از حالت فشرده خارج کنید تا پوشه ریشه codelabs-main از حالت فشرده خارج شود. شما فقط به زیرشاخه haiku-generator نیاز دارید که شامل پوشه‌های زیر است:
  • پوشه‌های step0 تا step3 ، که شامل کد آغازینی هستند که برای هر مرحله در این آزمایشگاه کد، بر اساس آن کد می‌سازید.
  • پوشه‌ی finished ، که شامل کد تکمیل‌شده برای برنامه‌ی نمونه‌ی نهایی است.

دانلود وابستگی‌های پروژه

  1. در VS Code، روی File > Open folder > codelabs-main > haiku_generator > step0 > lib > main.dart کلیک کنید.
  2. اگر پنجره‌ی VS Code را مشاهده کردید که از شما می‌خواهد بسته‌های مورد نیاز برای برنامه‌ی آغازین را دانلود کنید، روی Get packages کلیک کنید.

پنجره‌ی VS Code که از شما می‌خواهد بسته‌های مورد نیاز برای برنامه‌ی آغازین را دانلود کنید.

  1. اگر پنجره‌ی VS Code که از شما می‌خواهد بسته‌های مورد نیاز برای برنامه‌ی آغازین را دانلود کنید، نمی‌بینید، ترمینال خود را باز کنید و سپس به پوشه‌ی step0 بروید و دستور flutter pub get اجرا کنید.

برنامه شروع کننده را اجرا کنید

  1. در VS Code، مطمئن شوید که شبیه‌ساز اندروید یا شبیه‌ساز iOS به درستی تنظیم شده و در نوار وضعیت نمایش داده می‌شود.

برای مثال، وقتی از Pixel 5 با شبیه‌ساز اندروید استفاده می‌کنید، این چیزی است که می‌بینید:

نوار وضعیت با Pixel 5 که به عنوان دستگاه انتخاب شده است

این چیزی است که هنگام استفاده از آیفون ۱۳ با شبیه‌ساز iOS می‌بینید:

نوار وضعیت با آیفون ۱۳ که به عنوان دستگاه انتخاب شده است

  1. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید . برنامه روی شبیه‌ساز اندروید یا شبیه‌ساز iOS شما اجرا می‌شود.

برنامه شروع کننده را بررسی کنید

در برنامه‌ی آغازین، به موارد زیر توجه کنید:

  • رابط کاربری (UI) بسیار سرراست است.
  • یک منوی کشویی وجود دارد که به کاربران اجازه می‌دهد یک محصول خاص گوگل را انتخاب کنند.
  • پس از اینکه کاربران دکمه‌ی «تولید هایکو!» را انتخاب کردند، برنامه‌ی فلاتر اعلان داخلی را به نقطه‌ی پایانی API مربوط به PaLM ارسال می‌کند که هایکو تولید می‌کند.
  • برنامه پس از دریافت پاسخ، هایکوهای تولید شده را در ویجت متن نمایش می‌دهد. با این حال، اگر گزینه‌ی «تولید هایکو!» را انتخاب کنید، هیچ اتفاقی نمی‌افتد زیرا برنامه هنوز نمی‌تواند با API مربوط به PaLM ارتباط برقرار کند.

برنامه شروع کننده در iOSبرنامه شروع کننده در اندروید

۳. دسترسی به API پال‌ام (PaLM) را تنظیم کنید

برای استفاده از API مربوط به PaLM به یک کلید API نیاز دارید. در زمان انتشار این codelab، API مربوط به PaLM هنوز در مرحله پیش‌نمایش خصوصی است.

  • برای تنظیم دسترسی خود به API مربوط به PaLM، مستندات را برای ایجاد یک کلید API دنبال کنید و سپس کلید را برای استفاده بعدی در این آزمایشگاه کد یادداشت کنید.

۴. منویی از محصولات گوگل اضافه کنید

هدف شما تولید هایکو برای محصولات گوگل است. در زمان اجرا، کاربر برنامه می‌تواند به صورت پویا محصولی را از فهرست از پیش پر شده‌ای از نام محصولات انتخاب کند.

برای افزودن فهرستی از محصولات گوگل به برنامه، مراحل زیر را دنبال کنید:

  1. در VS Code، به فایل step1/lib/data/repositories/product_repository_impl.dart بروید.
  2. در بدنه تابع getAllProducts() ، متغیر زیر را که آرایه‌ای از نام محصولات گوگل را ذخیره می‌کند، اضافه کنید:

مخزن_محصول_ایمپِل .dart

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

۵. درخواست را به API مربوط به PaLM ارسال کنید و پاسخ را رمزگشایی کنید.

نام محصول انتخاب شده توسط کاربر با الگوی اعلان زیر ترکیب می‌شود:

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

برای ارسال این درخواست به نقطه پایانی API پال‌ام برای تولید هایکو، این مراحل را دنبال کنید:

  1. در VS Code، به فایل 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 را با کلید API خود از قبل جایگزین کنید..

پس از دریافت و رمزگشایی موفقیت‌آمیز پاسخ، ویجت متن در رابط کاربری، هایکوهای تولید شده را رندر می‌کند.

۶. اجرای اپلیکیشن روی پلتفرم‌های موبایل

  1. در VS Code، دستگاه هدف را روی یک دستگاه اندروید یا iOS تنظیم کنید.
  2. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید.
  3. یک محصول را از منوی کشویی انتخاب کنید و سپس گزینه‌ی «تولید هایکو!» را انتخاب کنید. برنامه یک هایکو درباره‌ی محصول انتخاب‌شده نمایش می‌دهد.

برنامه نهایی در iOSبرنامه نهایی در اندروید

۷. برنامه را روی پلتفرم‌های دسکتاپ اجرا کنید

علاوه بر اندروید و iOS، فلاتر از پلتفرم‌های دسکتاپ از جمله لینوکس، macOS و ویندوز نیز پشتیبانی می‌کند.

اجرای برنامه در لینوکس

  1. در VS Code، دستگاه هدف را روی Linux (linux-x64) تنظیم کنید.
  2. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید.
  3. از منوی کشویی، محصولی را انتخاب کنید و سپس گزینه‌ی «تولید هایکو!» را انتخاب کنید.

برنامه نهایی در لینوکس

اجرای برنامه در macOS

برای macOS، باید مجوزهای مناسب را تنظیم کنید زیرا برنامه درخواست‌های HTTP را به backend ارسال می‌کند. برای اطلاعات بیشتر، به Entitlements و App Sandbox مراجعه کنید.

برای اجرای برنامه در 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 Code، دستگاه هدف را روی macOS (darwin) تنظیم کنید.
  2. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید.
  3. از منوی کشویی، محصولی را انتخاب کنید و سپس گزینه‌ی «تولید هایکو!» را انتخاب کنید.

برنامه نهایی در macOS

اجرای برنامه در ویندوز

  1. در VS Code، دستگاه هدف را روی Windows (windows-x64) تنظیم کنید.
  2. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید.
  3. از منوی کشویی، محصولی را انتخاب کنید و سپس گزینه‌ی «تولید هایکو!» را انتخاب کنید.

برنامه‌ی نهایی روی ویندوز

۸. برنامه را روی پلتفرم وب اجرا کنید

همچنین می‌توانید پشتیبانی وب را به برنامه Flutter اضافه کنید. به طور پیش‌فرض، پلتفرم وب به طور خودکار برای برنامه‌های Flutter فعال است، بنابراین تنها کاری که باید انجام دهید این است که آن را اجرا کنید.

برای اجرای برنامه در پلتفرم وب، مراحل زیر را دنبال کنید:

  1. در VS Code، دستگاه هدف را روی Chrome (web-javascript) تنظیم کنید.
  2. کلیک a19a0c68bc4046e6.png اشکال‌زدایی را شروع کنید و سپس منتظر بمانید تا برنامه در گوگل کروم بارگذاری شود.
  3. از منوی کشویی، محصولی را انتخاب کنید و سپس گزینه‌ی «تولید هایکو!» را انتخاب کنید.

برنامه نهایی در وب

۹. تبریک

شما یک برنامه‌ی کامل ساختید که هایکوهایی درباره‌ی محصولات گوگل تولید می‌کند! اگرچه این برنامه فقط برای محصولات منتخب گوگل هایکو تولید می‌کند، اما می‌توانید به راحتی متن را تغییر دهید و متن دلخواه خود را تولید کنید. حالا که می‌دانید چگونه از API مربوط به PaLM استفاده کنید، می‌توانید با قدرت باورنکردنی LLMها برنامه‌های شگفت‌انگیزی بسازید!

بیشتر بدانید