Quản lý dữ liệu chính được đơn giản hóa: So khớp & Hợp nhất với AI tạo sinh!

1. Tổng quan

Quản lý dữ liệu chính là gì?

Quản lý dữ liệu chính (MDM) là việc tạo ra một nguồn đáng tin cậy duy nhất cho dữ liệu quan trọng nhất của tổ chức. Hãy tưởng tượng một thư viện được sắp xếp tỉ mỉ, nơi mọi cuốn sách (điểm dữ liệu) đều được gắn nhãn chính xác, luôn mới nhất và dễ tìm.

Dữ liệu chính đại diện cho các thực thể kinh doanh cốt lõi, cơ bản, cần thiết cho hoạt động của một công ty. Sau đây là các phần tử chính của dữ liệu chính:

  • Thực thể kinh doanh: các thực thể như khách hàng, sản phẩm, nhà cung cấp, địa điểm và nhân viên là những danh từ mà doanh nghiệp của bạn xoay quanh
  • Giá trị nhận dạng: giá trị nhận dạng riêng biệt đảm bảo mỗi thực thể đều riêng biệt và có thể theo dõi trên các hệ thống
  • Thuộc tính: đặc điểm mô tả từng thực thể, ví dụ: địa chỉ của khách hàng, giá của sản phẩm, v.v.

Để giúp bạn hiểu rõ hơn về dữ liệu chính, hãy so sánh dữ liệu này với dữ liệu giao dịch. Dữ liệu giao dịch ghi lại các sự kiện riêng lẻ (giao dịch mua, lô hàng, v.v.). Trong khi đó, dữ liệu chính cung cấp bối cảnh cho những sự kiện đó bằng cách xác định các thực thể liên quan. Ví dụ: một giao dịch bán hàng liên kết với dữ liệu chính của khách hàng, sản phẩm và nhân viên bán hàng.

Mặc dù việc triển khai MDM mạnh mẽ là điều cần thiết để đưa ra quyết định chiến lược, nhưng việc này có thể phức tạp và tốn nhiều tài nguyên. Đây là lúc sức mạnh biến đổi của AI tạo sinh, đặc biệt là các mô hình như Gemini 1.0 Pro, Gemini 1.0 Pro Vision và Gemini 1.5 Pro, phát huy tác dụng.

2. Mục tiêu

Trong lớp học lập trình này, bạn sẽ minh hoạ cách Gemini 1.0 Pro đơn giản hoá các ứng dụng quản lý dữ liệu chính như làm phong phú và loại bỏ dữ liệu trùng lặp, đối với dữ liệu citibike_stations có trong tập dữ liệu công khai của BigQuery.

Những thứ bạn sẽ sử dụng

  1. Tập dữ liệu công khai của BigQuery bigquery-public-data.new_york_citibike.
  2. Gemini Function Calling (một Java Cloud Function lấy thông tin địa chỉ bằng API mã hoá địa lý ngược cho các toạ độ có sẵn trong dữ liệu citibike_stations).
  3. Vertex AI Embeddings API và Vector Search trong BigQuery để xác định các mục trùng lặp.

Sản phẩm bạn sẽ tạo ra

  1. Bạn sẽ tạo một tập dữ liệu BigQuery cho trường hợp sử dụng này. Trong tập dữ liệu này, bạn sẽ tạo một bảng đích có dữ liệu từ bảng tập dữ liệu công khai bigquery-public-data.new_york_citibike.citibike_stations.
  2. Bạn sẽ triển khai Cloud Function có tính năng Gọi hàm của Gemini để chuẩn hoá địa chỉ.
  3. Bạn sẽ lưu trữ dữ liệu địa chỉ được làm phong phú trong các bảng đích (từ hai nguồn được cung cấp cho bản minh hoạ này).
  4. Bạn sẽ gọi Vertex AI Embeddings API từ BigQuery trên dữ liệu địa chỉ.
  5. Bạn sẽ sử dụng tính năng Tìm kiếm vectơ của BigQuery để xác định các bản ghi trùng lặp.

Sơ đồ sau đây minh hoạ luồng dữ liệu và các bước liên quan đến việc triển khai.

Luồng cấp cao của trường hợp sử dụng

3. Yêu cầu

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Một dự án trên Google Cloud đã bật tính năng thanh toán.

