تبسيط إدارة البيانات: المطابقة استخدام الذكاء الاصطناعي التوليدي

1. نظرة عامة

ما هي إدارة البيانات الرئيسية؟

تدور إدارة البيانات الرئيسية (MDM) حول إنشاء مصدر واحد وموثوق به للبيانات الأكثر أهمية في مؤسستك. تخيل أن لديك مكتبة منظمة بدقة حيث يتم تصنيف كل كتاب (نقطة بيانات) بشكل صحيح ومحدث ويسهل العثور عليه.

تمثل البيانات الرئيسية كيانات الأعمال الأساسية والأساسية لعمليات الشركة. فيما يلي العناصر الأساسية للبيانات الرئيسية:

  • كيانات الأنشطة التجارية: الكيانات التي يدور حولها نشاطك التجاري، مثل العملاء والمنتجات والمورّدين والمواقع الجغرافية والموظفين.
  • المعرّفات: وهي المعرّفات الفريدة التي تضمن أن يكون كل كيان مختلفًا ويمكن تتبّعه على الأنظمة المختلفة.
  • السمات: السمات التي تصف كلّ كيان، على سبيل المثال، عنوان العميل وسعر المنتج وما إلى ذلك

لمساعدتك على فهم البيانات الرئيسية بشكل أفضل، دعنا نقارنها ببيانات المعاملات. تسجِّل بيانات المعاملات أحداثًا فردية (عملية شراء أو شحنة أو غير ذلك). بينما توفر البيانات الرئيسية سياقًا لتلك الأحداث من خلال تحديد الكيانات المعنية. على سبيل المثال، ترتبط معاملة المبيعات بالبيانات الرئيسية للعميل والمنتج ومندوب المبيعات.

على الرغم من أنّ استخدام "إدارة الأجهزة الجوّالة" الفعّال يُعد أمرًا ضروريًا لاتّخاذ القرارات الاستراتيجية، إلا أنّه قد يكون معقّدًا وتستهلك الكثير من الموارد. وهنا تكمن أهمية الإمكانات التحويلية للذكاء الاصطناعي التوليدي، لا سيما نماذج مثل Gemini 1.0 Pro وGemini 1.0 Pro Vision وGemini 1.5 Pro.

2. الهدف

في هذا الدرس التطبيقي حول الترميز، سنعرض كيف يبسّط Gemini 1.0 Pro تطبيقات إدارة البيانات الرئيسية، مثل تعزيز البيانات وإزالة التكرار، وذلك لبيانات citibike_stations المتوفرة في مجموعة بيانات BigQuery العامة.

ما ستستخدمه

  1. مجموعة بيانات BigQuery العامة bigquery-public-data.new_york_citibike.
  2. استدعاء وظيفة Gemini (دالة Java Cloud التي تحصل على معلومات العنوان باستخدام reverse Geocoding API للإحداثيات المتوفرة مع بيانات citibike_stations)
  3. واجهة برمجة تطبيقات Vertex AI Embeddings وبحث Vector في BigQuery لتحديد التكرارات

ما الذي ستقوم ببنائه

  1. ستنشئ مجموعة بيانات BigQuery لحالة الاستخدام. في مجموعة البيانات هذه، ستُنشئ جدولاً مقصودًا يحتوي على بيانات من جدول مجموعة البيانات العامة bigquery-public-data.new_york_citibike.citibike_stations.
  2. سيكون عليك تفعيل "الوظيفة السحابية" التي تتضمن استدعاء وظيفة Gemini لتوحيد العناوين.
  3. ستخزن بيانات العنوان التفصيلية في الجداول المقصودة (من المصدرين اللذين تم تقديمهما لهذا العرض التوضيحي).
  4. عليك استدعاء واجهة برمجة التطبيقات Vertex AI Embeddings من BigQuery في بيانات العنوان.
  5. ستستخدم BigQuery Vector Search لتحديد السجلات المكررة.

يمثل الرسم البياني التالي تدفق البيانات والخطوات المتضمنة في التنفيذ.

التدفق رفيع المستوى لحالة الاستخدام

3- المتطلبات

  • متصفح، مثل Chrome أو Firefox
  • مشروع على Google Cloud مع تفعيل الفوترة فيه

4. قبل البدء

  1. في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع .
  3. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ويتم تحميلها مسبقًا مع bq. انقر على "تفعيل Cloud Shell" في أعلى وحدة التحكّم في Google Cloud.

