نویسنده LookML با ابزارهای کدنویسی Agentic

۱. مقدمه

ابزارهای کدنویسی Agentic مبتنی بر اکوسیستم VS Code بسیار محبوب شده‌اند. Cursor و Antigravity تنها دو نمونه از این ابزارها هستند. این آزمایشگاه کد نشان می‌دهد که چگونه می‌توان LookML را با این ابزارهای کدنویسی نوشت.

کاری که انجام خواهید داد

در این آزمایشگاه کد، شما از افزونه‌ی VS Code مربوط به Looker برای تغییر یک مدل LookML به منظور اضافه کردن یک معیار جدید، آزمایش معیار جدید و سپس ساخت یک داشبورد LookML با استفاده از آن معیار جدید استفاده خواهید کرد. همه این کارها با فراخوانی یک Coding Agent انجام خواهد شد.

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

  • یک نمونه Looker که در آن شما امتیازات توسعه‌دهنده دارید.
  • آشنایی اولیه با Looker، شامل ایجاد یک پروژه جدید LookML ، مشاهده و تعامل با Explores در Looker .
  • یک API برای client_id و client_secret برای کاربر شما در نمونه Looker.
  • عامل کدگذاری مبتنی بر VS Code. برای این راهنما، ما از Antigravity استفاده خواهیم کرد.
  • یک حساب کاربری گیت‌هاب.
  • یک پروژه گوگل کلود با قابلیت BigQuery.

مخاطبان: توسعه‌دهندگان LookML، مهندسان داده و معماران.

۲. نمونه Looker خود را تنظیم کنید

ایجاد یک پروژه ابری گوگل

  1. در کنسول گوگل کلود ، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید .
  2. مطمئن شوید که صورتحساب برای پروژه ابری شما فعال است. یاد بگیرید که چگونه بررسی کنید که آیا صورتحساب در یک پروژه فعال است یا خیر .

اتصال Looker به منبع داده

  1. در Looker، در قسمت Admin به بخش Databases بروید و Connections را انتخاب کنید.
  2. روی افزودن اتصال در بالا سمت راست صفحه کلیک کنید.
  3. یک منبع داده جدید برای مجموعه داده Cymbal Gadgets ایجاد کنید. نام آن را cymbal_gadgets بگذارید. برای SQL Dialect، Google BigQuery Standard SQL انتخاب کنید. تصویر تنظیمات اتصال عمومی
  4. در صفحه بعد، نام پروژه گوگل کلود، نام پروژه ذخیره‌سازی looker-private-demo و نام مجموعه داده cymbal_gadgets وارد کنید. تصویر از تنظیمات پایگاه داده
  5. مقادیر پیش‌فرض را برای همه فیلدهای باقی‌مانده بپذیرید و فرآیند ایجاد منبع داده جدید را تکمیل کنید.
  6. در SQL Runner تأیید کنید که می‌توانید با اجرای دستور زیر، از مجموعه داده‌ها پرس‌وجو کنید.
    SELECT count(*)
    FROM looker-private-demo.cymbal_gadgets.transactions
    

پروژه را از گیت‌هاب ایمپورت کنید

  1. پروژه https://github.com/looker-open-source/cymbal_gadgets را از گیت‌هاب به مخزن خودتان فورک کنید. شما نمی‌توانید کلید استقرار را به پروژه‌ای که متعلق به خودتان نیست اضافه کنید، بنابراین فورک کردن برای پیوند دادن پروژه به Looker ضروری است.
  2. حالت توسعه را فعال کنید.
  3. توسعه و سپس پروژه‌ها را انتخاب کنید.
  4. از صفحه پروژه‌های LookML، روی New Model کلیک کنید.
  5. برای استفاده از صفحه قدیمی ایجاد مدل LookML، روی لینک کلیک کنید. تصویر از لینک گفتگوی ایجاد مدل قدیمی
  6. یک پروژه خالی جدید در Looker با نام cymbal_gadgets ایجاد کنید. تصویر صفحه محاوره‌ای پروژه جدید
  7. برای اتصال گیت به مخزن انشعابی که ایجاد کرده‌اید، گزینه‌ی «پیکربندی گیت» را انتخاب کنید. تصویری از تنظیمات گیت
  8. Deploy Key به مخزن Git خود اضافه کنید. حتماً روی کادر کلیک کنید تا دسترسی نوشتن با کلید deploy فراهم شود. تصویر صفحه تنظیمات کلید git deploy
  9. سپس گزینه تست و نهایی کردن تنظیمات (Test and Finalize Setup) را انتخاب کنید. تصویر از تنظیمات تکمیل‌شده پروژه
  10. با کوئری کردن داده‌ها از بخش کاوش «🛍️ ابزارهای سیمبال: تراکنش‌ها و فروش‌ها» تأیید کنید که پروژه و منبع داده کار می‌کنند.
  11. پروژه cymbal_gadgets را در ویرایشگر LookML باز کنید و دکمه Create Developer Copy را در بالا سمت راست فشار دهید.
  12. در زیر Git Actions روی گزینه‌ی «Push Changes To Remote» کلیک کنید تا شاخه‌ی dev از گیت‌هاب در دسترس قرار گیرد. تصویر صفحه اقدامات گیت
  13. از یک بخش ترمینال روی رایانه خود، دستور زیر را اجرا کنید:
    cd $HOME
    git clone git@github.com:YOUR_GITHUB_USER/cymbal_gadgets.git
    cd cymbal_gadgets
    git checkout YOUR_DEV_BRANCH
    
    نام حساب کاربری گیت‌هاب خود را به جای YOUR_GITHUB_USER قرار دهید. همچنین نام شاخه توسعه خود را به جای YOUR_DEV_BRANCH قرار دهید. شاخه توسعه شما چیزی شبیه به dev-john-doe-jhgr نامگذاری خواهد شد - یعنی کلمه dev و به دنبال آن نام و نام خانوادگی شما و به دنبال آن یک رشته تصادفی کوتاه. شاخه توسعه شخصی خود را در بالای ویرایشگر LookML در رابط کاربری Looker خواهید یافت.