4. Trước khi bắt đầu

  1. Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trong một dự án hay không .
  3. Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud và được tải sẵn bq. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Cloud.

Hình ảnh nút Kích hoạt Cloud Shell

  1. Sau khi kết nối với Cloud Shell, bạn có thể kiểm tra để đảm bảo rằng bạn đã được xác thực và dự án được đặt thành mã dự án của bạn bằng lệnh sau:
gcloud auth list
  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn.
gcloud config list project
  1. Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
gcloud config set project <YOUR_PROJECT_ID>
  1. Chuyển đến Gemini for Google Cloud Marketplace để bật API. Bạn cũng có thể sử dụng lệnh sau trong cửa sổ dòng lệnh Cloud Shell:
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
  1. Đảm bảo rằng bạn đã bật các API BigQuery, BigQuery Connection, Cloud Function, Cloud Run, Vertex AI và Cloud Build. Bạn có thể dùng bảng điều khiển thay cho lệnh gcloud thông qua đường liên kết này.

Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.

5. Tạo tập dữ liệu BigQuery và mối kết nối bên ngoài

Hãy bắt đầu bằng cách tạo một tập dữ liệu và mối kết nối tài nguyên trên Cloud.

Tập dữ liệu trong BigQuery là một vùng chứa cho tất cả các bảng và đối tượng của ứng dụng.

Để tạo tập dữ liệu, hãy làm như sau:

  1. Chuyển đến trang BigQuery trong bảng điều khiển Google Cloud.
  2. Trong bảng Trình khám phá, hãy chọn dự án mà bạn muốn tạo tập dữ liệu.
  3. Mở rộng tùy chọn Thao tác (biểu tượng dấu ba chấm dọc), rồi nhấp vào Tạo tập dữ liệu.

