ساخت یک برنامه چت با استفاده از Conversational Analytics و Looker

۱. قبل از شروع

این آزمایشگاه کد شما را در استفاده از API تحلیل مکالمه‌ای (CA API) با Looker راهنمایی می‌کند تا بتوانید برنامه چت خود را برای جستجوی داده‌ها بسازید. برای به دست آوردن بیشترین ارزش، باید با BigQuery، Looker، LLMها و agentها و پایتون آشنا باشید.

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

بعد از دنبال کردن این مجموعه کد، شما موارد زیر را یاد خواهید گرفت:

  • نحوه استفاده از تحلیل مکالمه‌ای با Looker
  • نحوه راه‌اندازی و استفاده از برنامه شروع سریع پایتون Conversational Analytics (و نحوه عملکرد برنامه)
  • مزایای استفاده از Looker برای مدل‌سازی معنایی با استفاده از Conversational Analytics

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

برای تکمیل این آزمایشگاه کد، به موارد زیر نیاز دارید:

  • یک نمونه Looker با بلوک Looker داده‌های جمعیتی ASC نصب شده
  • دسترسی API و توسعه‌دهنده به نمونه Looker شما
  • یک محیط محلی با پایتون نسخه ۳.۱۱+، گیت و جی‌کلاود نصب شده.
  • یک پروژه ابری با این نقش‌های IAM که برای حساب کاربری شما تنظیم شده‌اند:
  • roles/bigquery.dataViewer نمایشگر داده‌های BigQuery
  • roles/bigquery.user کاربر BigQuery
  • roles/looker.instanceUser کاربر نمونه‌ی Looker

۲. برنامه چت خود را با BigQuery بسازید و امتحان کنید

بیایید ابتدا برنامه شروع سریع Conversational Analytics را با BigQuery به عنوان منبع داده راه‌اندازی و امتحان کنیم.

احراز هویت و فعال‌سازی APIهای ابری

  1. با حساب کاربری خود به صورت محلی احراز هویت کنید:
gcloud auth login
  1. فعال کردن APIهای پروژه ابری. لطفاً YOUR_PROJECT_ID را با شناسه پروژه گوگل ابری خود جایگزین کنید:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
  1. تنظیم اعتبارنامه‌های پیش‌فرض برنامه (ADC) و صورتحساب:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

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

  1. مخزن گیت‌هاب Quickstart را در محیط محلی خود کلون کنید. به مثال زیر توجه کنید:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. به دایرکتوری ca-api-quickstarts که کلون کرده‌اید بروید:
cd ca-api-quickstarts
  1. یک فایل secrets.toml در پوشه .streamlit ایجاد کنید. YOUR_LOOKER_CLIENT_ID و YOUR_LOOKER_CLIENT_SECRET باید شناسه کلاینت Looker شما و رمز کلاینت Looker از نمونه Looker شما باشند. محتوای فایل باید به شرح زیر باشد:
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"

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

cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
  1. پیش‌نیازهای پایتون برنامه‌ی شروع سریع را نصب کنید:
pip install -r requirements.txt
  1. برنامه شروع سریع را اجرا کنید:
streamlit run app.py
  1. آدرس https://localhost:8501 را در مرورگر مورد نظر خود باز کنید.

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

شما اکنون در صفحه عوامل برنامه شروع سریع هستید. هیچ عامل داده‌ای در دسترس نیست.

  1. حالا بیایید یک عامل داده ایجاد کنیم که در فرم Create Agent مانند یک دزد دریایی صحبت کند:
  2. فیلد نام نمایشی را تنظیم کنید:
Pirate BQ Agent
  1. فیلد دستورالعمل‌های سیستم را تنظیم کنید:
You are a pirate. Answer questions like a pirate
  1. گزینه BigQuery را انتخاب کنید.
  2. فیلد پروژه را تنظیم کنید:
bigquery-public-data
  1. فیلد Dataset را تنظیم کنید:
google_trends
  1. فیلد جدول را تنظیم کنید:
top_rising_terms
  1. ایجاد عامل را انتخاب کنید.
  1. حالا بیایید از طریق منوی اصلی سمت چپ به صفحه چت برویم. عامل تازه ایجاد شده ما برای چت در دسترس است. بیایید با اضافه کردن یک پیام/پیام "سلام، حالتان چطور است؟" چت را شروع کنیم.
  2. حالا بیایید کمی در مورد این مجموعه داده یاد بگیریم: «این مجموعه داده در مورد چیست؟»
  1. یک سوال دیگر بپرسید - چیزی شبیه به این:
  2. «کدام مکان‌ها [نام ایالت] در مجموعه داده‌ها وجود دارند؟»
  3. «می‌توانید داده‌های دو هفته گذشته برای [شهر، ایالت] را به من بدهید؟»
  4. «می‌توانی یک تصویرسازی ذهنی ایجاد کنی؟»

