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

1. نظرة عامة

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

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

تمثّل البيانات الرئيسية كيانات الأنشطة التجارية الأساسية والجوهرية التي تُعدّ ضرورية لعمليات الشركة. في ما يلي العناصر الرئيسية للبيانات الرئيسية:

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

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

على الرغم من أنّ تنفيذ إدارة خدمات إدارة الهوية وإمكانية الوصول (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 تحصل على معلومات العنوان باستخدام واجهة برمجة التطبيقات لعكس الترميز الجغرافي للإحداثيات المتاحة مع بيانات citibike_stations)
  3. ‫Vertex AI Embeddings API وVector Search في BigQuery لتحديد النُسخ المكرّرة

ما ستُنشئه

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

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

خطوات تنفيذ حالة الاستخدام العالية المستوى

3- المتطلبات

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

4. قبل البدء

  1. في Google Cloud Console، في صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشِئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع .
  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. في لوحة المستكشف، اختَر المشروع الذي تريد إنشاء مجموعة البيانات فيه.
  3. وسِّع خيار الإجراءات (رمز النقاط الرأسية)، وانقر على إنشاء مجموعة بيانات.

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

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

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

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

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

وحدة تحكّم BigQuery مع تمييز الزرّ ADD (إضافة) لإضافة اتصال خارجي

  1. انقر على عمليات الربط بمصادر بيانات خارجية.
  2. في قائمة "نوع الاتصال"، اختَر نماذج Vertex AI البعيدة والدوالّ البعيدة وBigLake (مورد السحابة الإلكترونية).
  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 Function Calling.

  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 ونشرها:
gcloud functions deploy gemini-fn-calling --gen2 --region=us-central1 --runtime=java11 --source=. --entry-point=cloudcode.helloworld.HelloWorld --trigger-http

قُل "نعم" عندما يُطلب منك الإجابة عن أسئلة "السماح بطلبات البيانات غير المعتمَدة". من الأفضل إعداد المصادقة لتطبيقات المؤسسة وفقًا للاقتراح. ولكن بما أنّ هذا تطبيق تجريبي، سنواصل الإجراء بدون مصادقة.

الناتج هو عنوان URL لبروتوكول REST بالشكل التالي:

https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-fn-calling

  1. اختبِر دالة 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}}```"]}'

يتم تنفيذ مَعلمتَي الطلب والاستجابة في Cloud Function هذه بطريقة متوافقة مع استدعاء الدالة عن بُعد في BigQuery. ويمكن استخدامها مباشرةً من بيانات BigQuery في مكانها. وهذا يعني أنّه إذا كانت بيانات الإدخال (بيانات خط الطول والعرض) متوفّرة في BigQuery، يمكنك استدعاء الدالة البعيدة على البيانات والحصول على استجابة الدالة التي يمكن تخزينها أو معالجتها في BigQuery مباشرةً.

  1. شغِّل لغة DDL التالية من BigQuery لإنشاء دالة عن بُعد تستدعي دالة Cloud Function المنشورة هذه:
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) from mdm_gemini.CITIBIKE_STATIONS limit 1;

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

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: إنشاء الجدول

ملاحظة مهمة: يمكنك تخطّي هذه الخطوة إذا كنت قد استخدمت الحلّ البديل، لأنّه من المفترض أنّك سبق أن أنشأت الجدول.

إذا لم تكن قد استخدمت الحلّ البديل، يمكنك تنفيذ لغة تعريف البيانات (DDL) التالية في "محرِّر لغة الاستعلامات البنيوية (SQL) في BigQuery":

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 التالية في "محرر SQL في BigQuery" لإنشاء المصدر الثاني لبيانات الموقع الجغرافي الذي يتضمّن سجلّين. لنسمّ هذا الجدول 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 API إنشاء ميزة تضمين نص باستخدام الذكاء الاصطناعي التوليدي على Vertex AI. تمثل عمليات إدراج النصوص تمثيلاً رقميًا للنص الذي يرصد العلاقات بين الكلمات والعبارات. يمكنك الاطّلاع على مزيد من المعلومات عن ميزة "إدراج النصوص" في Vertex AI هنا.

  1. شغِّل ملف تعريف البيانات الوصفية (DDL) أدناه لإنشاء نموذج عن بُعد لواجهة برمجة التطبيقات Vertex AI text embeddings API:
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. لعرض embeddings التي تم إنشاؤها لجدولَي البيانات المصدر 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: لتحديد نوع المقياس الذي سيتم استخدامه لاحتساب المسافة بين متجهَين أنواع المسافة المتوافقة هي المسافة الإقليدية وجيب التمام. القيمة التلقائية هي Euclidean.

نتيجة طلب البحث هي كما يلي:

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

كما ترى، تم إدراج أقرب جارَين (بمعنى آخر، أقرب نُسخ طبق الأصل) للصفَّين في 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

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

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

لمزيد من المعلومات حول فهم MDM ونصائح لفهم الفرق وتطبيقات Euclidean وCosine، يُرجى قراءة مدوّنة.

11. تَنظيم

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

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

12. تهانينا

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