Hình ảnh về trình đơn Thao tác và lựa chọn Tạo tập dữ liệu

  1. Nhập mdm_gemini vào trường Mã nhận dạng tập dữ liệu.
  2. Đặt loại vị trí là Multi-region và chấp nhận giá trị mặc định là US(multiple regions in United States.
  3. Nhấp vào Tạo tập dữ liệu.
  4. Kiểm tra để đảm bảo tập dữ liệu được tạo và liệt kê trong mã dự án của bạn trong ngăn Trình khám phá.

Bạn cần có một kết nối BigQuery để tương tác với Cloud Function. Để tạo một hàm từ xa, bạn phải tạo một kết nối BigQuery. Trong lớp học lập trình này, chúng ta sẽ sử dụng kết nối BigLake để truy cập vào mô hình từ BigQuery thông qua Cloud Function. Các mối kết nối BigLake giúp kết nối nguồn dữ liệu bên ngoài trong khi vẫn duy trì quyền kiểm soát truy cập và bảo mật chi tiết của BigQuery, trong trường hợp này là Vertex AI Gemini Pro API.

Để tạo kết nối BigLake, hãy làm như sau:

  1. Nhấp vào Thêm trong ngăn Trình khám phá của trang BigQuery.

Bảng điều khiển BigQuery có nút THÊM được làm nổi bật để thêm kết nối bên ngoài

  1. Nhấp vào Kết nối với nguồn dữ liệu bên ngoài.
  2. Trong danh sách Connection type (Loại kết nối), hãy chọn Vertex AI remote models, remote functions and BigLake (Cloud Resource) (Mô hình từ xa, hàm từ xa và BigLake (Tài nguyên đám mây) của Vertex AI).
  3. Trong trường Mã kết nối, hãy nhập tên kết nối là gemini-bq-conn.
  4. Đặt loại vị trí là Multi-region và chấp nhận giá trị mặc định là US(multiple regions in United States.
  5. Nhấp vào Tạo mối kết nối.
  6. Nhấp vào Chuyển đến phần kết nối,rồi sao chép mã tài khoản dịch vụ trong ngăn Thông tin kết nối.

Ảnh chụp màn hình thông tin kết nối

  1. Chuyển đến trang IAM và Quản trị rồi nhấp vào Cấp quyền truy cập.
  2. Dán mã tài khoản dịch vụ vào trường Nguyên tắc mới.
  3. Chọn vai trò Vertex AI user trong danh sách vai trò, rồi nhấp vào Lưu.

Cấp quyền truy cập vào ảnh chụp màn hình Tài khoản dịch vụ

Bạn đã tạo thành công tập dữ liệu và mối kết nối BigQuery.

6. Triển khai tính năng Gọi hàm của Gemini (Hàm Java Cloud)

Hãy làm theo các bước sau để triển khai Java Cloud Function có tính năng Gọi hàm của Gemini.

  1. Sao chép kho lưu trữ github từ cửa sổ dòng lệnh Cloud Shell bằng lệnh sau:
git clone https://github.com/AbiramiSukumaran/GeminiFunctionCalling
  1. Thay thế trình giữ chỗ YOUR_API_KEYYOUR_PROJECT_ID bằng các giá trị của bạn.

Nếu đọc blog tại đây, bạn sẽ biết rằng các phương thức triển khai lệnh gọi hàm sử dụng Reverse Geocoding API. Bạn có thể tạo API_KEY của riêng mình theo hướng dẫn tại đây.

  1. Trong cửa sổ dòng lệnh Cloud Shell, hãy chuyển đến thư mục dự án mới sao chép GeminiFunctionCalling rồi chạy câu lệnh sau để tạo và triển khai Cloud Function:
gcloud functions deploy gemini-fn-calling --gen2 --region=us-central1 --runtime=java11 --source=. --entry-point=cloudcode.helloworld.HelloWorld --trigger-http

Nói "y" khi bạn được nhắc với câu hỏi "Cho phép lệnh gọi chưa xác thực". Tốt nhất là bạn nên thiết lập quy trình xác thực cho các ứng dụng doanh nghiệp của mình theo đề xuất. Nhưng vì đây là một ứng dụng minh hoạ nên chúng ta sẽ tiếp tục mà không cần xác thực.

Đầu ra là một URL REST ở định dạng sau:

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

  1. Kiểm thử Cloud Function này bằng cách chạy lệnh sau trong cửa sổ dòng lệnh:
gcloud functions call gemini-fn-calling --region=us-central1 --gen2 --data '{"calls":[["40.714224,-73.961452"]]}'

Câu trả lời cho một câu lệnh mẫu ngẫu nhiên:

 '{"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}}```"]}'

Các tham số yêu cầu và phản hồi của Cloud Functions này được triển khai theo cách tương thích với lệnh gọi hàm từ xa của BigQuery. Bạn có thể sử dụng trực tiếp dữ liệu này từ dữ liệu BigQuery tại chỗ. Điều này có nghĩa là nếu dữ liệu đầu vào (dữ liệu vĩ độ và kinh độ) của bạn nằm trong BigQuery, thì bạn có thể gọi hàm từ xa trên dữ liệu đó và nhận được phản hồi của hàm. Phản hồi này có thể được lưu trữ hoặc xử lý trực tiếp trong BigQuery.

  1. Chạy DDL sau đây từ BigQuery để tạo một hàm từ xa gọi Cloud Functions đã triển khai này:
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
 );

Kiểm thử truy vấn để sử dụng hàm từ xa mới đã tạo:

SELECT mdm_gemini.MDM_GEMINI(latlong) from mdm_gemini.CITIBIKE_STATIONS limit 1;

Nếu truy vấn kiểm thử sử dụng hàm từ xa mới được tạo trong BigQuery không thành công do vấn đề về quyền của Cloud Functions, hãy chuyển đến Cloud Functions trong Google Cloud Console rồi tìm Cloud Function đã triển khai có tên "gemini-fn-calling". Chuyển đến thẻ quyền, thêm thực thể chính là "allUsers" và cấp vai trò "Cloud Functions Invoker" để đảm bảo tất cả người dùng đều có thể truy cập vào Cloud Functions (chỉ vì đây là một ứng dụng minh hoạ).

7. Thử một giải pháp

Nếu không có API_KEY cần thiết cho phương pháp gọi hàm Địa lý mã hoá ngược hoặc không triển khai Cloud Function vì một lý do nào đó, bạn có thể thực hiện những việc sau đây để thay thế:

  1. Tải tệp CITIBIKE_STATIONS.csv từ kho lưu trữ vào thư mục dự án Cloud Shell rồi chuyển đến thư mục đó.
  2. Xuất dữ liệu từ tệp csv vào tập dữ liệu BigQuery mới mdm_gemini bằng lệnh sau trong 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. Tạo bảng và làm phong phú dữ liệu địa chỉ

Bước 1: Tạo bảng

Lưu ý quan trọng: Bỏ qua bước này nếu bạn đã sử dụng giải pháp thay thế vì bạn phải tạo bảng.

Nếu bạn chưa sử dụng giải pháp thay thế này, hãy chạy DDL sau trong Trình chỉnh sửa SQL của 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) ;

