تجزیه و تحلیل قفسه کتاب: از Gemini برای ساخت برنامه های SQL با BigQuery و هوش مصنوعی Generative استفاده کنید

1. مقدمه

آیا عاشق کندوکاو در کتاب ها هستید اما از حجم زیاد انتخاب ها غرق می شوید؟ تصور کنید یک برنامه مجهز به هوش مصنوعی دارید که نه تنها خواندن کامل را توصیه می کند، بلکه خلاصه ای مختصر را بر اساس ژانر انتخابی شما ارائه می دهد و به شما نگاهی اجمالی به ماهیت کتاب می دهد. در این کد، من شما را در ساخت چنین برنامه‌ای با توابع BigQuery، Gemini و Cloud که توسط Gemini ارائه می‌شوند، راهنمایی می‌کنم.

بررسی اجمالی پروژه

مورد استفاده ما حول این 4 جزء کلیدی متمرکز است:

  • پایگاه داده کتاب: مجموعه داده عمومی گسترده BigQuery از کتاب های آرشیو اینترنتی به عنوان کاتالوگ کتاب جامع ما عمل خواهد کرد.
  • موتور خلاصه سازی هوش مصنوعی: توابع Google Cloud، مجهز به مدل زبان Gemini 1.0 Pro، خلاصه های روشنگری متناسب با درخواست های کاربر ایجاد می کند.
  • یکپارچه‌سازی BigQuery: یک تابع راه دور در BigQuery که تابع Cloud ما را برای ارائه خلاصه‌ها و مضامین درخواستی کتاب فراخوانی می‌کند.
  • رابط کاربری: یک برنامه وب میزبانی شده در Cloud Run که یک برنامه وب را برای مشاهده نتایج به کاربران ارائه می دهد.

پیاده سازی را به 3 کد لبه تقسیم می کنیم:

Codelab 1: از Gemini برای ایجاد یک تابع ابری جاوا برای برنامه Gemini استفاده کنید.

Codelab 2: از Gemini برای ساخت برنامه های SQL با BigQuery و Generative AI استفاده کنید.

Codelab 3: از Gemini برای ایجاد یک برنامه وب Java Spring Boot که با BigQuery تعامل دارد، استفاده کنید.

2. از Gemini برای ساخت برنامه های SQL با BigQuery و Generative AI استفاده کنید

چیزی که خواهی ساخت

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

  • مدل راه دور در BigQuery که نقطه پایانی Vertex AI text-bison-32k را برای شناسایی ژانر (یا موضوع) کتاب از لیست ";" فراخوانی می کند. کلمات کلیدی جدا شده در جدول
  • عملکرد از راه دور در BigQuery که تابع ابر AI مولد مستقر شده را از راه دور فراخوانی می کند.
  • از مدل و تابع راه دور برای خلاصه کردن موضوع و متن یک کتاب با پرس و جوهای SQL و نوشتن نتایج در جدول جدیدی در مجموعه داده قفسه کتاب استفاده کنید.
  • این مراحل را با کمک جمینی اجرا خواهید کرد

3. الزامات

  • مرورگری مانند کروم یا فایرفاکس
  • یک پروژه Google Cloud با فعال کردن صورت‌حساب
  • اگر تابع Cloud را به‌عنوان بخشی از بخش 1 Codelab مستقر کرده باشید ، مفید است.
  • مشروط: اگر در این زمان به پیوند رایگان Google Cloud Credits دسترسی دارید (که ممکن است توسط سازمان‌دهنده کارگاه برای شما ارائه شده باشد)، از دستورالعمل‌های موجود در صفحه زیر برای تکمیل مراحل CREDITS ACTIVATION و PROJECT CREATION از قبل استفاده کنید. اگر این پیوند را ندارید، مراحل پیش نیاز پروژه و صورتحساب را در زیر ادامه دهید:

پروژه خود را ایجاد کنید

اگر قبلاً یک حساب صورت‌حساب را فعال کرده‌اید و با استفاده از پیوند ذکر شده در مرحله شرطی بالا پروژه ایجاد کرده‌اید، می‌توانید مراحل زیر را نادیده بگیرید.

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

Cloud Shell را فعال کنید

  1. شما از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان در حال اجرا در Google Cloud که با bq از قبل بارگذاری شده است:

از Cloud Console، روی Activate Cloud Shell در گوشه سمت راست بالا کلیک کنید: 6757b2fb50ddcc2d.png

  1. پس از اتصال به Cloud Shell، باید ببینید که قبلاً احراز هویت شده اید و پروژه قبلاً روی ID پروژه شما تنظیم شده است. برای تایید احراز هویت، دستور زیر را در Cloud Shell اجرا کنید:

لیست احراز هویت gcloud

  1. دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد.

پروژه لیست پیکربندی gcloud

  1. اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:

پروژه تنظیم پیکربندی gcloud <YOUR_PROJECT_ID>

برای دستورات و استفاده از gcloud به اسناد مراجعه کنید.

4. فعال کردن Gemini برای Google Cloud و APIهای ضروری

Gemini را فعال کنید

  1. برای فعال کردن API به Gemini برای Google Cloud Marketplace بروید. همچنین می توانید از دستور زیر استفاده کنید:

gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID

  1. از صفحه جمینی دیدن کنید و روی «شروع چت» کلیک کنید.

سایر API های ضروری را فعال کنید

چگونه این کار را انجام دهیم؟ بیایید این را از جوزا بپرسیم، درست است؟ اما قبل از آن به یاد داشته باشید:

توجه: LLM ها غیر قطعی هستند. بنابراین در حالی که شما این دستورات را امتحان می‌کنید، ممکن است پاسخی که دریافت می‌کنید متفاوت از پاسخ‌های موجود در اسکرین‌شات من باشد.

با کلیک بر روی نماد "Open Gemini" در گوشه سمت راست بالا در مجاورت نوار جستجو در کنسول Google Cloud به کنسول چت Gemini بروید.

این سوال را در بخش "در اینجا وارد کنید" تایپ کنید:

چگونه می توانم BigQuery و Vertex AI apis را با استفاده از دستور gcloud فعال کنم؟

شما پاسخ را همانطور که در تصویر زیر مشاهده می کنید دریافت می کنید:

19c3fd78530794d9.png

آن را کپی کنید (می توانید از نماد کپی در بالای قطعه فرمان استفاده کنید) و آن را در ترمینال Cloud Shell اجرا کنید تا خدمات مربوطه فعال شود:

  • bigquery.googleapis.com
  • aiplatform.googleapis.com

5. مجموعه داده عمومی BigQuery را برای داده های کتاب کاوش کنید

با آشنایی با مجموعه داده عمومی BigQuery که حاوی اطلاعاتی در مورد چندین کتاب آرشیو اینترنتی است، شروع کنید.

می توانید این مجموعه داده عمومی را در صفحه کاوشگر BigQuery پیدا کنید. وقتی روی کنسول BigQuery قرار می گیرید، می توانید آن را در سمت چپ پیدا کنید.

39e2ac03cc99cbac.png

"gdelt-bq" یا "internetarchivebooks" را در نوار جستجو تایپ کنید و روی SEARCH ALL PROJECTS کلیک کنید. همانطور که در تصویر زیر نشان داده شده است، کتاب های آرشیو اینترنتی نتیجه و ستاره را گسترش دهید:

68dba68a79cddfc9.png .

مجموعه داده را گسترش دهید، روی gdelt-bq.internetarchivebooks کلیک کنید و سپس داده ها را در جدول 1920 پیش نمایش کنید. این جدول شامل کتاب های سال 1920 بایگانی شده است.

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

select * from  `gdelt-bq.internetarchivebooks.1920` limit 5;

ما از سه فیلد زیر برای Codelab خود استفاده خواهیم کرد:

  • BookMeta_Title (عنوان)
  • تم ها (موضوعات جدا شده با ";")
  • BookMeta_FullText (متن کامل کتاب)

6. یک مجموعه داده BigQuery جدید به نام bookshelf ایجاد کنید

ما می خواهیم تحت پروژه یک مجموعه داده ایجاد کنیم تا تمام دیتابیس ها و اشیاء تجزیه و تحلیلی که قرار است در این آزمایشگاه ایجاد کنیم، ذخیره شود. بیایید از Gemini بپرسیم که چگونه یک مجموعه داده BigQuery ایجاد کنیم. از قبل باید چت Gemini خود را در برگه دیگری در مرورگر خود از مرحله فعال کردن APIs باز کنید. اگر نه، اکنون می توانید این کار را انجام دهید. با رفتن به https://console.cloud.google.com به Google Cloud Console بروید و باید نماد Gemini را درست در کنار نوار جستجو در بالا ببینید. روی آن کلیک کنید و چت باز می شود.

