File PDF, seperti dokumen keuangan, sulit digunakan dalam pipeline RAG karena struktur yang kompleks dan campuran teks, gambar, dan tabel. Tutorial ini menunjukkan cara menggunakan fungsi ML.PROCESS_DOCUMENT bersama dengan parser tata letak Document AI untuk membangun pipeline RAG berdasarkan informasi utama yang diekstrak dari file PDF.
Tujuan
Tutorial ini membahas tugas-tugas berikut:- Membuat Koneksi resource cloud agar Anda dapat terhubung ke Cloud Storage dan Vertex AI dari BigQuery.
- Buat bucket Cloud Storage dan upload file PDF sampel.
- Membuat tabel objek di atas file PDF untuk membuat file PDF tersedia di BigQuery.
- Buat pemroses Document AI yang dapat Anda gunakan untuk mem-parsing file PDF.
- Membuat model jarak jauh yang memungkinkan Anda menggunakan Document AI API untuk mengakses pemroses dokumen dari BigQuery.
- Menggunakan model jarak jauh dengan
fungsi
ML.PROCESS_DOCUMENTuntuk mengurai konten PDF menjadi beberapa bagian, lalu menulis konten tersebut ke tabel BigQuery. - Mengekstrak konten PDF dari data JSON yang ditampilkan oleh fungsi
ML.PROCESS_DOCUMENT, lalu menulis konten tersebut ke tabel BigQuery. - Buat embedding dari konten PDF yang diuraikan, lalu tulis embedding tersebut ke tabel BigQuery. Embedding adalah representasi numerik konten PDF yang memungkinkan Anda melakukan penelusuran dan pengambilan semantik pada konten PDF.
- Gunakan
fungsi
VECTOR_SEARCHpada embedding untuk mengidentifikasi konten PDF yang mirip secara semantik. - Lakukan retrieval-augmented generation (RAG) dengan menggunakan
fungsi
AI.GENERATEuntuk membuat teks, menggunakan hasil penelusuran vektor untuk memperkaya input perintah dan meningkatkan hasil.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- BigQuery: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to Agent Platform models.
- Document AI: You incur costs for calls to the Document AI API.
- Cloud Storage: You incur costs for object storage in Cloud Storage.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
Konsol
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery, BigQuery Connection, Vertex AI, Document AI, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery, BigQuery Connection, Vertex AI, Document AI, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Pastikan Anda memiliki peran berikut di project: Admin Storage, Editor Document AI, Admin BigQuery, Admin IAM Project
Memeriksa peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
-
Di kolom Akun utama, temukan semua baris yang mengidentifikasi Anda atau grup yang Anda ikuti. Untuk mengetahui grup mana saja yang Anda ikuti, hubungi administrator Anda.
- Untuk semua baris yang menentukan atau menyertakan Anda, periksa kolom Peran untuk melihat apakah daftar peran menyertakan peran yang diperlukan.
Memberikan peran
-
Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pilih project.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah alamat email untuk Akun Google.
- Klik Pilih peran, lalu telusuri peran.
- Untuk memberikan peran tambahan, klik Add another role, lalu tambahkan tiap peran tambahan.
- Klik Simpan.
-
gcloud
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan BigQuery, BigQuery Connection, Vertex AI, Document AI, dan Cloud Storage API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable bigquery.googleapis.com
bigqueryconnection.googleapis.com aiplatform.googleapis.com documentai.googleapis.com storage.googleapis.com -
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan BigQuery, BigQuery Connection, Vertex AI, Document AI, dan Cloud Storage API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable bigquery.googleapis.com
bigqueryconnection.googleapis.com aiplatform.googleapis.com documentai.googleapis.com storage.googleapis.com -
Berikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
roles/storage.admin, roles/documentai.editor, roles/bigquery.admin, roles/resourcemanager.projectIamAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ganti kode berikut:
PROJECT_ID: Project ID Anda.USER_IDENTIFIER: ID untuk akun pengguna Anda. Misalnya,myemail@example.com.ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel Explorer, klik nama project Anda.
Klik View actions > Create dataset.
Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial.Untuk Location type, pilih Multi-region, lalu pilih US.
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
bq
Untuk membuat set data baru, gunakan
perintah bq mk --dataset.
Buat set data bernama
bqml_tutorialdengan lokasi data ditetapkan keUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert dengan resource set data yang ditentukan.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Membuat koneksi
Buat koneksi resource Cloud dan dapatkan akun layanan koneksi. Buat koneksi di lokasi yang sama.
Anda dapat melewati langkah ini jika telah mengonfigurasi koneksi default, atau memiliki peran Admin BigQuery.
Pilih salah satu opsi berikut:Konsol
Buka halaman BigQuery.
Di panel kiri, klik Penjelajah:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di panel Explorer, luaskan nama project Anda, lalu klik Connections.
Di halaman Koneksi, klik Buat koneksi.
Untuk Connection type, pilih Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource).
Di kolom Connection ID, masukkan nama untuk koneksi Anda.
Untuk Location type, pilih lokasi untuk koneksi Anda. Koneksi harus ditempatkan bersama resource Anda yang lain seperti set data.
Klik Create connection.
Klik Go to connection.
Di panel Info koneksi, salin ID akun layanan untuk digunakan pada langkah berikutnya.
SQL
Gunakan pernyataan CREATE CONNECTION:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
Ganti kode berikut:
-
CONNECTION_NAME: nama koneksi dalam formatPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_ID, atauCONNECTION_ID. Jika project atau lokasi tidak ada, project dan lokasi akan disimpulkan dari project dan lokasi tempat pernyataan dijalankan. -
FRIENDLY_NAME(opsional): nama deskriptif untuk koneksi. -
DESCRIPTION(opsional): deskripsi koneksi.
-
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Di lingkungan command line, buat koneksi:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Parameter
--project_idakan mengganti project default.Ganti kode berikut:
REGION: region koneksi AndaPROJECT_ID: Project ID Google Cloud AndaCONNECTION_ID: ID untuk koneksi Anda
Saat Anda membuat resource koneksi, BigQuery akan membuat akun layanan sistem unik dan mengaitkannya dengan koneksi.
Pemecahan masalah: Jika Anda mendapatkan error koneksi berikut, update Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Ambil dan salin ID akun layanan untuk digunakan pada langkah berikutnya:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Outputnya mirip dengan hal berikut ini:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Terraform
Gunakan resource google_bigquery_connection.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut membuat koneksi resource Cloud bernama
my_cloud_resource_connection di region US:
Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Memberikan akses ke akun layanan
Pilih salah satu opsi berikut:
Konsol
Buka halaman IAM & Admin.
Klik Berikan Akses.
Dialog Add principals akan terbuka.
Di kolom New principals, masukkan ID akun layanan yang Anda salin sebelumnya.
Di kolom Pilih peran, pilih Document AI, lalu pilih Document AI Viewer.
Klik Add another role.
Di kolom Select a role, pilih Cloud Storage, lalu pilih Storage Object Viewer.
Klik Add another role.
Di kolom Pilih peran, pilih Vertex AI, lalu pilih Pengguna Platform Agen.
Klik Simpan.
gcloud
Gunakan
perintah gcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/documentai.viewer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/storage.objectViewer' --condition=None gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Ganti kode berikut:
PROJECT_NUMBER: nomor project Anda.MEMBER: ID akun layanan yang Anda salin sebelumnya.
Mengupload PDF sampel ke Cloud Storage
Untuk mengupload PDF sampel ke Cloud Storage, ikuti langkah-langkah berikut:
- Download PDF sampel
scf23.pdfdengan membuka https://www.federalreserve.gov/publications/files/scf23.pdf dan mengklik download . - Buat bucket Cloud Storage.
- Upload file
scf23.pdfke bucket.
Membuat tabel objek
Buat tabel objek di atas file PDF di Cloud Storage:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.pdf` WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS( object_metadata = 'SIMPLE', uris = ['gs://BUCKET/scf23.pdf']);
Ganti kode berikut:
LOCATION: lokasi koneksi.CONNECTION_ID: ID koneksi BigQuery Anda.Saat Anda melihat detail koneksi di konsol Google Cloud ,
CONNECTION_IDadalah nilai di bagian terakhir ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi, misalnyaprojects/myproject/locations/connection_location/connections/myconnection.BUCKET: bucket Cloud Storage yang berisi filescf23.pdf. Nilai opsiurilengkap akan terlihat mirip dengan['gs://mybucket/scf23.pdf'].
Membuat pemroses dokumen
Buat prosesor dokumen
berdasarkan prosesor pengurai tata letak
di multi-region us. Salin endpoint prediksi dari halaman
Detail pemroses untuk digunakan di bagian berikutnya.
Membuat model jarak jauh untuk pemroses dokumen
Buat model jarak jauh untuk mengakses pemroses Document AI:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `bqml_tutorial.parser_model` REMOTE WITH CONNECTION `LOCATION.CONNECTION_ID` OPTIONS(remote_service_type = 'CLOUD_AI_DOCUMENT_V1', document_processor = 'PROCESSOR_ID');
Ganti kode berikut:
LOCATION: lokasi koneksi.CONNECTION_ID: ID koneksi BigQuery Anda.Saat Anda melihat detail koneksi di konsol Google Cloud ,
CONNECTION_IDadalah nilai di bagian terakhir ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi, misalnyaprojects/myproject/locations/connection_location/connections/myconnection.PROCESSOR_ID: ID pemroses dokumen. Untuk menemukan nilai ini, lihat detail prosesor, lalu lihat baris ID di bagian Informasi Dasar.
Mengurai file PDF menjadi beberapa bagian
Gunakan pemroses dokumen dengan fungsi ML.PROCESS_DOCUMENT untuk mengurai file PDF menjadi beberapa bagian, lalu tulis konten tersebut ke dalam tabel. Fungsi
ML.PROCESS_DOCUMENT menampilkan potongan PDF dalam format JSON.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE or REPLACE TABLE
bqml_tutorial.chunked_pdfAS ( SELECT * FROM ML.PROCESS_DOCUMENT( MODELbqml_tutorial.parser_model, TABLEbqml_tutorial.pdf, PROCESS_OPTIONS => (JSON '{"layout_config": {"chunking_config": {"chunk_size": 250}}}') ) );
Mengurai data potongan PDF ke dalam kolom terpisah
Ekstrak konten PDF dan informasi metadata dari data JSON yang ditampilkan oleh fungsi ML.PROCESS_DOCUMENT, lalu tulis konten tersebut ke dalam tabel:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk mengurai konten PDF:
CREATE OR REPLACE TABLE
bqml_tutorial.parsed_pdfAS ( SELECT uri, JSON_EXTRACT_SCALAR(json , '$.chunkId') AS id, JSON_EXTRACT_SCALAR(json , '$.content') AS content, JSON_EXTRACT_SCALAR(json , '$.pageFooters[0].text') AS page_footers_text, JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageStart') AS page_span_start, JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageEnd') AS page_span_end FROMbqml_tutorial.chunked_pdf, UNNEST(JSON_EXTRACT_ARRAY(ml_process_document_result.chunkedDocument.chunks, '$')) json );Di editor kueri, jalankan pernyataan berikut untuk melihat subset konten PDF yang diuraikan:
SELECT * FROM `bqml_tutorial.parsed_pdf` ORDER BY id LIMIT 5;
Outputnya mirip dengan hal berikut ini:
+-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+ | uri | id | content | page_footers_text | page_span_start | page_span_end | +-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+ | gs://mybucket/scf23.pdf | c1 | •BOARD OF OF FEDERAL GOVERN NOR RESERVE SYSTEM RESEARCH & ANALYSIS | NULL | 1 | 1 | | gs://mybucket/scf23.pdf | c10 | • In 2022, 20 percent of all families, 14 percent of families in the bottom half of the usual ... | NULL | 8 | 9 | | gs://mybucket/scf23.pdf | c100 | The SCF asks multiple questions intended to capture whether families are credit constrained, ... | NULL | 48 | 48 | | gs://mybucket/scf23.pdf | c101 | Bankruptcy behavior over the past five years is based on a series of retrospective questions ... | NULL | 48 | 48 | | gs://mybucket/scf23.pdf | c102 | # Percentiles of the Distributions of Income and Net Worth | NULL | 48 | 49 | +-----------------------------------+------+------------------------------------------------------------------------------------------------------+-------------------+-----------------+---------------+
Membuat embedding
Buat embedding untuk konten PDF yang diuraikan, lalu tulis ke tabel:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE TABLE `bqml_tutorial.embeddings` AS ( SELECT *, AI.EMBED(content, endpoint => 'text-embedding-005').result AS embedding FROM bqml_tutorial.parsed_pdf );
Menjalankan penelusuran vektor
Jalankan penelusuran vektor terhadap konten PDF yang diuraikan.
Kueri berikut mengambil input teks, membuat embedding untuk input tersebut menggunakan fungsi AI.EMBED, lalu menggunakan fungsi VECTOR_SEARCH untuk mencocokkan embedding input dengan embedding konten PDF yang paling mirip. Hasilnya adalah sepuluh bagian PDF teratas yang paling terkait dengan perubahan kekayaan bersih keluarga.
Buka halaman BigQuery.
Di editor kueri, jalankan pernyataan SQL berikut:
SELECT distance, base.id AS chunk_id, base.page_span_start AS start_page, base.page_span_end AS end_page, base.content FROM VECTOR_SEARCH( TABLE `bqml_tutorial.embeddings`, 'embedding', query_value => AI.EMBED( 'Did the typical family net worth increase? If so, by how much?', endpoint => 'text-embedding-005').result, top_k => 3, OPTIONS => '{"fraction_lists_to_search": 0.01}') ORDER BY distance DESC;
Outputnya mirip dengan hal berikut ini:
+----------+----------+------------+----------+-----------------------------------+ | distance | chunk_id | start_page | end_page | content | +----------+----------+------------+----------+-----------------------------------+ | 0.645685 | 26 | 17 | 18 | 18 Between the first quarter of | | | | | | 2019 and the first quarter of... | +----------+----------+------------+----------+-----------------------------------+ | 0.602665 | 30 | 19 | 21 | ## Net Worth by Family | | | | | | Characteristics... | +----------+----------+------------+----------+-----------------------------------+ | 0.599438 | 24 | 17 | 21 | # Net Worth | | | | | | The net improvements in... | +----------+----------+------------+----------+-----------------------------------+
Membuat teks yang dilengkapi dengan hasil penelusuran vektor
Lakukan penelusuran vektor pada embedding untuk mengidentifikasi konten PDF yang secara semantik serupa, lalu gunakan fungsi AI.GENERATE dengan hasil penelusuran vektor untuk meningkatkan input perintah dan meningkatkan hasil pembuatan teks. Dalam hal ini, kueri menggunakan informasi dari potongan PDF untuk menjawab
pertanyaan tentang perubahan kekayaan bersih keluarga selama satu dekade terakhir.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
SELECT AI.GENERATE( CONCAT('Did the typical family net worth change? How does this compare the SCF survey a decade earlier? Be concise and use the following context:', STRING_AGG(FORMAT("context: %s", base.content), ',\n') ), endpoint => 'gemini-2.5-pro' ).result AS response FROM VECTOR_SEARCH( TABLE `bqml_tutorial.embeddings`, 'embedding', query_value => AI.EMBED( 'Did the typical family net worth increase? If so, by how much?', endpoint => 'text-embedding-005').result, top_k => 3, OPTIONS => '{"fraction_lists_to_search": 0.01}')
Outputnya mirip dengan hal berikut ini:
+-------------------------------------------------------------------------+ | response | +-------------------------------------------------------------------------+ | Yes, the typical family net worth changed significantly. | | | | Real median net worth surged 37% between the 2019 and 2022 SCF surveys. | | This contrasts sharply with a decade earlier (2010-2013), when real | | median net worth decreased 2%. | +-------------------------------------------------------------------------+
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Langkah berikutnya
- Pelajari lebih lanjut fungsi
ML.PROCESS_DOCUMENT. - Pelajari lebih lanjut cara melakukan penelusuran semantik dan RAG.