Bây giờ, hãy làm phong phú dữ liệu địa chỉ bằng cách gọi hàm từ xa trên các toạ độ vĩ độ và kinh độ có trong bảng. Đặt các điều kiện sau cho dữ liệu:

  • Được báo cáo trong năm 2024
  • Số lượng xe đạp còn lại > 0
  • Sức chứa > 100

Chạy truy vấn sau:

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;

Bước 2: Tạo nguồn thứ hai cho dữ liệu vị trí của trạm xe đạp

Đừng bỏ qua bước này ngay cả khi bạn đã sử dụng phương pháp khắc phục để tạo bảng.

Trong bước này, bạn sẽ tạo một nguồn thứ hai cho dữ liệu vị trí của trạm xe đạp cho mục đích của lớp học lập trình này. Điều này nhằm minh hoạ rằng MDM đang kết hợp dữ liệu từ nhiều nguồn và xác định nguồn dữ liệu chính xác nhất.

Chạy các DDL sau trong Trình chỉnh sửa SQL của BigQuery để tạo nguồn dữ liệu vị trí thứ hai có 2 bản ghi. Hãy đặt tên cho bảng này là mdm_gemini.CITIBIKE_STATIONS_SOURCE2 và chèn 2 bản ghi vào đó.

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. Tạo các vectơ nhúng cho dữ liệu địa chỉ

Vectơ nhúng là vectơ số có nhiều chiều, biểu thị một thực thể nhất định, chẳng hạn như một đoạn văn bản hoặc tệp âm thanh. Các mô hình học máy (ML) sử dụng các mục nhúng để mã hoá ngữ nghĩa về những thực thể như vậy nhằm giúp bạn dễ dàng suy luận và so sánh chúng. Ví dụ: một thao tác phổ biến trong các mô hình phân cụm, phân loại và đề xuất là đo khoảng cách giữa các vectơ trong không gian nhúng để tìm những mục tương tự nhất về mặt ngữ nghĩa. API nhúng văn bản của Vertex AI cho phép bạn tạo một mục nhúng văn bản bằng AI tạo sinh trên Vertex AI. Vectơ hoá văn bản là biểu diễn bằng số của văn bản, giúp nắm bắt mối quan hệ giữa các từ và cụm từ. Đọc thêm về tính năng Nhúng văn bản của Vertex AI tại đây.

  1. Chạy DDL bên dưới để tạo một mô hình từ xa cho 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. Giờ đây, khi mô hình nhúng từ xa đã sẵn sàng, hãy tạo các embeddings cho nguồn đầu tiên và lưu trữ mục đó trong một bảng bằng cách sử dụng truy vấn sau:
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 )
  )
);

Thay vì tạo một bảng mới, bạn cũng có thể lưu trữ trường kết quả của quá trình nhúng trong cùng một bảng mdm_gemini.CITIBIKE_STATIONS mà bạn đã tạo trước đó.

  1. Để tạo các mục nhúng cho dữ liệu địa chỉ trong bảng CITIBIKE_STATIONS_SOURCE2,hãy chạy truy vấn sau:
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;

Thao tác này sẽ tạo các mục nhúng cho nguồn thứ hai. Xin lưu ý rằng chúng tôi đã tạo trường embeddings trong cùng một bảng CITIBIKE_STATIONS_SOURCE2.

  1. Để trực quan hoá các mục nhúng được tạo cho bảng dữ liệu nguồn 1 và 2, hãy chạy truy vấn sau:
select name,address,embeddings_src from `mdm_gemini.CITIBIKE_STATIONS_SOURCE2`;
select name,content,ml_generate_embedding_result from `mdm_gemini.CITIBIKE_STATIONS_SOURCE1`;

Bây giờ, hãy tiến hành tìm kiếm vectơ để xác định các mục trùng lặp.

10. Chạy một tìm kiếm vectơ để gắn cờ các địa chỉ trùng lặp

Trong bước này, bạn sẽ tìm kiếm 2 giá trị nhúng hàng đầu trong cột ml_generate_embedding_result của bảng mdm_gemini.CITIBIKE_STATIONS_SOURCE1 khớp với từng hàng dữ liệu trong cột embeddings_src của bảng mdm_gemini.CITIBIKE_STATIONS_SOURCE2.