تفعيل صورة زر Cloud Shell

  1. بعد الربط بخدمة Cloud Shell، يمكنك التحقّق من أنّه تمت مصادقتك من قبل وأنّ المشروع مضبوط على رقم تعريف المشروع باستخدام الأمر التالي:
gcloud auth list
  1. شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك.
gcloud config list project
  1. إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
  1. انتقِل إلى Gemini في Google Cloud Marketplace لتفعيل واجهة برمجة التطبيقات. يمكنك أيضًا استخدام الأمر التالي في الوحدة الطرفية في Cloud Shell:
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
  1. تأكَّد من تفعيل واجهات برمجة التطبيقات في BigQuery وBigQuery Connection وCloud Function وCloud Run وVertex AI وCloud Build. يتوفّر بديل للأمر gcloud من خلال وحدة التحكّم باستخدام هذا الرابط.

يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها.

5- إنشاء مجموعة بيانات BigQuery واتصال خارجي

لنبدأ بإنشاء مجموعة بيانات واتصال موارد في السحابة الإلكترونية.

مجموعة البيانات في BigQuery هي حاوية لجميع الجداول والعناصر الخاصة بتطبيقك.

لإنشاء مجموعة بيانات، اتّبِع الخطوات التالية:

  1. انتقِل إلى صفحة BigQuery في وحدة التحكّم في Google Cloud.
  2. في لوحة Explorer، اختَر المشروع الذي تريد إنشاء مجموعة البيانات فيه.
  3. وسِّع الخيار الإجراءات (رمز علامة الحذف الرأسي)، وانقر على إنشاء مجموعة بيانات.

