1. بررسی اجمالی
آخرین به روز رسانی: 2023-10-10
چیزی که خواهی ساخت
در این کد لبه، شما از Vertex AI Conversation و Dialogflow CX برای ساخت، استقرار و پیکربندی یک عامل مجازی برای کمک به افرادی که میخواهند خون اهدا کنند و اطمینان حاصل کنند که الزامات واجد شرایط بودن را برآورده میکنند، استفاده میکنید. این نماینده از دادههای عمومی واقعی و مدلهای زبان بزرگ (LLM) Google در طول انجام Dialogflow CX استفاده خواهد کرد.
از چه ویژگی هایی استفاده خواهید کرد
برای تکمیل کد لبه، سه ویژگی متمایز را پیکربندی و استفاده خواهید کرد:
عوامل ذخیره داده
ویژگی Vertex AI Conversation یک عامل خاص Dialogflow ایجاد می کند که عامل ذخیره داده نامیده می شود.
با استفاده از این ویژگی، شما یک URL وب سایت، داده های ساختاریافته یا داده های بدون ساختار (ذخیره های داده) را ارائه می دهید، سپس Google محتوای شما را تجزیه می کند و یک عامل مجازی ایجاد می کند که از فروشگاه های داده و مدل های زبان بزرگ پشتیبانی می کند. سپس مشتریان و کاربران نهایی شما می توانند با نماینده گفتگو کرده و در مورد محتوا سؤال بپرسند. برای اطلاعات در مورد این نوع عامل به مقدمه Vertex AI Conversation مراجعه کنید.
ژنراتورها
ویژگی مولد یک ویژگی Dialogflow CX است که به توسعهدهندگان اجازه میدهد از آخرین مدلهای زبان بزرگ (LLM) و درخواستهای سفارشی برای تولید پاسخهای عامل در زمان اجرا استفاده کنند. یک مولد میتواند پاسخهای عمومی را که شامل دانش کلی از مجموعه دادههای متنی بزرگی است که روی آن آموزش داده شده است یا زمینهای از مکالمه را شامل میشود.
بازگشتی مولد
ویژگی بازگشتی مولد از آخرین مدلهای زبان بزرگ (LLM) Google برای ایجاد پاسخهای عامل مجازی زمانی که ورودی کاربر نهایی با هدف یا پارامتری برای پر کردن فرم مطابقت ندارد، استفاده میکند. این ویژگی را می توان با یک پیام متنی پیکربندی کرد که به LLM نحوه پاسخگویی را آموزش می دهد. می توانید از یک درخواست متنی از پیش تعریف شده استفاده کنید یا درخواست های خود را اضافه کنید. میتوانید بازگردانی مولد را در کنترلکنندههای رویداد بدون تطابق که در جریانها، صفحات یا در طول پر کردن پارامتر استفاده میشوند، فعال کنید. هنگامی که بازگشت مولد برای یک رویداد بدون تطابق فعال است، هر زمان که آن رویداد راهاندازی شود، Dialogflow تلاش میکند تا یک پاسخ تولید شده را تولید کند که به کاربر گفته شود. اگر تولید پاسخ ناموفق باشد، به جای آن، پاسخ عامل تجویز شده معمولی صادر خواهد شد. اگر مایل به یادگیری بیشتر در مورد جایگزینی مولد هستید ، این نرم افزار کد را امتحان کنید!
چیزی که یاد خواهید گرفت
- نحوه ایجاد یک عامل ذخیره داده از داده های بدون ساختار
- نحوه استفاده از کنترلکنندههای دانش برای اجازه دادن به کاربران نهایی برای گفتگو با یک عامل مجازی درباره محتوای اضافه شده به یک فروشگاه داده.
- نحوه پیکربندی یک اعلان متن مولد و آن را با استفاده از متغیرهای اعلانات مولد داخلی ایجاد کنیم.
- نحوه علامتگذاری کلمات بهعنوان مکانبانهای اعلانات مولد و بعداً آنها را با پارامترهای جلسه مرتبط کنیم تا از مقادیر آنها در طول اجرا استفاده کنیم.
- نحوه پیکربندی یک مولد برای رسیدگی به پاسخ هایی که شامل دانش یک مجموعه داده متنی بزرگ و زمینه از مکالمه فعلی است.
- نحوه ایجاد یک ایمیل رسمی با استفاده از ژنراتورها
- چگونه نماینده خود را آزمایش کنید و سوالات مشتری را شبیه سازی کنید که باعث پاسخ های ایجاد شده می شود
آنچه شما نیاز دارید
- یک پروژه Google Cloud
- مرورگری مانند کروم
2. API ها را فعال کنید
قبل از اینکه بتوانید یک عامل ذخیره داده در Vertex AI Conversation ایجاد کنید، باید Dialogflow و همچنین Vertex AI Search and Conversation API را فعال کنید.
برای فعال کردن Dialogflow API، مراحل زیر را دنبال کنید:
- در مرورگر خود، به صفحه جزئیات سرویس Dialogflow API بروید.
- روی دکمه Enable کلیک کنید تا Dialogflow API در پروژه Google Cloud شما فعال شود.
برای فعال کردن Vertex AI Search and Conversation API، مراحل زیر را دنبال کنید:
- در کنسول Google Cloud، به کنسول Vertex AI Search and Conversation بروید.
- شرایط خدمات را بخوانید و با آن موافقت کنید، سپس روی Continue کلیک کنید و API را فعال کنید .
3. یک برنامه چت جدید و یک فروشگاه داده برای برنامه خود ایجاد کنید
اکنون، یک برنامه چت جدید برای عامل مجازی خود ایجاد کرده و آن را با یک منبع داده پیکربندی خواهید کرد. هدف نماینده ای که می سازید کمک به مشتریانی است که در مورد واجد شرایط بودن خون سؤالاتی دارند. شما از صلیب سرخ استرالیا Lifeblood به عنوان منبع حقیقت استفاده خواهید کرد و یک فروشگاه داده بر اساس داده های بدون ساختار از وب سایت واجد شرایط خون ایجاد خواهید کرد.
- برای ایجاد یک برنامه چت جدید در Vertex AI Conversation، می توانید یکی از موارد زیر را انجام دهید:
- به کنسول Vertex AI Conversation بروید، سپس روی +New app نزدیک بالای کنسول کلیک کنید.
- به کنسول Dialogflow CX بروید، روی +Create new agent کلیک کنید و سپس گزینه Auto-generate را انتخاب کنید، سپس به مرحله زیر در کنسول Vertex AI Conversation هدایت خواهید شد.
- از کنسول Vertex AI Conversation، Chat را به عنوان نوع برنامه ای که می خواهید ایجاد کنید انتخاب کنید.
- نام شرکت
Save a Life
را وارد کنید. این پارامتر برای تعریف شرکتی که نماینده شما نمایندگی می کند و محدوده نمایندگی شما استفاده می شود. - نام نماینده
Blood Donation Agent
را مشخص کنید. - روی Continue کلیک کنید.
- روی ایجاد فروشگاه داده جدید کلیک کنید.
- Cloud Storage را به عنوان منبع داده برای ذخیره داده خود انتخاب کنید.
- پوشه Google Cloud Storage زیر را که حاوی داده های نمونه برای این Codelab است مشخص کنید و توجه داشته باشید که پیشوند
gs://
لازم نیست:cloud-samples-data/dialogflow-cx/arc-lifeblood
- اسناد بدون ساختار را به عنوان نوع داده ای که وارد می کنید انتخاب کنید.
- روی Continue کلیک کنید.
- نام فروشگاه داده
Australian Red Cross Lifeblood Unstructured
مشخص کنید. - برای ایجاد فروشگاه داده روی Create کلیک کنید.
- در فهرست فروشگاههای داده،
Australian Red Cross Lifeblood Unstructured
انتخاب کنید. - برای ایجاد برنامه چت خود روی Create کلیک کنید.
تبریک می گویم! ساختن برنامه چت مبتنی بر دانش خود را که آماده کمک به اهداکنندگان بالقوه است، به پایان رسانده اید، پس لحظه ای برای جشن گرفتن وقت بگذارید!
اما هنوز کارهای بیشتری باید انجام شود تا عامل در دسترس کاربران شما باشد. در بخش بعدی، از یک کنترل کننده دانش برای فعال کردن مکالمات بین نماینده و کاربران نهایی در مورد الزامات واجد شرایط بودن استفاده خواهید کرد.
4. عامل را برای پاسخ به سؤالات متداول واجد شرایط بودن خون پیکربندی کنید
درخواست فروشگاه تاریخ را ارائه دهید
در حالی که فرآیند جمعآوری اسناد در پسزمینه اجرا میشود، بیایید با ویرایش درخواست ذخیره داده، یک نام تجاری به نماینده بدهیم.
- از کنسول Vertex AI Conversation، روی نام برنامه چت خود کلیک کنید، که شما را برای آزمایش و سفارشیسازی بیشتر به کنسول Dialogflow CX هدایت میکند.
- در کنسول Dialogflow CX و از داخل نماینده خود، روی تنظیمات نماینده (گوشه سمت راست بالای صفحه) کلیک کنید، سپس به تب ML بروید و در آخر تب Generative AI را باز کنید.
- فرم زیر را پر کنید تا درخواست ذخیره داده زیر را ایجاد کنید: نام شما
Donate
است و یکchatbot
مفید و مؤدبانه درSave a life, a fictitious organization
هستید. وظیفه شما کمک بهhumans with eligibility information
است.
برای رویداد بدون تطابق جریان شروع پیشفرض، بازگردانی مولد را فعال کنید
- به تب Build بروید و صفحه شروع را باز کنید.
- روی کنترل کننده رویداد sys.no-match-default کلیک کنید. مگر اینکه کادر قبلاً علامت زده شده باشد، ویژگی بازگشتی مولد را فعال کنید.
ذخیره اطلاعات نماینده را بررسی کنید
در صفحه شروع ، روی Edit data stores کلیک کنید تا به تنظیمات ذخیره داده نگاه کنید.
ذخیره داده ای که قبلا ایجاد کرده اید قبلاً توسط Dialogflow برای شما انتخاب شده است.
به پایین بروید و به پاسخ های عامل در زیر انجام دهید . تحقق پاسخ عامل به کاربر نهایی است. Dialogflow از قبل پر شده است. Agent می گوید با پارامتر $request.knowledge.answers[0]
که در زمان اجرا حاوی بالاترین پاسخ به سؤال کاربر است.
5. عامل را تست کنید
هنگامی که اسناد موجود و آماده برای استفاده توسط نماینده شما هستند، بررسی کنید که چقدر پاسخ ها خوب هستند.
روی Test Agent کلیک کنید تا شبیه ساز دوباره باز شود.
سوالاتی را که انتظار دارید در صفحه سوالات متداول وب سایت پیدا کنید بپرسید:
-
What age do I need to be to donate?
-
Can pregnant women donate?
-
I've just come back from a trip to Africa. Can I donate?
-
How can I schedule an appointment?
توجه داشته باشید که پاسخ ها از سایت Lifeblood صلیب سرخ استرالیا بازیابی شده است. همانطور که در این صفحه گفته شد حداقل و حداکثر سن برای اهدای خون وجود دارد. حداقل سن 18 سال و حداکثر سن 75 سال برای اهداکنندگان بار اول است. شواهد بیشتری از این واقعیت که ما اطلاعات را از ذخیرهگاه دادهها استخراج میکنیم، با نماد ستاره کوچکی که روی پاسخ عامل ظاهر میشود و پاسخ اصلی JSON ارائه میشود.
در آخر، بیایید سعی کنیم نماینده را با یک سوال کاملاً غیر مرتبط با اهدای خون به چالش بکشیم.
کاربر: "آب و هوا در ملبورن چگونه است؟"
نماینده: "متاسفم، من نمی توانم در این مورد به شما کمک کنم. چگونه می توانم در مورد اطلاعات واجد شرایط بودن به شما کمک کنم؟"
این پاسخ حاوی محتوایی است که هوش مصنوعی در آن تولید کرده است و از پیام متنی که Dialogflow ایجاد کرده است، از تنظیمات رابط دانش ارائه شده قبلاً ایجاد کرده است: "نام شما Donate است و شما یک ربات گفتگوی مفید و مؤدبانه در Save a Life هستید. وظیفه شما این است که به انسان ها با اطلاعات واجد شرایط بودن کمک کنید . " این اعلان متنی حاوی نام شرکت، نام عامل و مهمتر از همه مواردی است که در محدوده آن است که توسط Dialogflow برای تولید پاسخ عامل استفاده می شود.
آفرین! تاکنون از فروشگاه داده برای کمک به افرادی که سوالات متداول مربوط به اهدای خون میپرسند استفاده میکنید. در بخش بعدی از نرمافزار کد، به نحوه اتصال یک متن مولد به همان محتوا برای تصمیمگیری آگاهانه نگاه خواهیم کرد.
6. نماینده را برای مسابقه واجد شرایط بودن تنظیم کنید
وظیفه بعدی ما طراحی عاملی برای تعیین صلاحیت کاربر برای اهدای خون است. الزامات سختی وجود دارد که اهداکنندگان باید از جمله سن، وزن، شرایط موجود، سفرهای اخیر و غیره داشته باشند. یک مولد از مدلهای زبان بزرگ Google (LLM) استفاده میکند تا به صورت پویا تصمیمی آگاهانه بر اساس زمینه مکالمه و پایگاه دانش اتخاذ کند.
مسیرها و پارامترهای جدید را پیکربندی کنید
- صفحه شروع را باز کنید و روی Edit data stores کلیک کنید
- پاسخ نماینده موجود را به
$request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?
.
- روی دکمه ذخیره کلیک کنید
- اکنون باید عاملی را طراحی کنیم تا پاسخهای «بله» و «نه» را مدیریت کند. برای شروع، یک قصد confirmation.yes و یک intent confirmation.no ایجاد کنید. این دستورالعمل ها را در مورد استفاده مجدد از قصد دنبال کنید.
- سپس در صفحه شروع ، مسیری را برای intent confirmation.yes ایجاد کنید که به یک صفحه جدید امتحان واجد شرایط بودن منتقل می شود.
- همانطور که قبلا ذکر شد، ما مسابقه را ساده می کنیم و فقط سن و وزن کاربر را در نظر می گیریم تا مشخص کنیم آیا واجد شرایط اهدا هستند یا خیر. صفحه آزمون واجد شرایط بودن را باز کنید و یک پارامتر فرم جدید age-weight اضافه کنید،
@sys.any
را به عنوان نوع موجودیت انتخاب کنید."What is your age and weight?"
به عنوان انجام سریع اولیه ما می خواهیم هم سن و هم وزن را یکجا جمع آوری کنیم. تمام تغییرات را ذخیره کنید.
مولد واجد شرایط بودن را ایجاد و پیکربندی کنید
ویژگی مولد یک ویژگی Dialogflow CX است که به توسعهدهندگان اجازه میدهد از آخرین مدلهای زبان بزرگ (LLM) Google در طول انجام Dialogflow CX استفاده کنند. مولدهایی برای تولید پاسخ های عامل در زمان اجرا. یک مولد میتواند پاسخهای عمومی را که شامل دانش کلی از مجموعه دادههای متنی بزرگی است که روی آن آموزش داده شده است یا زمینهای از مکالمه را شامل میشود.
ما یک مولد جدید ایجاد خواهیم کرد که اطلاعات ارائه شده توسط کاربر (مانند سن و وزن) را با شرایط واجد شرایط بودن مقایسه می کند تا مشخص شود آیا کاربر می تواند کمک مالی کند یا خیر.
- در کنسول Dialogflow CX به تب Manage بروید، Generators را انتخاب کنید و روی Create new کلیک کنید.
- در مرحله بعد، یک نام نمایشی توصیفی ارائه دهید و دستور متن را بنویسید. تنظیمات کنترل کیفیت مدل پیش فرض را رها کنید. سپس روی Save کلیک کنید تا ژنراتور ایجاد شود.
- نام نمایشی:
Blood Donation Eligibility
- اعلان متنی:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)
- نام نمایشی:
اعلان متن در حین تکمیل در زمان اجرا به مدل مولد ارسال می شود. این باید یک سوال یا درخواست واضح باشد تا مدل پاسخ رضایت بخشی ایجاد کند. میتوانید از متغیرهای اعلانات داخلی خاص در اعلان متن خود استفاده کنید:
-
$conversation
مکالمه بین عامل و کاربر، به استثنای آخرین اظهارات کاربر. -
$last-user-utterance
آخرین گفته کاربر.
درخواست متنی که پیکربندی کردهاید از کاربر انتظار دارد که سن و وزن را در یک نوبت مکالمه ارائه کند ("$last-user-utterance").
از ژنراتور در تکمیل استفاده کنید و تمام پارامترهای مورد نیاز را پیکربندی کنید
- در صفحه آزمون واجد شرایط بودن ، یک مسیر جدید اضافه کنید که زمانی رخ می دهد که تمام پارامترها پر شوند. شرط شرط
$page.params.status = "FINAL"
را وارد کنید و روی ذخیره کلیک کنید.
- به بخش Generators در قسمت Fulfillment بروید و آن را گسترش دهید. سپس، روی افزودن ژنراتور کلیک کنید و مولد صلاحیت اهدای خون را انتخاب کنید. پس از انتخاب ژنراتور باید پارامتر خروجی را تعریف کنید که حاوی نتیجه ژنراتور پس از اجرا باشد.
- از پارامتر خروجی در پاسخ عامل استفاده کنید و مسیر را ذخیره کنید. اکنون برای آزمایش همه آن آماده هستید.
7. نماینده خود را مجدداً آزمایش کنید
روی Test Agent کلیک کنید تا شبیه ساز دوباره باز شود.
در Simulator مکالمه جدیدی را با عامل شروع کنید. ابتدا در مورد شرایط سنی بپرسید و سپس به مسابقه واجد شرایط بودن بروید. ابتدا مسیر "واجد شرایط" را آزمایش کنید، بنابراین سن بین 18 تا 75 و وزن بالای 50 کیلوگرم را وارد کنید.
سپس بررسی کنید که بررسی صلاحیت زمانی که یکی یا هر دو الزامات برآورده نشده باشد، ناموفق است.
عالی است، ژنراتور همانطور که انتظار می رود کار می کند! یا این کار را می کند؟ چه اتفاقی میافتد اگر کاربر سن را ارائه کند اما وزن را ارائه ندهد (یا برعکس)؟
8. تنظیم سریع ژنراتور
جمع آوری سن و وزن در یک قبل به نظر نمی رسد کارساز باشد مگر اینکه هم سن و هم وزن ارائه شود. در عوض باید فرمی ایجاد کنیم که هر دو مقدار را به عنوان پارامترهای موجودیت جمع آوری کند. برای اینکه همه شرایط واجد شرایط بودن (مانند سن و وزن) را به صورت متنی مشخص کنیم، میتوانیم با اضافه کردن یک $ قبل از کلمه از متغیرهایی استفاده کنیم. ما بعداً این متغیرهای اعلان مولد را با پارامترهای جلسه در حال انجام مرتبط میکنیم و در حین اجرا با مقادیر پارامتر جلسه جایگزین میشوند.
- صفحه آزمون واجد شرایط بودن را باز کنید و دو پارامتر فرم جداگانه اضافه کنید: یکی برای وزن و دیگری برای سن.
@sys.number-integer
به عنوان نوع موجودیت انتخاب کنید و پارامترهای مورد نیاز را علامت بزنید. انجام سریع اولیه را ارائه دهید، مانندHow old are you?
وWhat is your correct weight?
. تمام تغییرات را ذخیره کنید.
- قبل از اینکه بتوانیم اعلان متن مولد را تغییر دهیم، زیرا میخواهیم دو مکاننمای سفارشی جدید اضافه کنیم، ابتدا باید ژنراتور را از تکمیل مسیر حذف کنیم. روی ذخیره کلیک کنید.
- به برگه مدیریت بروید، ژنراتورها را انتخاب کنید و پیام متنی ژنراتور صلاحیت اهدای خون را به روز کنید:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.
. روی ذخیره کلیک کنید.
توجه داشته باشید که ما نه تنها متن اعلانهای مربوط به پارامترهای فرم سن و وزن را به صورت متنی درآوردهایم، بلکه جمله آخر را نیز تغییر دادهایم تا بتوانیم یک ایمیل رسمی برای کاربر ایجاد کنیم که حاوی نتیجه رسمی آزمون واجد شرایط بودن است.
- در صفحه آزمون واجد شرایط بودن ، مسیر را انتخاب کنید و بخش Generators را در قسمت Fulfillment گسترش دهید. سپس، روی افزودن ژنراتور کلیک کنید و مولد صلاحیت اهدای خون را انتخاب کنید. پس از انتخاب مولد، باید متغیرهای سریع جدید را با پارامترهای جلسه مربوطه مرتبط کنید. علاوه بر این، باید پارامتر خروجی را دوباره تنظیم کنید. روی ذخیره کلیک کنید.
- دوباره نماینده را تست کنید. بررسی صلاحیت اکنون هم سن و هم وزن را در نظر می گیرد و عبارت از لحن مکالمه ای به پاسخی مودبانه تر تغییر کرده است که آماده ارسال بدون هیچ انسانی بالقوه است.
9. تبریک می گویم
آفرین برای تکمیل این کد لبه!
امروز ما ژنراتورها را در زمینه آزمونهای واجد شرایط بودن بررسی کرده ایم. دیدهاید که مولدها از LLM برای تولید پاسخهای عامل استفاده میکنند و هنگامی که توسط یک پایگاه دانش نیرو میگیرند، میتوانند تصمیمات آگاهانه بگیرند. مطمئنا موارد استفاده زیادی وجود دارد که می توان آنها را با استفاده از مولدها و فروشگاه های داده پیاده سازی کرد و ما نمی توانیم منتظر بمانیم تا با آنها آشنا شویم!
پاک کردن
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این کد لبه، می توانید پاکسازی زیر را انجام دهید:
- برای جلوگیری از هزینه های غیر ضروری Google Cloud، از کنسول Google Cloud برای حذف پروژه خود در صورت عدم نیاز استفاده کنید.
- اگر از یک پروژه Google Cloud موجود استفاده میکنید، منابعی را که ایجاد کردهاید حذف کنید تا از پرداخت هزینه به حساب خود جلوگیری کنید. برای اطلاعات بیشتر، به مراحل حذف یک برنامه مراجعه کنید.
- اگر میخواهید APIها را برای Vertex AI Conversation و Dialogflow غیرفعال کنید، به صفحه Discovery Engine API Service Details بروید و روی Disable API کلیک کنید و تأیید کنید، و به صفحه Dialogflow API Service Details بروید و روی Disable API کلیک کنید و تأیید کنید.
بیشتر بدانید
با این راهنماها و منابع به یادگیری در مورد هوش مصنوعی مکالمه و هوش مصنوعی مولد ادامه دهید:
- مستندات برای Dialogflow CX
- مقدمه ای بر Vertex AI Conversation
- یک عامل ذخیره داده ایجاد و استفاده کنید
- مستندات برای مکالمه Vertex AI
- هوش مصنوعی مولد در Google Cloud
مجوز
این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.