۳. محیط برنامه‌نویسی Agentic خود را راه‌اندازی کنید

نصب افزونه VS Code

در محیط توسعه یکپارچه (IDE)، روی آیکون افزونه‌ها در پنل سمت چپ کلیک کنید. سپس عبارت "Looker" را جستجو کنید و با کلیک روی دکمه نصب، افزونه رسمی را از گوگل نصب کنید.

نصب جعبه ابزار MCP برای سرور پایگاه داده

برای اینکه Antigravity به API Looker دسترسی داشته باشد (اجرای کوئری‌ها، بررسی SQL، بررسی مدل LookML و بررسی اطلاعات طرحواره اتصال)، به یک سرور MCP Toolbox محلی و در حال اجرا نیاز دارید. MCP Toolbox با پیاده‌سازی رسمی Looker MCP ارائه می‌شود. در این بخش، این مورد را تنظیم و برای نمونه Looker خود پیکربندی خواهید کرد.

  1. ابتدا به یک API client_id و client_secret نیاز دارید. از راهنمای Looker API Keys برای تولید client_id و client_secret برای کاربر خود استفاده کنید. همچنین به URL پایه برای نمونه Looker خود نیاز خواهید داشت.
  2. اکنون از npx برای نصب جعبه ابزار MCP استفاده خواهید کرد. می‌توانید URL نمونه Looker و اعتبارنامه‌های API خود را به عنوان متغیرهای محیطی درون‌خطی ارائه دهید، یا می‌توانید آنها را در محیط shell خود تنظیم کنید. این دستور را در محیط shell برای مک و لینوکس اجرا کنید:
    LOOKER_BASE_URL="https://your-instance.looker.com" \
    LOOKER_CLIENT_ID="YOUR_CLIENT_ID" \
    LOOKER_CLIENT_SECRET="YOUR_CLIENT_SECRET" \
    npx @toolbox-sdk/server --prebuilt=looker,looker-dev
    
    برای ویندوز، این دستور را در Powershell اجرا کنید:
    $env:LOOKER_BASE_URL="https://your-instance.looker.com"
    $env:LOOKER_CLIENT_ID="YOUR_CLIENT_ID"
    $env:LOOKER_CLIENT_SECRET="YOUR_CLIENT_SECRET"
    npx @toolbox-sdk/server --prebuilt=looker,looker-dev
    

پیکربندی افزونه‌ی VS Code

در این مرحله، افزونه VS Code را برای اتصال به Looker و سرور Looker MCP پیکربندی خواهید کرد.

  1. در Antigravity، از کلیدهای CMD-SHIFT-P (مک) یا CTRL+SHIFT+P (لینوکس/ویندوز) برای باز کردن پالت فرمان استفاده کنید و Preferences: Open Workspace Settings (JSON) را انتخاب کنید.
  2. برای پیکربندی افزونه با استفاده از client_id و client_secret ، موارد زیر را به تنظیمات فضای کاری خود اضافه کنید. برای looker.projectId cymbal_gadgets استفاده کنید:
    {
       "looker.instanceURL": "https://your-instance.looker.com",
       "looker.clientId": "YOUR_API_KEY_CLIENT_ID",
       "looker.clientSecret": "YOUR_API_KEY_CLIENT_SECRET",
       "looker.projectId": "cymbal_gadgets"
    }
    

ویرایشگر خود را باز کنید

  1. ضد جاذبه را باز کنید.
  2. روی فایل > باز کردن پوشه... کلیک کنید.
  3. به پوشه cymbal_gadgets بروید و آن را انتخاب کنید.

۴. یک معیار ارزش طول عمر مشتری ایجاد کنید

ابتدا با استفاده از Agent یک معیار جدید در مدل LookML موجود ایجاد خواهید کرد. معیار Customer Lifetime Value در این مورد استفاده در خرده فروشی مفید خواهد بود. شما از Agent برای تعیین روش و از LookML برای این معیار استفاده خواهید کرد.

به نماینده اطلاع دهید