شما همین الان یک مکالمه چند مرحله‌ای با عامل داده و داده‌های BigQuery خود در برنامه چت خودتان داشتید.

۳. داده‌ها را در Looker مدل‌سازی و کاوش کنید

حالا بیایید همان داده‌های BigQuery را در Looker مدل‌سازی و بررسی کنیم.

جستجوی داده‌های سرشماری BigQuery

وقتی به یک مجموعه داده رابطه‌ای بزرگتر متصل می‌شویم چه اتفاقی می‌افتد؟ ابتدا یک عامل جدید ایجاد می‌کنیم.

  1. به فرم ایجاد نماینده در صفحه نمایندگان برگردید.
  2. فیلد نام نمایشی را تنظیم کنید:
BQ Census Agent
  1. فیلد دستورالعمل‌های سیستم را تنظیم کنید:
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
  1. گزینه BigQuery را انتخاب کنید.
  2. فیلد پروژه را تنظیم کنید:
bigquery-public-data
  1. فیلد Dataset را تنظیم کنید:
census_bureau_acs
  1. فیلد جدول را تنظیم کنید:
blockgroup_2018_5yr
  1. ایجاد عامل را انتخاب کنید.
  2. از عامل تازه ایجاد شده هر دو سوال زیر را بپرسید:
  3. «چه داده‌هایی دارید؟»
  4. «می‌توانید پیش‌نمایشی از داده‌های من را به من نشان دهید»؟

استفاده از Looker برای مدل‌سازی داده‌های سرشماری

حالا می‌خواهیم از یک مدل LookML برای تعریف داده‌های سرشماری BigQuery استفاده کنیم. ما مشکلاتی را که قبلاً دیدیم حل خواهیم کرد.

  1. به نمونه Looker خود وارد شوید
  2. با رفتن به منوی ناوبری اصلی سمت چپ، انتخاب گزینه Develop و سپس انتخاب marketplace_acs_census-v2 ، به فایل‌های بلوک داده‌های جمعیتی ACS خود بروید.
  3. بیایید نگاهی به نمای Looker بیندازیم. پوشه‌های imported_project ، acs_census-v2 و geography را باز کنید.
  4. در نهایت، فایل cbsa.view را باز کنید.
  5. در خط ۱۷، می‌توانیم ببینیم که LookML در حال ایجاد یک جدول مشتق شده است. به عبارت دیگر، این کد با اتصال دو مجموعه داده عمومی BigQuery، یکی با داده‌های سرشماری و دیگری با داده‌های مرز جغرافیایی، یک جدول ترکیبی جدید ایجاد می‌کند. LookML به ما این امکان را می‌دهد که با ایجاد یک جدول مشتق شده پایدار برای پرس و جو، چندین مجموعه داده را به هم متصل کنیم.

علاوه بر این، اتصال به جای دستورالعمل‌های سیستمی، در کد قابل نسخه‌بندی (LookML) تعریف می‌شود که توسعه عامل را مقیاس‌پذیرتر می‌کند. با LookML، می‌توانید فرضیات و محدودیت‌های خاصی را در مورد داده‌های خود تعریف کنید تا از کاربران خود در هنگام چت با داده‌های شما از طریق یک عامل داده پشتیبانی کنید.

داده‌های سرشماری مدل‌سازی‌شده‌ی Looker را بررسی کنید

بیایید یک کوئری سریع در Explore اجرا کنیم تا نشان دهیم که یک منبع داده متمرکز برای کوئری داریم.

  1. در منوی ناوبری اصلی سمت چپ، گزینه کاوش (Explore )، سپس بلوک داده‌های سرشماری (Census Data Block)، و در نهایت ایالت و شهرستان (State and County) را انتخاب کنید.
  2. گزینه تحصیلات > مدرک کاردانی را انتخاب کنید.
  3. ابعاد زیر را انتخاب کنید:
  4. جغرافیا > گروه بلوک
  5. جغرافیا > شهرستان > نام شهرستان
  6. جغرافیا > ایالت > ایالت .
  7. کوئری (بالا سمت راست) را اجرا کنید و اکنون خواهید دید که آن شناسه‌های جغرافیایی (به نام "گروه بلوک") اکنون با رشته‌های قابل خواندن توسط انسان مرتبط شده‌اند.
  8. برگه تجسم را باز کنید و این داده‌ها را در یک نقشه مشاهده خواهید کرد.

۴. برنامه چت Looker را امتحان کنید

حالا بیایید یک عامل داده برای Looker ایجاد کنیم.

  1. به فرم ایجاد نماینده در صفحه نماینده برنامه Quickstart خود بروید:
  2. فیلد نام نمایشی را تنظیم کنید:
Cartoon character data analyst
  1. فیلد System Instruction را تنظیم کنید:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
  1. گزینه‌ی «نگاه‌کننده» را انتخاب کنید.
  2. فیلد آدرس اینترنتی (URL) را روی آدرس اینترنتی (URL) نمونه‌ی مرورگر خود تنظیم کنید: "https://..."
  3. فیلد مدل را تنظیم کنید:
