۱. قبل از شروع
یکی از هیجانانگیزترین پیشرفتهای یادگیری ماشین (ML)، هوش مصنوعی مولد است که میتواند تصاویر، متن، صدا و حتی ویدیوی شگفتانگیزی را بر اساس متن ساده یا درخواستهای کاربران تولید کند. گوگل به طور خاص با انتشار API PaLM ، به توسعهدهندگان این امکان را میدهد تا دستههایی از برنامهها را با تجربیات کاربری لذتبخش که با فناوری PaLM بازآفرینی شدهاند، بسازند.
در این آزمایشگاه کد، شما برنامهای میسازید که از API مربوط به PaLM برای تولید هایکو بر اساس نام محصولات گوگل استفاده میکند. همچنین از Flutter برای ایجاد یک برنامه چند پلتفرمی که هایکوها را نمایش میدهد، استفاده میکنید.
پیشنیازها
- دانش پایه در مورد مدلهای زبان بزرگ (LLM)، مانند دستورالعملها
- دانش پایه توسعه Flutter با Dart
آنچه یاد خواهید گرفت
- نحوه استفاده از API مربوط به PaLM از گوگل.
- چگونه یک برنامه چند پلتفرمی Flutter بسازیم که نتایج را نمایش دهد.
آنچه نیاز دارید
- کیت توسعه نرمافزار فلاتر
- یک ویرایشگر متن ، مانند ویژوال استودیو کد (VS Code)
- تنظیمات VS Code برای Flutter و Dart
- تنظیمات اندروید یا iOS برای Flutter (شامل شبیهسازها و امولاتورها)
- تنظیمات دسکتاپ برای Flutter برای ویندوز، لینوکس یا macOS
- راهاندازی وب برای فلاتر
- یک کلید API برای API مربوط به PaLM
۲. آماده شوید
کد شروع را دانلود کنید
- به این مخزن گیتهاب بروید.
- برای دانلود تمام کدهای این codelab، روی Code > Download zip کلیک کنید.
- فایل زیپ دانلود شده را از حالت فشرده خارج کنید تا پوشه ریشه
codelabs-mainاز حالت فشرده خارج شود. شما فقط به زیرشاخهhaiku-generatorنیاز دارید که شامل پوشههای زیر است:
- پوشههای
step0تاstep3، که شامل کد آغازینی هستند که برای هر مرحله در این آزمایشگاه کد، بر اساس آن کد میسازید. - پوشهی
finished، که شامل کد تکمیلشده برای برنامهی نمونهی نهایی است.
دانلود وابستگیهای پروژه
- در VS Code، روی File > Open folder > codelabs-main > haiku_generator > step0 > lib > main.dart کلیک کنید.
- اگر پنجرهی VS Code را مشاهده کردید که از شما میخواهد بستههای مورد نیاز برای برنامهی آغازین را دانلود کنید، روی Get packages کلیک کنید.

- اگر پنجرهی VS Code که از شما میخواهد بستههای مورد نیاز برای برنامهی آغازین را دانلود کنید، نمیبینید، ترمینال خود را باز کنید و سپس به پوشهی
step0بروید و دستورflutter pub getاجرا کنید.
برنامه شروع کننده را اجرا کنید
- در VS Code، مطمئن شوید که شبیهساز اندروید یا شبیهساز iOS به درستی تنظیم شده و در نوار وضعیت نمایش داده میشود.
برای مثال، وقتی از Pixel 5 با شبیهساز اندروید استفاده میکنید، این چیزی است که میبینید:

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

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


۳. دسترسی به API پالام (PaLM) را تنظیم کنید
برای استفاده از API مربوط به PaLM به یک کلید API نیاز دارید. در زمان انتشار این codelab، API مربوط به PaLM هنوز در مرحله پیشنمایش خصوصی است.
- برای تنظیم دسترسی خود به API مربوط به PaLM، مستندات را برای ایجاد یک کلید API دنبال کنید و سپس کلید را برای استفاده بعدی در این آزمایشگاه کد یادداشت کنید.
۴. منویی از محصولات گوگل اضافه کنید
هدف شما تولید هایکو برای محصولات گوگل است. در زمان اجرا، کاربر برنامه میتواند به صورت پویا محصولی را از فهرست از پیش پر شدهای از نام محصولات انتخاب کند.
برای افزودن فهرستی از محصولات گوگل به برنامه، مراحل زیر را دنبال کنید:
- در VS Code، به فایل
step1/lib/data/repositories/product_repository_impl.dartبروید. - در بدنه تابع
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 پالام برای تولید هایکو، این مراحل را دنبال کنید:
- در VS Code، به فایل
step2/lib/data/repositories/poem_repository_impl.dartبروید. - در بدنهی تابع
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 خود از قبل جایگزین کنید..
پس از دریافت و رمزگشایی موفقیتآمیز پاسخ، ویجت متن در رابط کاربری، هایکوهای تولید شده را رندر میکند.
۶. اجرای اپلیکیشن روی پلتفرمهای موبایل
- در VS Code، دستگاه هدف را روی یک دستگاه اندروید یا iOS تنظیم کنید.
- کلیک
اشکالزدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید. - یک محصول را از منوی کشویی انتخاب کنید و سپس گزینهی «تولید هایکو!» را انتخاب کنید. برنامه یک هایکو دربارهی محصول انتخابشده نمایش میدهد.


۷. برنامه را روی پلتفرمهای دسکتاپ اجرا کنید
علاوه بر اندروید و iOS، فلاتر از پلتفرمهای دسکتاپ از جمله لینوکس، macOS و ویندوز نیز پشتیبانی میکند.
اجرای برنامه در لینوکس
- در VS Code، دستگاه هدف را روی Linux (linux-x64) تنظیم کنید.
- کلیک
اشکالزدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید. - از منوی کشویی، محصولی را انتخاب کنید و سپس گزینهی «تولید هایکو!» را انتخاب کنید.

اجرای برنامه در macOS
برای macOS، باید مجوزهای مناسب را تنظیم کنید زیرا برنامه درخواستهای HTTP را به backend ارسال میکند. برای اطلاعات بیشتر، به Entitlements و App Sandbox مراجعه کنید.
برای اجرای برنامه در macOS، مراحل زیر را دنبال کنید:
- در فایلهای
step3/macos/Runner/DebugProfile.entitlementsوstep3/macos/Runner/Release.entitlements، کد زیر را اضافه کنید:
DebugProfile.entitlements | Release.entitlements
<key>com.apple.security.network.client</key>
<true/>
- در VS Code، دستگاه هدف را روی macOS (darwin) تنظیم کنید.
- کلیک
اشکالزدایی را شروع کنید و سپس منتظر بارگذاری برنامه باشید. - از منوی کشویی، محصولی را انتخاب کنید و سپس گزینهی «تولید هایکو!» را انتخاب کنید.

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

۸. برنامه را روی پلتفرم وب اجرا کنید
همچنین میتوانید پشتیبانی وب را به برنامه Flutter اضافه کنید. به طور پیشفرض، پلتفرم وب به طور خودکار برای برنامههای Flutter فعال است، بنابراین تنها کاری که باید انجام دهید این است که آن را اجرا کنید.
برای اجرای برنامه در پلتفرم وب، مراحل زیر را دنبال کنید:
- در VS Code، دستگاه هدف را روی Chrome (web-javascript) تنظیم کنید.
- کلیک
اشکالزدایی را شروع کنید و سپس منتظر بمانید تا برنامه در گوگل کروم بارگذاری شود. - از منوی کشویی، محصولی را انتخاب کنید و سپس گزینهی «تولید هایکو!» را انتخاب کنید.

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