صورة لقائمة &quot;الإجراءات&quot; والخيار &quot;إنشاء مجموعة بيانات&quot;

  1. أدخِل mdm_gemini في حقل رقم تعريف مجموعة البيانات.
  2. اضبط نوع الموقع الجغرافي على Multi-region واقبل القيمة التلقائية، وهي US(multiple regions in United States..
  3. انقر على إنشاء مجموعة بيانات.
  4. تأكَّد من إنشاء مجموعة البيانات وإدراجها ضمن رقم تعريف المشروع في جزء Explorer.

يجب توفُّر اتصال BigQuery للتفاعل مع دالة السحابة الإلكترونية. لإنشاء دالة عن بُعد، عليك إنشاء اتصال BigQuery. في هذا الدرس التطبيقي حول الترميز، سنستخدم اتصال BigLake للوصول إلى النموذج من BigQuery عبر دالة Cloud. تساعد عمليات الربط في BigLake على ربط مصدر البيانات الخارجي مع الاحتفاظ في الوقت نفسه بالتحكّم الدقيق في الوصول إلى BigQuery والتحكّم فيه، وهي في هذه الحالة واجهة Vertex AI Gemini Pro API.

لإنشاء ربط BigLake، اتّبِع الخطوات التالية:

  1. انقر على إضافة في جزء المستكشف من صفحة BigQuery.

وحدة تحكُّم BigQuery مع تمييز الزر &quot;إضافة&quot; لإضافة اتصال خارجي

  1. انقر على عمليات الربط بمصادر بيانات خارجية.
  2. في قائمة "نوع الاتصال"، اختَر نماذج Vertex AI عن بُعد والوظائف عن بُعد وBigLake (Cloud Resource).
  3. في الحقل معرّف الاتصال، أدخِل اسم عملية الربط على النحو التالي: gemini-bq-conn.
  4. اضبط نوع الموقع الجغرافي على Multi-region واقبل القيمة التلقائية، وهي US(multiple regions in United States..
  5. انقر على إنشاء عملية ربط.
  6. انقر على الانتقال إلى الاتصال، ثم انسخ رقم تعريف حساب الخدمة في لوحة معلومات الاتصال.

لقطة شاشة لمعلومات الاتصال

  1. انتقِل إلى إدارة الهوية وإمكانية الوصول "المشرف" وانقر على منح إذن الوصول.
  2. الصِق رقم تعريف حساب الخدمة في حقل المبادئ الجديدة.
  3. اختَر الدور "Vertex AI user" من قائمة الأدوار، ثم انقر على حفظ.

منح إذن الوصول إلى لقطة شاشة حساب الخدمة

لقد قمت الآن بإنشاء مجموعة البيانات واتصال BigQuery بنجاح.

6- تفعيل ميزة الاتصال بوظيفة Gemini (دالة Java Cloud)

اتّبِع هذه الخطوات لتفعيل وظيفة Java Cloud التي تتضمّن استدعاء وظيفة Gemini.

  1. استنسِخ مستودع GitHub من الوحدة الطرفية في Cloud Shell باستخدام الأمر التالي:
git clone https://github.com/AbiramiSukumaran/GeminiFunctionCalling
  1. استبدِل العنصرَين النائبَين YOUR_API_KEY وYOUR_PROJECT_ID بالقيم.

إذا قرأت المدونة هنا، ستعرف أن تنفيذ الدوال تستخدم Reverse Geocoding API. يمكنك إنشاء API_KEY الخاصة بك من خلال التعليمات هنا.

  1. في الوحدة الطرفية 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

  1. اختبِر "دالة السحابة الإلكترونية" هذه من خلال تنفيذ الأمر التالي من الوحدة الطرفية:
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 الحالية. يعني ذلك أنه إذا كان إدخال البيانات (بيانات خطوط الطول والعرض) موجودًا في BigQuery، فيمكنك استدعاء الدالة عن بُعد على البيانات والحصول على استجابة الدالة التي يمكن تخزينها أو معالجتها داخل BigQuery مباشرةً.

  1. قم بتشغيل DDL التالية من BigQuery لإنشاء دالة بعيدة تستدعي دالة السحابة الإلكترونية المنشورة هذه:
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
 );

اختبار طلب البحث لاستخدام الوظيفة عن بُعد الجديدة التي تم إنشاؤها:

SELECT mdm_gemini.MDM_GEMINI(latlong) من mdm_gemini.CITIBIKE_stationS الحد 1،

إذا تعذَّر تنفيذ طلب البحث الذي يستخدم الدالة عن بُعد الجديدة التي تم إنشاؤها في BigQuery بسبب مشكلة في أذونات دوال Cloud، انتقِل إلى Cloud Functions من خلال Google Cloud Console وحدِّد موقع دالة Cloud المفعّلة المسماة gemini-fn-calling. الانتقال إلى علامة التبويب "الأذونات" وإضافة النموذج الرئيسي باسم "allUsers" ومنح الدور "مُستدعي Cloud Functions" للتأكّد من إمكانية وصول جميع المستخدمين إلى دوال Cloud (فقط لأنّ هذا تطبيق تجريبي).

7. تجربة أحد الحلول البديلة

إذا لم تتوفّر لديك API_KEY اللازمة لأسلوب استدعاء دالة الترميز الجغرافي العكسي، أو لم تكن قد فعّلت وظيفة السحابة الإلكترونية، يمكنك إجراء ما يلي كبديل:

  1. نزِّل الملف CITIBIKE_STATIONS.csv من المستودع إلى مجلد مشروع Cloud Shell وانتقِل إلى ذلك المجلد.
  2. يمكنك تصدير البيانات من ملف CSV إلى مجموعة بيانات BigQuery الجديدة mdm_gemini باستخدام الأمر التالي في "Cloud Shell" Terminal:
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: إنشاء مصدر ثانٍ لبيانات الموقع الجغرافي لمحطة الدراجات

لا تتخطى هذه الخطوة حتى إذا استخدمت نهج الحل البديل لإنشاء الجدول.

في هذه الخطوة، ستنشئ مصدرًا ثانيًا لبيانات موقع محطة الدراجات الهوائية من أجل هذا الدرس التطبيقي حول الترميز. وهذا لإثبات أن إدارة الأجهزة الجوّالة تجمع البيانات من مصادر متعددة معًا وتحدد الحقيقة الذهبية.

قم بتشغيل 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. إنشاء تضمينات لبيانات العنوان

عمليات التضمين عبارة عن متجهات عددية عالية الأبعاد تمثل كيانًا معينًا، مثل جزء من نص أو ملف صوتي. تستخدم نماذج تعلُّم الآلة عمليات تضمين لترميز دلالات حول هذه الكيانات لتسهيل استنتاجها ومقارنتها. على سبيل المثال، إحدى العمليات الشائعة في نماذج التجميع والتصنيف والتوصية هي قياس المسافة بين المتجهات في مساحة التضمين للعثور على العناصر الأكثر تشابهًا من الناحية الدلالة. تتيح لك واجهة برمجة التطبيقات Vertex AI text-embeddings إنشاء نص مضمّن باستخدام الذكاء الاصطناعي التوليدي على Vertex AI. تضمينات النص هي تمثيلات رقمية للنص تجمع العلاقات بين الكلمات والعبارات. يمكنك الاطّلاع على مزيد من المعلومات عن استخدام ميزات Vertex AI Text هنا.

  1. شغِّل نموذج DDL أدناه لإنشاء نموذج بعيد لواجهة برمجة تطبيقات نصوص Vertex AI الخاصة بتضمين النص:
CREATE OR REPLACE MODEL `mdm_gemini.CITIBIKE_STATIONS_ADDRESS_EMB`
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS (ENDPOINT = 'textembedding-gecko@latest');
  1. بعد أن أصبح نموذج التضمينات عن بُعد جاهزًا، سننشئ تضمينات للمصدر الأول ونخزّنه في جدول باستخدام طلب البحث التالي:
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 )
  )
);