data_block_acs_bigquery
  1. فیلد کاوش را تنظیم کنید:
cbsa
  1. ایجاد عامل را انتخاب کنید.
  2. به صفحه چت بروید و نماینده تازه ایجاد شده را انتخاب کنید.
  3. بیایید با اضافه کردن یک پیام/سوال چت را شروع کنیم: «سلام، حالتان چطور است؟»
  4. بیایید از عامل بخواهیم مجموعه داده‌ها را توصیف کند: «چه داده‌هایی در دسترس دارید؟»
  5. بیایید چند سوال دیگر بپرسیم:
  6. «کدام شهرستان در نیویورک بیشترین جمعیت را دارد؟»
  7. «در مورد بیشترین تعداد فارغ‌التحصیلان دبیرستان به ازای هر نفر چطور؟»
  8. «می‌توانید جمعیت را بر اساس جنسیت و ایالت به من بدهید؟»
  9. «می‌خواهم نمودار میله‌ای از 10 ایالت پرجمعیت را ببینم؟»

۵. برنامه شروع سریع چه کارهای دیگری می‌تواند انجام دهد؟

شما الان:

  • برنامه چت را به صورت محلی تنظیم کنید
  • یک عامل داده BigQuery و یک عامل داده Looker ایجاد کرد.
  • با نمایندگان داده شما گفتگوهایی انجام شد
  • با مزایای مدل‌سازی معنایی Looker به عنوان زمینه‌ای برای چت‌هایتان آشنا شدید.

بیایید سایر قابلیت‌های برنامه‌ی شروع سریع (quickstart) را امتحان کنیم:

  1. صفحه وب برنامه شروع سریع را مجدداً بارگیری کنید و به صفحه چت بروید.
  2. شما می‌توانید مکالمات گذشته خود را به همراه تمام پیام‌های مربوط به آنها از هر دو عامل BigQuery و Looker خود مشاهده کنید. بخش جلویی برنامه، مکالمات یا پیام‌های گذشته را ذخیره نمی‌کند، بلکه آنها را از API CA دریافت می‌کند.
  1. اکنون به صفحه نمایندگان بروید و نماینده Looker خود را از لیست انتخاب کنید.
  2. در صورت تمایل می‌توانید پیکربندی‌های عامل را به‌روزرسانی کنید یا عامل را حذف کنید. هیچ عاملی در ظاهر برنامه ذخیره نمی‌شود.

۶. چالش‌های اختیاری و کاوش بیشتر

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

با رابط برنامه‌نویسی کاربردی CA و برنامه شروع سریع بیشتر آشنا شوید

چالش‌های اصلاح برنامه با شروع سریع

  • آیا با جاسازی Looker آشنا هستید؟ اگر چنین است، سعی کنید یک داشبورد Looker را در داخل برنامه Quickstart جاسازی کنید. استفاده از کامپوننت iframe مربوط به Streamlit را در نظر بگیرید.
  • یک مجموعه داده عمومی حاوی URL های ویدیو پیدا کنید و منطق رندر چت برنامه را برای نمایش یک ویدیو در چت به‌روزرسانی کنید.

۷. نتیجه‌گیری و نکات کلیدی

شما به پایان رسیدید! شما یک برنامه چت ساختید، عوامل داده ایجاد کردید و با داده‌های خود با استفاده از API تجزیه و تحلیل مکالمه‌ای چت کردید. بیایید برخی از قابلیت‌ها و مفاهیم کلیدی را مرور کنیم!

قابلیت‌های تحلیل مکالمه‌ای

ما بسیاری از قابلیت‌های تحلیل مکالمه‌ای مانند موارد زیر را پوشش داده‌ایم:

  • ایجاد، به‌روزرسانی، فهرست‌بندی، دریافت و حذف عامل‌های داده.
  • عامل‌های داده را به عنوان منبع داده به BigQuery یا Looker ارجاع دهید.
  • مکالمات و پیام‌های مربوط به آنها را ایجاد، فهرست و دریافت کنید.
  • مشخصات نمودار وگا را برای تجسم همه‌جانبه در مکالمات تولید کنید.
  • از پیام‌های گذشته در یک مکالمه به عنوان زمینه‌ای مفید برای پیام‌های آینده استفاده کنید.

مزایای استفاده از Looker با رابط برنامه‌نویسی کاربردی CA

Looker مدل‌سازی معنایی متمرکز، قابل آزمایش و قابل مدیریت از داده‌های شما را ارائه می‌دهد. Looker در ترکیب با تحلیل مکالمه‌ای، روشی مقیاس‌پذیر برای فراهم کردن زمینه برای عوامل داده شما فراهم می‌کند.

قدم بعدی چیست؟