Để thực hiện việc này, hãy chạy truy vấn sau:

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;

Bảng mà chúng ta đang truy vấn: mdm_gemini.CITIBIKE_STATIONS_SOURCE1 trên trường ml_generate_embedding_result

Bảng mà chúng ta sử dụng làm cơ sở: mdm_gemini.CITIBIKE_STATIONS_SOURCE2 trên trường embeddings_src

top_k: chỉ định số lượng láng giềng gần nhất cần trả về. Giá trị mặc định là 10. Giá trị âm được coi là vô cực, tức là tất cả các giá trị đều được tính là lân cận và được trả về.

distance_type: chỉ định loại chỉ số cần dùng để tính khoảng cách giữa hai vectơ. Các loại khoảng cách được hỗ trợ là EuclideanCosine. Mặc định là Euclidean.

Kết quả của truy vấn như sau:

Tập hợp kết quả

Như bạn có thể thấy, phương pháp này đã liệt kê 2 điểm dữ liệu láng giềng gần nhất (nói cách khác là các bản sao gần nhất) cho 2 hàng trong CITIBIKE_STATIONS_SOURCE2 từ CITIBIKE_STATIONS_SOURCE1. Vì distance_type không được chỉ định, nên giả định rằng đó là Euclid và khoảng cách được đọc là khoảng cách trong các giá trị VĂN BẢN địa chỉ giữa hai nguồn, giá trị thấp nhất là giá trị văn bản địa chỉ tương tự nhất.

Hãy đặt distance_type thành Cosine bằng cách sử dụng truy vấn sau:

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;

Kết quả của truy vấn như sau:

Tập hợp kết quả 2

Cả hai truy vấn (của cả hai loại khoảng cách) đều được sắp xếp theo khoảng cách GIẢM DẦN, tức là chúng ta muốn liệt kê kết quả theo thứ tự giảm dần của khoảng cách. Tuy nhiên, bạn sẽ nhận thấy rằng thứ tự khoảng cách của truy vấn thứ hai bị đảo ngược. Bạn có đoán được lý do không?

Tuyệt!! Bạn đã làm được! Trong độ tương đồng cosine, số càng lớn thì độ tương đồng càng cao và khoảng cách càng nhỏ. Trong khoảng cách Euclide, số càng lớn thì khoảng cách giữa các giá trị càng lớn.

Để biết thêm thông tin về cách hiểu MDM và các mẹo để hiểu rõ sự khác biệt cũng như ứng dụng của khoảng cách Euclidean và khoảng cách Cosine, hãy đọc blog này.

11. Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud của bạn cho các tài nguyên được dùng trong bài đăng này, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Cloud, hãy chuyển đến trang Quản lý tài nguyên.
  2. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Xoá.
  3. Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.
  4. Nếu bạn muốn giữ lại dự án, hãy bỏ qua các bước trên và xoá Cloud Function bằng cách chuyển đến Cloud Functions, rồi trong danh sách các hàm, hãy đánh dấu vào hàm bạn muốn xoá và nhấp vào Xoá.

12. Xin chúc mừng

Xin chúc mừng! Bạn đã chứng minh sức mạnh của việc sử dụng Gemini 1.0 Pro và Lệnh gọi hàm trong việc chuyển đổi một số hoạt động MDM thành các tính năng AI tạo sinh đơn giản nhưng mạnh mẽ, có tính xác định và đáng tin cậy. Giờ đây, bạn đã biết cách triển khai, hãy thoải mái xác định những cách khác để triển khai cùng một trường hợp sử dụng hoặc các chức năng khác của MDM. Có những tập dữ liệu nào bạn có thể xác thực, những khoảng trống thông tin nào bạn có thể điền hoặc những nhiệm vụ nào bạn có thể tự động hoá bằng các lệnh gọi có cấu trúc được nhúng trong câu trả lời của AI tạo sinh? Hãy tham khảo tài liệu về Vertex AI, Hàm từ xa của BigQuery, Cloud Functions, embeddingsTìm kiếm vectơ để biết hướng dẫn chi tiết hơn. Đây là kho lưu trữ github cho dự án này. Hãy cho chúng tôi biết những gì bạn tạo ra nhờ kiến thức này!