بدلاً من إنشاء جدول جديد، يمكنك أيضًا تخزين حقل نتيجة التضمينات في جدول mdm_gemini.CITIBIKE_STATIONS نفسه الذي أنشأته سابقًا.

  1. لإنشاء تضمينات لبيانات العنوان في الجدول 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;

من المفترض أن يؤدي هذا إلى إنشاء تضمينات للمصدر الثاني. تجدر الإشارة إلى أننا أنشأنا حقل التضمينات في الجدول نفسه CITIBIKE_STATIONS_SOURCE2.

  1. لعرض التضمينات التي تم إنشاؤها للجدولين 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. إجراء بحث متّجه لوضع علامة على العناوين المكرّرة

في هذه الخطوة، ستبحث في عمود "تضمينات العناوين" ml_generate_embedding_result في الجدول mdm_gemini.CITIBIKE_stationS_SOURCE1 لمعرفة أهم تضمينَين مطابقَين لكل صف من البيانات في العمود embeddings_src من الجدول mdm_gemini.CITIBIKE_stationS_SOURCE2.

للقيام بذلك، قم بتشغيل الاستعلام التالي:

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 على Cosine باستخدام الاستعلام التالي:

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;

وتكون نتيجة الاستعلام كما يلي:

مجموعة النتائج 2

يتم ترتيب كلا طلبَي البحث (لكلا نوعَي المسافة) حسب المسافة DESCENDING، مما يعني أننا نريد سرد النتائج بترتيب تنازلي. لكنك ستلاحظ أن ترتيب المسافة للاستعلام الثاني معكوس. هل يمكنك تخمين السبب؟

نعم!! لقد حددت الإجابة الصحيحة. في تشابه جيب التمام، يعني الرقم الأكبر تشابه أكبر ومسافة أصغر. في المسافة الإقليدية، يعني العدد الأكبر مسافة أكبر بين القيم.

للحصول على مزيد من المعلومات حول فهم "إدارة الأجهزة الجوّالة" (MDM) والحصول على نصائح لفهم الفرق بين اللغتين الإقليدية وجيب التمام وتطبيقاتهما، يمكنك قراءة المدوّنة.

11. تَنظيم

لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المُستخدَمة في هذه المشاركة، يُرجى اتّباع الخطوات التالية:

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى صفحة إدارة الموارد.
  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على حذف.
  3. في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف التشغيل لحذف المشروع.
  4. إذا أردت الاحتفاظ بمشروعك، تخطّي الخطوات أعلاه وحذف "دالة السحابة الإلكترونية" من خلال الانتقال إلى Cloud Functions ومن قائمة الوظائف، ضَع علامة في المربّع الذي تريد حذفه وانقر على Delete (حذف).

12. تهانينا

تهانينا لقد أثبتت فعالية استخدام Gemini 1.0 Pro ودالة Function Call في تحويل بعض الأنشطة ضمن قسم "إدارة الأجهزة الجوّالة" إلى إمكانات مبسّطة وفعّالة وحاسمة وموثوقة للذكاء الاصطناعي التوليدي. الآن بعد أن عرفت، لا تتردد في تحديد طرق أخرى لتنفيذ حالة الاستخدام نفسها أو وظائف إدارة الأجهزة الجوّالة الأخرى. هل هناك مجموعات بيانات يمكنك التحقّق منها، أو فجوات في المعلومات يمكنك سدها، أو مهام يمكن أتمتتها من خلال المكالمات المنظَّمة المضمَّنة في ردود الذكاء الاصطناعي التوليدي؟ يمكنك الاطّلاع على مستندات Vertex AI ودوال BigQuery عن بُعد وCloud Functions وعمليات التضمين وVector Search للحصول على إرشادات أكثر تفصيلاً. في ما يلي مستودع GitHub لهذا المشروع. دعنا نعرف ما الذي تبنيه من خلال هذا التعلم!