در پروژه cymbal_gadgets در فضای کاری Antigravity خود، باید یک رابط مکالمه جدید در سمت راست داشته باشید. مکالمه را در حالت برنامه‌ریزی با استفاده از آخرین مدل Gemini با این پیام شروع کنید: Create a Customer Lifetime Value measure.

تصویر از اعلان در Antigravity

بررسی طرح اجرایی

نماینده ابتدا یک طرح پیاده‌سازی ایجاد می‌کند. طرح پیاده‌سازی را برای بررسی باز کنید، سپس روی دکمه «ادامه» کلیک کنید.

تصویر از طرح اجرایی

LookML را بررسی کنید

LookML تغییر یافته را بررسی کنید. مطمئن شوید که تغییرات منطقی و معتبر هستند.

تصویر از LookML تغییر یافته

LookML اصلاح‌شده به‌طور خودکار توسط افزونه‌ی VS Code با Looker همگام‌سازی می‌شود. می‌توان آن را در حالت توسعه (Development Mode) آزمایش کرد.

تست در IDE

از Antigravity بخواهید query CLV broken down by customer loyalty tier . Antigravity از سرور Looker MCP برای یافتن مدل‌ها، بررسی فیلدهای موجود و اجرای یک جستجو با استفاده از Looker استفاده خواهد کرد. نتیجه چیزی شبیه به این خواهد بود:

تصویر صفحه داده‌ها در Antigravity

تست در Looker

در Looker، با فعال بودن حالت توسعه (Development Mode)، بخش کاوش 🛍️ Cymbal Gadgets: Transactions & Sales را باز کنید. معیار ارزش طول عمر مشتری (Customer Lifetime Value) را انتخاب کنید و سپس بر اساس سال ثبت مشتری (Customer Registration Year) آن را تغییر دهید. کوئری را اجرا کنید. باید شبیه به این باشد.

تصویر صفحه کاوش

۵. یک داشبورد ارزش طول عمر مشتری ایجاد کنید

حالا می‌خواهیم یک مثال پیچیده‌تر را امتحان کنیم. از عامل می‌خواهیم یک داشبورد LookML کاملاً جدید ایجاد کند.

درخواست داشبورد جدید از نماینده

به Antigravity برگردید. در همان مکالمه، مطمئن شوید که حالت برنامه‌ریزی و آخرین مدل Gemini انتخاب شده‌اند. سپس از شما خواسته می‌شود Create a dashboard showing customer lifetime value based on customer loyalty tier .

تصویر از ایجاد داشبورد

دوباره، طرح پیاده‌سازی را تأیید کنید و تغییرات کد را بپذیرید. اکنون این فایل LookML جدید به طور خودکار با Looker همگام‌سازی می‌شود.

تست در Looker

در حالت توسعه، به پوشه‌ی LookML Dashboards بروید. داشبورد تازه ایجاد شده را برای مشاهده انتخاب کنید.

اسکرین شات از داشبورد جدید

۶. تمیز کردن

  1. در Antigravity در قسمت Source Control، در صورت تمایل، تغییرات LookML را برگردانید. در کنار هر فایل LookML اصلاح‌شده، نمادی مانند ↶ برای بازگرداندن فایل وجود دارد. برای هر فایل، آن دکمه را فشار دهید. تصویر از تغییرات برگردانده شده
  2. در Looker، ابتدا Admin، سپس Database و سپس Connections را انتخاب کنید. روی نماد چرخ‌دنده برای اتصال cymbal_gadgets کلیک کنید و Delete را انتخاب کنید. تأیید کنید که می‌خواهید اتصال را حذف کنید.
  3. در Looker از حالت توسعه (Development Mode) استفاده کنید. ابتدا Develop و سپس پروژه cymbal_gadgets را انتخاب کنید. در قسمت تنظیمات پروژه (Project Settings) ، گزینه Delete Project را انتخاب کنید. با تایپ نام پروژه - cymbal_gadgets - و سپس انتخاب دکمه‌ای با عنوان Permanently Delete cymbal_gadgets ، تأیید کنید که می‌خواهید پروژه را حذف کنید.

۷. تبریک

تبریک می‌گویم که آزمایشگاه کد را تمام کردی.

آنچه ما پوشش داده‌ایم

  • نحوه تغییر LookML با یک عامل.
  • نحوه تأیید برنامه‌های اجرایی
  • نحوه تست از طریق IDE.
  • نحوه تست در رابط کاربری Looker.
  • نحوه ایجاد یک داشبورد جدید با یک نماینده.

چیزهایی که باید امتحان کنید

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

  • توضیحات خوب هم برای کاربران و هم برای هوش مصنوعی بسیار مهم است. از نماینده بخواهید توضیحات را به تمام فیلدهایی که توضیحات ندارند اضافه کند.
  • از نماینده بخواهید تایم‌فریم‌های بیشتری را به یکی از گروه‌های ابعاد اضافه کند.
  • از نماینده بخواهید که عبارتی مانند «درآمد بر اساس دسته‌بندی محصولات و بر اساس فصل» را جستجو کند.

بیشتر بدانید