1. بررسی اجمالی
Master Data Management چیست؟
مدیریت داده های اصلی (MDM) همه چیز در مورد ایجاد یک منبع واحد و قابل اعتماد از حقیقت برای حیاتی ترین داده های سازمان شما است. کتابخانه ای با دقت سازماندهی شده را تصور کنید که در آن هر کتاب (نقطه داده) به درستی برچسب گذاری شده است، به روز است و به راحتی پیدا می شود.
دادههای اصلی، نهادهای تجاری اصلی و بنیادی را نشان میدهند که برای عملیات یک شرکت ضروری هستند. در اینجا عناصر کلیدی داده های اصلی آمده است:
- نهادهای تجاری: نهادهایی مانند مشتریان، محصولات، تامین کنندگان، مکان ها و کارمندان که اسم هایی هستند که کسب و کار شما حول آنها می چرخد.
- شناسه ها: شناسه های منحصر به فردی که تضمین می کند هر موجودیت متمایز و قابل ردیابی در بین سیستم ها است.
- ویژگی ها : ویژگی هایی که هر موجودیت را توصیف می کند، به عنوان مثال، آدرس مشتری، قیمت یک محصول و غیره.
برای کمک به درک بهتر داده های اصلی، بیایید آن را با داده های تراکنش مقایسه کنیم. داده های تراکنش رویدادهای فردی (خرید، حمل و نقل و غیره) را ضبط می کند. در حالی که داده های اصلی با تعریف موجودیت های درگیر زمینه را برای آن رویدادها فراهم می کند. به عنوان مثال، یک معامله فروش به داده های اصلی مشتری، محصول و فروشنده پیوند دارد.
در حالی که پیاده سازی MDM قوی برای تصمیم گیری استراتژیک ضروری است، اما می تواند پیچیده و نیازمند منابع باشد. اینجاست که قدرت تغییردهنده هوش مصنوعی Generative، بهویژه مدلهایی مانند Gemini 1.0 Pro، Gemini 1.0 Pro Vision، Gemini 1.5 Pro ظاهر میشود.
2. هدف
در این نرمافزار، نشان میدهید که چگونه Gemini 1.0 Pro برنامههای مدیریت داده اصلی مانند غنیسازی و حذف مجدد را برای دادههای citibike_stations موجود در مجموعه داده عمومی BigQuery ساده میکند.
چیزی که استفاده خواهید کرد
- مجموعه داده عمومی BigQuery
bigquery-public-data.new_york_citibike
. - فراخوانی تابع Gemini (یک تابع ابر جاوا که اطلاعات آدرس را با استفاده از API معکوس جغرافیایی برای مختصات موجود با داده های citibike_stations دریافت می کند).
- Vertex AI Embeddings API و Vector Search در BigQuery برای شناسایی موارد تکراری.
چیزی که خواهی ساخت
- شما یک مجموعه داده BigQuery برای مورد استفاده ایجاد خواهید کرد. در این مجموعه داده، شما یک جدول فرود با داده های جدول داده های عمومی
bigquery-public-data.new_york_citibike.citibike_stations
ایجاد می کنید. - شما تابع Cloud را که شامل تابع Gemini فراخوانی برای استانداردسازی آدرس است، مستقر خواهید کرد.
- شما داده های آدرس غنی شده را در جداول فرود (از دو منبع ارائه شده برای این نمایش) ذخیره خواهید کرد.
- در دادههای آدرس، Vertex AI Embeddings API را از BigQuery فراخوانی میکنید.
- شما از BigQuery Vector Search برای شناسایی رکوردهای تکراری استفاده خواهید کرد.
نمودار زیر جریان داده ها و مراحل مربوط به پیاده سازی را نشان می دهد.
3. الزامات
4. قبل از شروع
- در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید.
- مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورتحساب در پروژه آشنا شوید.
- شما از Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان در حال اجرا در Google Cloud که با bq از قبل بارگذاری شده است. روی Activate Cloud Shell در بالای کنسول Google Cloud کلیک کنید.
- پس از اتصال به Cloud Shell، با استفاده از دستور زیر بررسی میکنید که قبلاً احراز هویت شدهاید و پروژه به ID پروژه شما تنظیم شده است:
gcloud auth list
- دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد.
gcloud config list project
- اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:
gcloud config set project <YOUR_PROJECT_ID>
- برای فعال کردن API به Gemini for Google Cloud Marketplace بروید. همچنین می توانید از دستور زیر در ترمینال Cloud Shell استفاده کنید:
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
- مطمئن شوید که BigQuery، BigQuery Connection، Cloud Function، Cloud Run، Vertex AI و Cloud Build API فعال هستند. جایگزین دستور gcloud از طریق کنسول با استفاده از این پیوند است.
برای دستورات و استفاده از gcloud به اسناد مراجعه کنید.
5. یک مجموعه داده BigQuery و اتصال خارجی ایجاد کنید
بیایید با ایجاد یک مجموعه داده و یک اتصال منبع Cloud شروع کنیم.
مجموعه داده در BigQuery محفظه ای برای تمام جداول و اشیاء برنامه شما است.
برای ایجاد یک مجموعه داده ، موارد زیر را انجام دهید:
- به صفحه BigQuery در کنسول Google Cloud بروید.
- در پانل Explorer ، پروژه ای را که می خواهید مجموعه داده را در آن ایجاد کنید، انتخاب کنید.
- گزینه Actions (نماد بیضی عمودی) را باز کنید و روی ایجاد مجموعه داده کلیک کنید.
-
mdm_gemini
را در قسمت Dataset ID وارد کنید. - نوع مکان خود را به عنوان
Multi-region
تنظیم کنید و مقدار پیش فرض را بپذیرید کهUS(multiple regions in United States.
- روی ایجاد مجموعه داده کلیک کنید.
- بررسی کنید که مجموعه داده ایجاد شده و در زیر ID پروژه شما در پنجره Explorer فهرست شده باشد.
اتصال BigQuery برای تعامل با عملکرد Cloud شما لازم است. برای ایجاد یک تابع از راه دور، باید یک اتصال BigQuery ایجاد کنید. در این کد لبه، از اتصال BigLake برای دسترسی به مدل از BigQuery از طریق Cloud Function استفاده خواهیم کرد. اتصالات BigLake به اتصال منبع داده خارجی کمک می کند و در عین حال کنترل دسترسی و امنیت دقیق BigQuery را حفظ می کند، که در مورد ما Vertex AI Gemini Pro API است.
برای ایجاد اتصال BigLake ، موارد زیر را انجام دهید:
- در صفحه اکسپلورر صفحه BigQuery روی Add کلیک کنید.
- روی اتصال به منابع داده خارجی کلیک کنید.
- در لیست نوع اتصال، مدلهای کنترل از راه دور Vertex AI، توابع راه دور و BigLake (منبع ابر) را انتخاب کنید.
- در قسمت شناسه اتصال ، نام اتصال خود را به عنوان
gemini-bq-conn
وارد کنید. - نوع مکان خود را به عنوان
Multi-region
تنظیم کنید و مقدار پیش فرض را بپذیرید کهUS(multiple regions in United States.
- روی ایجاد اتصال کلیک کنید.
- روی Go to connect کلیک کنید و سپس شناسه حساب سرویس را در صفحه اطلاعات اتصال کپی کنید.
- به صفحه IAM & Admin بروید و روی Grant access کلیک کنید.
- شناسه حساب سرویس را در فیلد اصول جدید جایگذاری کنید.
- نقش
Vertex AI user
را از لیست نقش انتخاب کنید و سپس روی Save کلیک کنید.
اکنون مجموعه داده و اتصال BigQuery را با موفقیت ایجاد کرده اید.
6. فراخوانی تابع Gemini (عملکرد ابر جاوا) را اجرا کنید
این مراحل را برای استقرار تابع Java Cloud که شامل فراخوانی عملکرد Gemini است، دنبال کنید.
- با استفاده از دستور زیر، مخزن github را از ترمینال Cloud Shell خود کلون کنید:
git clone https://github.com/AbiramiSukumaran/GeminiFunctionCalling
- متغیرهای
YOUR_API_KEY
وYOUR_PROJECT_ID
را با مقادیر خود جایگزین کنید.
اگر وبلاگ را در اینجا بخوانید، می دانید که اجرای فراخوانی تابع از API معکوس جغرافیایی استفاده می کند. میتوانید API_KEY خود را از دستورالعملهای اینجا ایجاد کنید.
- در ترمینال Cloud Shell، به دایرکتوری پروژه جدید شبیه سازی شده GeminiFunctionCalling بروید و عبارت زیر را برای ساخت و استقرار Cloud Function اجرا کنید:
gcloud functions deploy gemini-fn-calling --gen2 --region=us-central1 --runtime=java11 --source=. --entry-point=cloudcode.helloworld.HelloWorld --trigger-http
وقتی سؤالات «اجازه به فراخوانهای احراز هویت نشده» از شما خواسته شد، «y» بگویید. در حالت ایدهآل، براساس توصیه، احراز هویت را برای برنامههای سازمانی خود تنظیم خواهید کرد. اما از آنجایی که این یک برنامه آزمایشی است، ما بدون احراز هویت ادامه خواهیم داد.
خروجی یک URL REST در قالب زیر است:
https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-fn-calling
- این تابع Cloud را با اجرای دستور زیر از ترمینال تست کنید:
gcloud functions call gemini-fn-calling --region=us-central1 --gen2 --data '{"calls":[["40.714224,-73.961452"]]}'
پاسخ برای یک درخواست نمونه تصادفی:
'{"replies":["{ \"DOOR_NUMBER\": \"277\", \"STREET_ADDRESS\": \"Bedford Ave\", \"AREA\":
null, \"CITY\": \"Brooklyn\", \"TOWN\": null, \"COUNTY\": \"Kings County\", \"STATE\":
\"NY\", \"COUNTRY\": \"USA\", \"ZIPCODE\": \"11211\", \"LANDMARK\": null}}```"]}'
پارامترهای درخواست و پاسخ این تابع ابری به گونهای پیادهسازی میشوند که با فراخوانی تابع از راه دور BigQuery سازگار است. می توان آن را مستقیماً از داده های BigQuery در محل مصرف کرد. این بدان معناست که اگر ورودی داده شما (داده های lat و طولانی) در BigQuery زندگی می کند، می توانید تابع راه دور روی داده را فراخوانی کنید و پاسخ تابع را دریافت کنید که می تواند مستقیماً در BigQuery ذخیره یا پردازش شود.
- DDL زیر را از BigQuery اجرا کنید تا یک تابع راه دور ایجاد کنید که این تابع Cloud مستقر شده را فراخوانی کند:
CREATE OR REPLACE FUNCTION
`mdm_gemini.MDM_GEMINI` (latlng STRING) RETURNS STRING
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS (
endpoint = 'https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-fn-calling', max_batching_rows = 1
);
پرس و جو را برای استفاده از تابع جدید ایجاد شده از راه دور آزمایش کنید:
mdm_gemini.MDM_GEMINI
(latlong) را از mdm_gemini.CITIBIKE_STATIONS محدودیت 1 انتخاب کنید.
اگر کوئری آزمایشی که از عملکرد راه دور جدید ایجاد شده در BigQuery استفاده میکند به دلیل مشکل مجوزهای Cloud Functions با شکست مواجه شد، از Google Cloud Console به Cloud Functions بروید و تابع Cloud مستقر به نام " gemini-fn-calling" را پیدا کنید. به برگه مجوزها بروید، اصلی را به عنوان "allUsers" اضافه کنید و نقش "Cloud Functions Invoker" را اعطا کنید تا مطمئن شوید که عملکردهای Cloud برای همه کاربران قابل دسترسی است (فقط به این دلیل که این یک برنامه آزمایشی است).
7. یک راه حل را امتحان کنید
اگر API_KEY لازم را برای رویکرد فراخوانی تابع Geocoding معکوس ندارید، یا به دلایلی تابع Cloud را اجرا نکردهاید، میتوانید موارد زیر را به عنوان جایگزین انجام دهید:
- فایل CITIBIKE_STATIONS.csv را از مخزن در پوشه پروژه Cloud Shell خود دانلود کنید و به آن پوشه بروید.
- با استفاده از دستور زیر در ترمینال Cloud Shell داده ها را از csv به مجموعه داده BigQuery جدید
mdm_gemini
خود صادر کنید:
bq load --source_format=CSV --skip_leading_rows=1 mdm_gemini.CITIBIKE_STATIONS ./CITIBIKE_STATIONS.csv \ name:string,latlng:string,capacity:numeric,num_bikes_available:numeric,num_docks_available:numeric,last_reported:timestamp,full_address_string:string
8. جدول ایجاد کنید و داده های آدرس را غنی کنید
مرحله 1: جدول را ایجاد کنید
Imp: اگر از راه حل استفاده کرده اید از این مرحله بگذرید زیرا باید جدول را قبلا ایجاد کرده باشید.
اگر از راه حل استفاده نکرده اید، DDL زیر را در BigQuery SQL Editor اجرا کنید:
CREATE TABLE mdm_gemini.CITIBIKE_STATIONS as (
select name, latitude || ',' || longitude as latlong, capacity, num_bikes_available, num_docks_available,last_reported,
'' as full_address_string
from bigquery-public-data.new_york_citibike.citibike_stations) ;
اکنون بیایید داده های آدرس را با فراخوانی تابع راه دور در مختصات طول و عرض جغرافیایی موجود در جدول غنی کنیم. شرایط زیر را برای داده ها تنظیم کنید:
- گزارش شده در سال 2024
- تعداد دوچرخه های موجود > 0
- ظرفیت > 100
کوئری زیر را اجرا کنید:
update `mdm_gemini.CITIBIKE_STATIONS`
set full_address_string = `mdm_gemini.MDM_GEMINI`(latlong)
where EXTRACT(YEAR FROM last_reported) = 2024 and num_bikes_available > 0 and capacity > 100;
مرحله 2: یک منبع دوم برای داده های مکان ایستگاه دوچرخه ایجاد کنید
حتی اگر از روش راهحل برای ایجاد جدول استفاده کردهاید، این مرحله را نادیده نگیرید.
در این مرحله، منبع دومی را برای داده های مکان ایستگاه دوچرخه به منظور این آزمایشگاه ایجاد می کنید. این برای نشان دادن این است که MDM داده ها را از چندین منبع کنار هم می آورد و حقیقت طلایی را شناسایی می کند.
DDL های زیر را در BigQuery SQL Editor برای ایجاد دومین منبع داده مکان با دو رکورد در آن اجرا کنید. بیایید نام این جدول را mdm_gemini.CITIBIKE_STATIONS_SOURCE2
بگذاریم و دو رکورد را در آن قرار دهیم.
CREATE TABLE mdm_gemini.CITIBIKE_STATIONS_SOURCE2 (name STRING(55), address STRING(1000), embeddings_src ARRAY<FLOAT64>);
insert into mdm_gemini.CITIBIKE_STATIONS_SOURCE2 VALUES ('Location broadway and 29','{ "DOOR_NUMBER": "1593", "STREET_ADDRESS": "Broadway", "AREA": null, "CITY": "New York", "TOWN": null, "COUNTY": "New York County", "STATE": "NY", "COUNTRY": "USA", "ZIPCODE": "10019", "LANDMARK": null}', null);
insert into mdm_gemini.CITIBIKE_STATIONS_SOURCE2 VALUES ('Allen St & Hester','{ "DOOR_NUMBER": "36", "STREET_ADDRESS": "Allen St", "AREA": null, "CITY": "New York", "TOWN": null, "COUNTY": "New York County", "STATE": "NY", "COUNTRY": "USA", "ZIPCODE": "10002", "LANDMARK": null}', null);
9. جاسازی هایی برای داده های آدرس ایجاد کنید
جاسازی ها بردارهای عددی با ابعاد بالا هستند که یک موجودیت معین را نشان می دهند، مانند یک قطعه متن یا یک فایل صوتی. مدلهای یادگیری ماشینی (ML) از تعبیهها برای رمزگذاری معنایی در مورد چنین موجوداتی استفاده میکنند تا استدلال و مقایسه آنها آسانتر شود. به عنوان مثال، یک عملیات رایج در مدلهای خوشهبندی، طبقهبندی و توصیه، اندازهگیری فاصله بین بردارها در یک فضای تعبیهشده برای یافتن مواردی است که از نظر معنایی بیشترین شباهت را دارند. Vertex AI text-embeddings API به شما امکان می دهد با استفاده از هوش مصنوعی Generative در Vertex AI یک جاسازی متن ایجاد کنید. تعبیههای متن، نمایشهای عددی متن هستند که روابط بین کلمات و عبارات را نشان میدهند. اطلاعات بیشتر در مورد جاسازی متن Vertex AI را در اینجا بخوانید.
- DDL زیر را اجرا کنید تا یک مدل راه دور برای Vertex AI embeddings text API ایجاد کنید:
CREATE OR REPLACE MODEL `mdm_gemini.CITIBIKE_STATIONS_ADDRESS_EMB`
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS (ENDPOINT = 'textembedding-gecko@latest');
- اکنون که مدل جاسازی از راه دور آماده است، بیایید جاسازیهایی را برای منبع اول ایجاد کنیم و با استفاده از عبارت زیر آن را در یک جدول ذخیره کنیم:
CREATE TABLE `mdm_gemini.CITIBIKE_STATIONS_SOURCE1` AS (
SELECT *
FROM ML.GENERATE_EMBEDDING(
MODEL `mdm_gemini.CITIBIKE_STATIONS_ADDRESS_EMB`,
( select name, full_address_string as content from `mdm_gemini.CITIBIKE_STATIONS`
where full_address_string is not null )
)
);
به جای ایجاد یک جدول جدید، می توانید فیلد نتیجه embeddings را نیز در همان جدول mdm_gemini.CITIBIKE_STATIONS که قبلا ایجاد کردید ذخیره کنید.
- برای ایجاد جاسازی برای داده های آدرس در جدول CITIBIKE_STATIONS_SOURCE2، پرس و جو زیر را اجرا کنید:
update `mdm_gemini.CITIBIKE_STATIONS_SOURCE2` a set embeddings_src =
(
SELECT ml_generate_embedding_result
FROM ML.GENERATE_EMBEDDING(
MODEL `mdm_gemini.CITIBIKE_STATIONS_ADDRESS_EMB`,
( select name, address as content from `mdm_gemini.CITIBIKE_STATIONS_SOURCE2` ))
where name = a.name) where name is not null;
این باید تعبیههایی را برای منبع دوم ایجاد کند. توجه داشته باشید که فیلد embeddings را در همان جدول CITIBIKE_STATIONS_SOURCE2 ایجاد کرده ایم.
- برای تجسم جاسازی های ایجاد شده برای جداول داده منبع 1 و 2، پرس و جو زیر را اجرا کنید:
select name,address,embeddings_src from `mdm_gemini.CITIBIKE_STATIONS_SOURCE2`;
select name,content,ml_generate_embedding_result from `mdm_gemini.CITIBIKE_STATIONS_SOURCE1`;
حالا بیایید جلو برویم و جستجوی برداری را برای شناسایی موارد تکراری انجام دهیم.
10. جستجوی برداری را برای نشان دادن آدرس های تکراری اجرا کنید
در این مرحله، ستون آدرس embeddings ml_generate_embedding_result جدول mdm_gemini.CITIBIKE_STATIONS_SOURCE1 را برای دو جاسازی برتر که با هر ردیف از داده ها در ستون embeddings_src جدول mdm_gemini.CITIBIKE_CE_STATIONS مطابقت دارند، جستجو می کنید.
برای این کار کوئری زیر را اجرا کنید:
select query.name name1,base.name name2,
/* (select address from mdm_gemini.CITIBIKE_STATIONS_SOURCE2 where name = query.name) content1, base.content content2, */
distance
from VECTOR_SEARCH(
TABLE mdm_gemini.CITIBIKE_STATIONS_SOURCE1,
'ml_generate_embedding_result',
(SELECT * FROM mdm_gemini.CITIBIKE_STATIONS_SOURCE2),
'embeddings_src',
top_k => 2
) where query.name <> base.name
order by distance desc;
جدولی که ما در حال پرس و جو هستیم: mdm_gemini.CITIBIKE_STATIONS_SOURCE1
در فیلد ml_generate_embedding_result
جدولی که به عنوان پایه استفاده می کنیم: mdm_gemini.CITIBIKE_STATIONS_SOURCE2
در فیلد embeddings_src
top_k: تعداد نزدیکترین همسایگان را برای بازگشت مشخص می کند. مقدار پیش فرض 10 است. یک مقدار منفی به عنوان بی نهایت در نظر گرفته می شود، به این معنی که همه مقادیر به عنوان همسایه شمارش می شوند و برگردانده می شوند.
distance_type: نوع متریک مورد استفاده برای محاسبه فاصله بین دو بردار را مشخص می کند. انواع فاصله پشتیبانی شده اقلیدسی و کسینوس هستند. پیش فرض اقلیدسی است.
نتیجه پرس و جو به شرح زیر است:
همانطور که می بینید، این دو نزدیکترین همسایه (به عبارت دیگر، نزدیکترین موارد تکراری) را برای دو ردیف در CITIBIKE_STATIONS_SOURCE2
از CITIBIKE_STATIONS_SOURCE1
فهرست کرده است. از آنجایی که distance_type
نامشخص است، فرض میکند که اقلیدسی است و فاصله به عنوان فواصل در مقادیر TEXT آدرس بین دو منبع خوانده میشود که کمترین آن مشابهترین متنهای آدرس است.
بیایید distance_type
را با استفاده از کوئری زیر روی کسینوس قرار دهیم:
select query.name name1,base.name name2,
/* (select address from mdm_gemini.CITIBIKE_STATIONS_SOURCE2 where name = query.name) content1, base.content content2, */
distance
from VECTOR_SEARCH(
TABLE mdm_gemini.CITIBIKE_STATIONS_SOURCE1,
'ml_generate_embedding_result',
(SELECT * FROM mdm_gemini.CITIBIKE_STATIONS_SOURCE2),
'embeddings_src',
top_k => 2,distance_type => 'COSINE'
) where query.name <> base.name
order by distance desc;
نتیجه پرس و جو به شرح زیر است:
هر دو پرس و جو (از هر دو نوع فاصله) بر اساس فاصله DESCENDING مرتب می شوند که به این معنی است که می خواهیم نتایج را به ترتیب کاهش فاصله لیست کنیم. اما متوجه خواهید شد که ترتیب فاصله پرس و جو دوم معکوس شده است. می توانید حدس بزنید چرا؟
بله!! درست متوجه شدید! در تشابه کسینوس، عدد بزرگتر به معنای شباهت بیشتر و فاصله کمتر است. در فاصله اقلیدسی، عدد بزرگتر به معنای فاصله بیشتر بین مقادیر است.
برای اطلاعات بیشتر در مورد درک MDM و نکاتی برای درک تفاوت و کاربردهای اقلیدسی و کسینوس، وبلاگ را بخوانید.
11. پاکسازی کنید
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این پست، این مراحل را دنبال کنید:
- در کنسول Google Cloud، به صفحه مدیریت منابع بروید.
- در لیست پروژه، پروژه ای را که می خواهید حذف کنید انتخاب کنید و سپس روی Delete کلیک کنید.
- در محاوره، شناسه پروژه را تایپ کنید و سپس روی Shut down کلیک کنید تا پروژه حذف شود.
- اگر میخواهید پروژه خود را حفظ کنید، مراحل بالا را رد کنید و با رفتن به Cloud Function، تابع Cloud را حذف کنید و از لیست توابع، موردی را که میخواهید حذف کنید را علامت بزنید و روی Delete کلیک کنید.
12. تبریک می گویم
تبریک می گویم! شما قدرت استفاده از Gemini 1.0 Pro و Function Calling را در تبدیل چند فعالیت MDM به قابلیتهای هوش مصنوعی مولد ساده و در عین حال قدرتمند، قطعی و قابل اعتماد نشان دادهاید. اکنون که می دانید، با خیال راحت راه های دیگری را برای اجرای همان use case یا سایر قابلیت های MDM شناسایی کنید. آیا مجموعه داده هایی وجود دارد که بتوانید اعتبار سنجی کنید، شکاف های اطلاعاتی را که بتوانید پر کنید، یا وظایفی وجود دارد که می توانند با تماس های ساختاریافته در پاسخ های هوش مصنوعی مولد شما خودکار شوند؟ برای راهنمایی عمیق تر به مستندات Vertex AI ، BigQuery Remote Functions ، Cloud Functions ، Embeddings و Vector Search مراجعه کنید. در اینجا مخزن github برای این پروژه است. به ما اطلاع دهید که با این یادگیری چه چیزی می سازید!