26e1491322855614.png

مطابق شکل زیر دستور را وارد کنید.

این درخواست من است:

How to create a BigQuery dataset?

در اینجا پاسخ است:

f7a989cc9a01009.png

بیایید مراحل ذکر شده در پاسخ را دنبال کنیم تا یک مجموعه داده با نام "bookshelf" در پروژه فعال شما ایجاد کنیم.

برای ایجاد مجموعه داده BigQuery، این مراحل را دنبال کنید:

  1. به صفحه BigQuery در کنسول Google Cloud بروید.
  2. در پانل Explorer، روی شناسه پروژه خود کلیک کنید.
  3. روی ایجاد مجموعه داده کلیک کنید (وقتی روی 3 نقطه کنار شناسه پروژه خود کلیک می کنید باید در گزینه های لیست شده باشد)
  4. نام مجموعه داده را به عنوان "قفسه کتاب" وارد کنید.
  5. مکان را به عنوان "US(Multi-region)" تنظیم کنید.
  6. برای مراحل 3، 4، 5 و 6 از پاسخ، گزینه های پیش فرض را رها کنید.
  7. روی CREATE DATASET کلیک کنید.

مجموعه داده شما ایجاد می شود و در پانل Explorer ظاهر می شود. مجموعه داده "قفسه کتاب" را می توان به صورت زیر مشاهده کرد:

7. یک مدل راه دور برای فراخوانی Vertex AI LLM (text-bison-32k) ایجاد کنید.

در مرحله بعد، ما باید یک مدل در BigQuery ایجاد کنیم که مدل Vertex AI "text-bison-32k" را فراخوانی کند. این مدل به شناسایی یک موضوع مشترک، زمینه برای کتاب، از فهرست کلمات کلیدی برای هر کتاب در مجموعه داده کمک می کند.

بیایید این سوال را از جوزا بپرسیم. برای انجام این کار، به برگه ای که کنسول چت Gemini را باز کرده اید بروید و دستور زیر را تایپ کنید:

چگونه BigQuery و Vertex AI را برای فراخوانی نقطه پایانی LLM (text-bison-32k) در BigQuery متصل می‌کنید؟

پاسخ به شرح زیر است:

41904e30ce92b436.png

پاسخ شامل اطلاعات دقیقی است، مانند مراحلی که شامل استفاده از دستور CREATE MODEL، استفاده از اتصال BigQuery و تعریف نقطه پایانی است. عبارت پرس و جو برای من دقیق است، اما به این معنی نیست که شما دقیقا همان خروجی را دریافت خواهید کرد زیرا این یک مدل زبان بزرگ است که ممکن است پاسخ هایی را در قالب، حجم و عمق متفاوت دریافت کنید. اگر تمام جزئیاتی که دریافت کرده‌ام را نمی‌بینید، در صورت تمایل چت را با سؤالات بعدی بررسی کنید. به عنوان مثال: جزئیات بیشتری در مورد نحوه ایجاد منبع اتصال یا دلیل عدم وجود ویژگی اتصال یا نحوه اتصال از BigQuery به Vertex AI و غیره ارائه دهید.

در اینجا یک نمونه درخواست پیگیری وجود دارد (فقط در صورت نیاز به پیگیری از این مورد استفاده کنید، اگر اولین پاسخی که دریافت کردید کافی است، آن را ادامه دهید):

What about the connection? How will I connect from BigQuery to Vertex AI?

در اینجا پاسخ است:

2ed9b3ed96b11bc9.png

بیایید مراحل پاسخ را برای ایجاد یک اتصال BigQuery دنبال کنیم:

  1. به کنسول BigQuery بروید.
  2. در صفحه BigQuery Explorer، روی دکمه "+ADD" کلیک کنید و روی "Connections to external data sources" کلیک کنید.
  3. در این مرحله، از شما می خواهد که BigQuery Connection API را فعال کنید. روی ENABLE API کلیک کنید:

ded96126495ffe9.png

  1. روی "اتصال به منابع داده خارجی" کلیک کنید و باید اسلاید منبع داده خارجی را همانطور که در زیر مشاهده می کنید مشاهده کنید. از لیست منابع خارجی، منبع "Vertex AI" را انتخاب کنید.

434cdbbb3a9436f2.png

  1. شناسه اتصال را تایپ کنید (این می تواند شناسه انتخابی شما باشد، اما در حال حاضر، آن را به عنوان " bq-vx " و منطقه (چند منطقه "US") تنظیم کنید.
  2. روی "ایجاد اتصال" کلیک کنید.

d3a2aeebc3ecdfae.png

  1. پس از ایجاد اتصال، روی "برو به اتصال" کلیک کنید.
  2. در صفحه اطلاعات اتصال، شناسه حساب سرویس را کپی کنید زیرا در مراحل بعدی از این شناسه استفاده خواهیم کرد.
  3. اکنون که اتصال ایجاد شد، اجازه دهید مجوزهایی را به این شناسه حساب سرویس که کپی کردیم اختصاص دهیم تا بتوانیم از Vertex AI استفاده کنیم.
  4. از صفحه Google Cloud Console، Google Cloud IAM را باز کنید یا به پیوند بروید.
  5. روی Grant Access در قسمت View by Principals کلیک کنید.

5317eed5da0bb8c5.png

  1. در کادر محاوره‌ای Grant Access، شناسه حساب سرویس را که قبلاً در کادر متنی New Originals ذکر کردیم، وارد کنید.
  2. نقش را روی "Urtex AI User" تنظیم کنید.

f213db33d220aa5f.png

اتصال مورد نیاز ایجاد می شود. مجوز لازم برای اصلی (حساب سرویس اتصال) برای استفاده از Vertex AI از BigQuery اعطا می شود.

دستور DDL (زبان تعریف داده) زیر را اجرا کنید که نشان دهنده ایجاد یک شی DB، در این مورد، MODEL در ویرایشگر کوئری BigQuery است.

CREATE OR REPLACE MODEL bookshelf.llm_model
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (ENDPOINT = 'text-bison-32k');

چیزی که می توانید به عنوان جایگزین مرحله بالا امتحان کنید، می توانید از Gemini بخواهید یک پرس و جو برای ایجاد مدل برای فراخوانی مدل "text-bison-32k" پیشنهاد کند.

توجه: اگر از نام دیگری برای اتصال خود استفاده کرده اید، " us.bq-vx " را با آن نام در عبارت قبلی DDL جایگزین کنید. این پرس و جو مدل راه دور را در مجموعه داده، "bookshelf" که قبلا ایجاد کردیم ایجاد می کند.

8. یک تابع از راه دور ایجاد کنید که تابع Java Cloud را فراخوانی می کند

اکنون یک تابع راه دور در BigQuery با استفاده از Java Cloud Function که در Codelab 1 این سری ایجاد کرده ایم برای پیاده سازی مدل Gemini ایجاد می کنیم. این تابع از راه دور برای خلاصه کردن محتوای کتاب استفاده خواهد شد.

توجه: اگر این نرم‌افزار کد را از دست داده‌اید یا این تابع Cloud را اجرا نکرده‌اید، می‌توانید این مرحله را رد کرده و به مبحث بعدی (که عبارت است از خلاصه کردن موضوع کتاب‌ها با استفاده از مدل راه دور) بروید.

به کنسول BigQuery بروید و عبارت DDL زیر را در Query Editor قرار دهید (می توانید با کلیک بر روی دکمه + یک تب جدید Query Editor ایجاد کنید)

a54c0b0014666cac.png

در زیر DDL است که می توانید کپی کنید. به یاد داشته باشید که نقطه پایانی را با نقطه پایانی Cloud Function مستقر شده خود جایگزین کنید (ایجاد شده از آزمایشگاه کد 1 ). اگر نقطه پایانی ندارید، می‌توانید نویسه‌های ماسک‌شده در DDL زیر را با «abis-345004» برای اهداف نمایشی جایگزین کنید.

CREATE OR REPLACE FUNCTION
  `bookshelf.GEMINI_REMOTE_CALL` (context STRING) RETURNS STRING
  REMOTE WITH CONNECTION `us.bq-vx`
  OPTIONS (
    endpoint = 'https://us-central1-****-******.cloudfunctions.net/remote-gemini-call'  );

به کنسول BigQuery در پلتفرم Google Cloud بروید و یک تب جدید Query Editor را باز کنید. در BigQuery Query Editor، عبارت DDL را در بالا قرار دهید. پس از اجرای پرس و جو می توانید پاسخ زیر را مشاهده کنید:

a023d5691acf6f.png

اکنون که مدل و تابع ایجاد شده‌اند، بیایید این دو شی BigQuery را با اجرای آنها در یک کوئری SELECT آزمایش کنیم.

9. مضامین را با استفاده از مدل راه دور خلاصه کنید

بیایید از مدل راه دوری که ایجاد کردیم "bookshelf.llm_model" برای ایجاد یک کلمه کلیدی تلفیقی برای کتاب از لیست مضامین داده شده استفاده کنیم:

SELECT * FROM ML.GENERATE_TEXT(MODEL `bookshelf.llm_model`,
(
SELECT
     CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` LIMIT 1
));

مرحله اختیاری: نتیجه فیلد نتیجه تولید شده توسط LLM تودرتو است. بیایید برخی از پارامترهای LLM و ویژگی "flatten_json_output" را به پرس و جو اضافه کنیم. استفاده از ویژگی "flatten_json_output" به حذف ساختار تودرتو از فیلد نتیجه تولید شده توسط LLM کمک می کند.

SELECT * FROM ML.GENERATE_TEXT ( MODEL `bookshelf.llm_model`, (
 SELECT CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt FROM `gdelt-bq.internetarchivebooks.1920` limit 1),
    STRUCT( 0.2 AS temperature, 100 AS max_output_tokens, TRUE AS flatten_json_output));

اکنون، کوئری SELECT را در ویرایشگر BigQuery اجرا کنید و نتیجه را تأیید کنید. ما نتیجه پرس و جو را برای آزمایش به 1 محدود کرده ایم. نتیجه به صورت زیر نمایش داده می شود:

9b0d33eca61a73d2.png

10. متن کامل کتاب ها را با استفاده از تابع از راه دور خلاصه کنید

اکنون سعی می کنیم کتاب را با اجرای قفسه کتاب خلاصه کنیم. GEMINI_REMOTE_CALL عملکرد ابری که قبلا ایجاد کردیم.

توجه: اگر از ایجاد FUNCTION از راه دور (موضوع قبلی در این لبه کد) صرفنظر کرده بودید، به یاد داشته باشید که از فراخوانی تابع bookshelf.GEMINI_REMOTE_CALL در عبارت SELECT نیز صرفنظر کنید.

از کوئری SELECT استفاده کنید که تابع راه دور (GEMINI_REMOTE_CALL) را که قبلا ایجاد کردیم فراخوانی می کند. فراخوانی به این تابع، GEMINI_REMOTE_CALL، شامل یک درخواست برای خلاصه‌ای از متن کتاب است:

select BookMeta_Title, `bookshelf.GEMINI_REMOTE_CALL` (
  CONCAT('This is about a book. The title of the book is this: ', BookMeta_Title,  ' . The theme of the book is as follows: ', Themes, 'The following text contains an excerpt from the book. Summarize it in less than 5 lines to create the gist. If you do not have a summary, use the title and themes to make up a short summary. DO NOT RETURN EMPTY RESPONSE. ', SUBSTR(BookMeta_FullText, 5000, 10000))) Summary 
  from `gdelt-bq.internetarchivebooks.1920` where Themes like '%EDUCATION%' limit 1;

توجه داشته باشید که ما زیر رشته ای از متن کامل کتاب را برای ایجاد خلاصه در نظر گرفته ایم.

نتیجه پرس و جو به شرح زیر است:

658bb0a9c9cf0938.png

11. داده های کتاب ها را در یک جدول ذخیره کنید

اکنون که هر دو فراخوانی LLM (مدل و تابع از راه دور) را از BigQuery فقط با استفاده از پرس‌و‌جوهای SQL آزمایش کرده‌ایم، بیایید یک جدول BigQuery ایجاد کنیم تا داده‌های "قفسه کتاب" را با بینش موضوع، در مجموعه داده مشابه مدل راه دور و تابع ذخیره کنیم.

در واقع می‌توانیم هم فراخوانی مدل LLM و هم فراخوانی تابع راه دور را در این مرحله قرار دهیم. اما از آنجایی که ما فراخوانی تابع از راه دور (که تابع Cloud را فراخوانی می کند) را به عنوان یک مرحله اختیاری علامت گذاری کرده ایم، فقط از اطلاعات بینش مدل راه دور استفاده خواهیم کرد.

در اینجا پرس و جوی استفاده خواهیم کرد:

SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

هنگامی که پرس و جو را در ویرایشگر BigQuery اجرا می کنید، نتیجه به شرح زیر است:

2c6e08e75a680867.png

حال، بیایید از Gemini بخواهیم تا جدولی با نام "bookshelf.books" از کوئری بالا ایجاد کند. به کنسول چت Gemini در Google Cloud Console بروید و اعلان زیر را وارد کنید.

در اینجا اعلانی است که استفاده خواهیم کرد:

Create a BigQuery table named bookshelf.books from this SELECT query: 
SELECT
  BookMeta_Title, Themes, ml_generate_text_llm_result Context 
   FROM
  ML.GENERATE_TEXT (
    MODEL `bookshelf.llm_model`,
    (
 SELECT
      BookMeta_Title,
      Themes,BookMeta_FullText,
      CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
    FROM `gdelt-bq.internetarchivebooks.1920` limit 5),
    STRUCT(
      0.2 AS temperature,
      100 AS max_output_tokens,
      TRUE AS flatten_json_output));

پاسخ چت Gemini به شرح زیر است:

df6595a4b14f7b9.png

درصورتی‌که بخواهید مستقیماً آن را از اینجا کپی کنید، سؤالی در اینجا آمده است:

CREATE TABLE bookshelf.books (
  BookMeta_Title STRING,
  Themes STRING,
  ml_generate_text_llm_result STRING
) AS (
  SELECT
    BookMeta_Title,
    Themes,
    ml_generate_text_llm_result Context
  FROM
    ML.GENERATE_TEXT (
      MODEL `bookshelf.llm_model`,
      (
        SELECT
          BookMeta_Title,
          Themes,
          BookMeta_FullText,
          CONCAT('Read all the words in the following text separated by ";" and come up with one single (most relating) theme that is applicable : ', Themes, '. Take the title of the book from the following value', BookMeta_Title, '. Return a meaningful and concise theme with one or two words, not more than that. If a theme is not possible, return a context from its title. But DO NOT return empty or null. ') AS prompt
        FROM `gdelt-bq.internetarchivebooks.1920`
        LIMIT 5
      ),
      STRUCT(
        0.2 AS temperature,
        100 AS max_output_tokens,
        TRUE AS flatten_json_output
      )
    )
);

پس از اجرای پرس و جو در ویرایشگر BigQuery، نتیجه به شرح زیر است:

2d1ce716f844b7ad.png

همین! اکنون جدول را پرس و جو کنید و برای اطلاعات بیشتر با داده ها بازی کنید.

12. تبریک می گویم

تبریک می گویم! ما موارد زیر را با موفقیت به پایان رساندیم و از Gemini در برخی از مراحل فرآیند نیز استفاده کردیم:

  • یک مدل راه دور در BigQuery ایجاد کرد که نقطه پایانی Vertex AI "text-bison-32k" را برای شناسایی ژانر (یا موضوع) کتاب از لیست ";" فراخوانی می کند. کلمات کلیدی جدا شده در جدول
  • یک تابع راه دور در BigQuery ایجاد کرد که این تابع مولد AI Cloud را از راه دور فراخوانی می کند. این تابع دستور را به عنوان ورودی و خروجی رشته ای را می گیرد که کتاب را در 5 خط خلاصه می کند.
  • از مدل و تابع راه دور برای خلاصه کردن موضوع و متن یک کتاب با پرس و جوهای SQL و نوشتن نتایج در جدول جدیدی در مجموعه داده قفسه کتاب استفاده کرد.
  • به عنوان یک تکلیف بعدی، سعی کنید از Gemini برای دریافت SQL برای حذف اشیاء ایجاد شده در BigQuery استفاده کنید. این مرحله پاکسازی را پوشش می دهد.