Monday, June 8, 2026

Solusi Implement Multimodal Vector Search with BigQuery: Challenge Lab

Kali ini kita akan membahas solusi Implement Multimodal Vector Search with BigQuery: Challenge Lab

  • Buka cloudshell
  • Setup Envi dulu
gcloud auth list
	gcloud services enable aiplatform.googleapis.com
export REGION=$(gcloud compute project-info describe --format="value(commonInstanceMetadata.items[google-compute-default-region])")
export PROJECT_ID=$(gcloud config get-value project)
echo "Project ID: $PROJECT_ID"
echo "Region: $REGION"
  • Task 1 eksekusi ( harus nama nya vector_conn)
bq mk --connection --location=$REGION --project_id=$PROJECT_ID --connection_type=CLOUD_RESOURCE vector_conn
export SERVICE_ACCOUNT=$(bq show --format=json --connection $PROJECT_ID.$REGION.vector_conn | jq -r '.cloudResource.serviceAccountId')
echo "Service Account: $SERVICE_ACCOUNT"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/bigquery.dataOwner"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/storage.objectViewer"

gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
  • Task 2 Eksekusi
bq query --use_legacy_sql=false \
"CREATE OR REPLACE EXTERNAL TABLE \`$PROJECT_ID.gcc_bqml_dataset.gcc_image_object_table\`
WITH CONNECTION \`$PROJECT_ID.$REGION.vector_conn\`
OPTIONS (
  object_metadata = 'SIMPLE',
  uris = ['gs://$PROJECT_ID/*']
);"

  • Task 3 eksekusi
bq query --use_legacy_sql=false \
"CREATE OR REPLACE MODEL \`$PROJECT_ID.gcc_bqml_dataset.gcc_embedding\`
REMOTE WITH CONNECTION \`$PROJECT_ID.$REGION.vector_conn\`
OPTIONS (endpoint = 'multimodalembedding@001');"
bq query --use_legacy_sql=false \
"CREATE OR REPLACE TABLE \`$PROJECT_ID.gcc_bqml_dataset.gcc_retail_store_embeddings\`
AS SELECT *, REGEXP_EXTRACT(uri, r'[^/]+$') AS product_name
FROM ML.GENERATE_EMBEDDING(
  MODEL \`$PROJECT_ID.gcc_bqml_dataset.gcc_embedding\`,
  TABLE \`$PROJECT_ID.gcc_bqml_dataset.gcc_image_object_table\`
);"
  • Task 4 eksekusi
bq query --use_legacy_sql=false \
"CREATE OR REPLACE TABLE \`$PROJECT_ID.gcc_bqml_dataset.gcc_vector_search_table\` AS
SELECT base.uri,
       Base.product_name,
       Base.content_type,
       Distance
FROM VECTOR_SEARCH(
  TABLE \`$PROJECT_ID.gcc_bqml_dataset.gcc_retail_store_embeddings\`,
  'Ml_generate_embedding_result',
  (
    SELECT ml_generate_embedding_result AS embedding_col
    FROM ML.GENERATE_EMBEDDING(
      MODEL \`$PROJECT_ID.gcc_bqml_dataset.gcc_embedding\`,
      (SELECT 'Men Sweaters' AS content),
      STRUCT(TRUE AS flatten_json_output)
    )
  ),
  top_k => 2,
  distance_type => 'COSINE'
);"
  • Done

Similar Posts