Tutorial Google File Search Tool: Bangun Aplikasi RAG dengan Gemini API
Pelajari cara membangun aplikasi RAG dengan Google File Search dan Gemini API. Panduan langkah demi langkah dengan kode, chunking, penyaringan metadata, dan sitasi
Dalam tutorial ini, saya akan memandu Anda membangun asisten dokumentasi medis dengan Google File Search. Anda akan melihat cara menyiapkannya, mengimplementasikan kueri, dan menggunakan fitur lanjutan seperti chunking kustom dan penyaringan metadata. Pada akhirnya, Anda akan memahami kapan managed RAG masuk akal dibandingkan membangun stack Anda sendiri.
Apa itu Google File Search Tool?
Membangun aplikasi RAG biasanya berarti berurusan dengan basis data vektor, pipeline embedding, dan banyak infrastruktur. Alat File Search dari Google, yang dirilis pada November 2025, menghilangkan kompleksitas ini dengan sistem RAG terkelola sepenuhnya yang dibangun langsung ke dalam Gemini API.
Alat ini menangani bagian-bagian kompleks untuk Anda: melakukan chunking dokumen, membuat embedding, dan mengelola pencarian semantik tanpa memerlukan alat eksternal seperti Pinecone atau ChromaDB. Alurnya sederhana—unggah file, buat store, lalu mulai melakukan kueri. Anda juga mendapatkan sitasi bawaan yang memungkinkan Anda memverifikasi dari mana jawaban berasal.
Memahami RAG dan Mengapa Google Menyederhanakannya
Gemini File Search memposisikan diri sebagai sistem RAG terkelola. Memahami RAG membantu Anda menggunakan alat ini dengan baik dan memutuskan kapan cocok untuk kasus penggunaan Anda.
Pada intinya, retrieval-augmented generation (RAG) menghubungkan model bahasa dengan pengetahuan eksternal. Sebelum menghasilkan respons, model mengambil informasi relevan dari dokumen Anda, sehingga jawaban berlandaskan pada data Anda sendiri alih-alih hanya mengandalkan data pelatihan.
Tantangan RAG DIY
Meskipun RAG terdengar sederhana dalam konsep, membangun pipeline RAG sendiri berarti mengelola beberapa komponen:
Basis data vektor: Menyiapkan dan memelihara layanan seperti Pinecone, ChromaDB, atau Weaviate untuk menyimpan embedding
Pipeline embedding: Mengonversi dokumen menjadi vektor numerik dan menangani pembaruan saat konten berubah
Strategi chunking: Membagi dokumen menjadi bagian-bagian yang menyeimbangkan konteks dan ketepatan pengambilan
Infrastruktur: Memantau performa, menyetel parameter, dan menangani penskalaan saat data Anda bertambah
Setiap komponen memerlukan keahlian dan pemeliharaan berkelanjutan. Baik Anda membangun sistem produksi yang membutuhkan keandalan maupun prototipe yang membutuhkan kecepatan, beban infrastruktur tetap menjadi hambatan yang sama.
Mengapa managed RAG penting
Layanan terkelola seperti Google File Search menghilangkan hambatan ini. Alih-alih menyetel sistem retrieval, Anda menulis kueri. Alih-alih men-debug pipeline embedding, Anda memvalidasi hasil. Infrastruktur berjalan di latar belakang sementara Anda fokus pada logika aplikasi.
Gemini File Search menangani kompleksitas teknis sementara Anda mengendalikan hal yang penting: dokumen mana yang diindeks, bagaimana cara mengkuerinya, dan bagaimana menggunakan hasilnya. Keseimbangan ini bekerja baik saat Anda membutuhkan kualitas produksi tanpa beban operasional. Untuk latar belakang lebih dalam tentang dasar-dasar RAG, saya sarankan melihat tutorial DataCamp tentang agentic RAG.
Cara terbaik untuk memahami Google File Search adalah dengan menggunakannya. Di bagian berikutnya, Anda akan membangun asisten dokumentasi medis lengkap yang menunjukkan alur kerja penuh dari unggah dokumen hingga respons berlandaskan data dengan sitasi.
Membangun Asisten Dokumentasi Medis dengan Google File Search
Disclaimer: Tutorial ini mendemonstrasikan kapabilitas File Search menggunakan label obat FDA untuk tujuan edukasi saja. Asisten yang Anda bangun tidak dimaksudkan untuk penggunaan klinis, pengambilan keputusan perawatan pasien, atau diagnosis medis. Selalu konsultasikan dengan tenaga kesehatan yang berkualifikasi untuk nasihat medis. Sistem AI dapat menghasilkan informasi yang keliru bahkan dengan landasan dokumen sumber.
Bagian ini memandu Anda membangun asisten dokumentasi medis lengkap menggunakan File Search. Anda akan bekerja dengan label obat FDA untuk tiga obat umum, membuat sistem yang menjawab pertanyaan tentang interaksi obat, efek samping, dan kontraindikasi. Asisten menyediakan jawaban yang dapat diverifikasi dengan mengutip bagian-bagian spesifik dari dokumen sumber.
File Search beroperasi dalam dua fase: Anda mengindeks dokumen sekali, lalu melakukan kueri berulang kali. Anda akan menyiapkan infrastruktur pengindeksan terlebih dahulu, kemudian sepenuhnya fokus pada mengajukan pertanyaan dan menafsirkan respons berlandaskan data.
Langkah 1: Instal API dan konfigurasi autentikasi
Anda memerlukan Python 3.9 atau yang lebih baru. Instal Google Generative AI SDK dan dependensi:
from google import genai
from google.genai import types
import time
from dotenv import load_dotenv
load_dotenv()
client = genai.Client()Didukung oleh
Objek genai.Client() menangani autentikasi secara otomatis menggunakan variabel lingkungan Anda. Anda akan menggunakan objek klien ini untuk semua operasi File Search.
Langkah 2: Buat File Search store
Buat store untuk menampung dokumen yang diindeks:
file_search_store = client.file_search_stores.create(
config={"display_name":"fda-drug-labels"})print(f"Created store: {file_search_store.name}")Didukung oleh
File Search store bertindak sebagai kontainer untuk dokumen yang diindeks. Berbeda dengan unggahan file sementara yang kedaluwarsa setelah 48 jam, store bertahan tanpa batas. Ini berarti Anda mengindeks dokumen sekali dan melakukan kueri ribuan kali tanpa mengunggah ulang atau memproses ulang.
Properti file_search_store.name berisi pengenal unik yang akan Anda referensikan saat melakukan kueri. Bentuknya seperti fileSearchStores/fdadruglabels-abc123. Simpan nilai ini jika Anda perlu mengkueri store dari sesi berbeda.
Langkah 3: Unggah dan indeks dokumen PDF
Untuk tutorial ini, Anda akan bekerja dengan tiga label obat yang disetujui FDA. Unduh PDF berikut dari situs FDA:
Simpan di direktori proyek Anda, lalu unggah ke File Search store Anda:
pdf_files =["metformin.pdf","atorvastatin.pdf","lisinopril.pdf"]for pdf_file in pdf_files:
operation = client.file_search_stores.upload_to_file_search_store(file=pdf_file,
file_search_store_name=file_search_store.name,
config={"display_name": pdf_file.replace(".pdf","")},)# Wait for indexing to completewhilenot operation.done:
time.sleep(3)
operation = client.operations.get(operation)print(f"{pdf_file} indexed")Didukung oleh
Selama unggah, File Search melakukan chunking pada setiap PDF dan mengonversi segmen menjadi embedding menggunakan model gemini-embedding-001. Embedding ini adalah representasi numerik yang menangkap makna semantik, memungkinkan sistem menemukan bagian yang relevan bahkan ketika pertanyaan Anda tidak cocok dengan kata-kata persis di dokumen.
Pola polling (while not operation.done) menangani sifat asinkron dari pengindeksan. Dokumen besar membutuhkan waktu lebih lama untuk diproses, jadi API segera mengembalikan respons, dan Anda memeriksa status penyelesaian secara berkala. Untuk sistem produksi, pertimbangkan menambahkan logika timeout untuk mencegah loop tak berujung.
Setiap chunk mempertahankan metadata yang menghubungkannya kembali ke dokumen sumber dan posisinya. Metadata ini menjadi penting saat Anda mengakses sitasi nanti.
Langkah 4: Kueri informasi satu dokumen
Sekarang lakukan kueri pada dokumen yang telah diindeks:
query1 ="What are the contraindications for metformin?"
response1 = client.models.generate_content(
model="gemini-2.5-flash",
contents=query1,
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]))]),)print(response1.text)Didukung oleh
Ini akan mencetak jawaban yang dihasilkan:
Metformin is contraindicated in several conditions:
* Severe renal impairment (eGFR below 30 mL/min/1.73 m2)
* Acute or chronic metabolic acidosis
* Hypersensitivity to metforminDidukung oleh
File Search mengambil potongan yang paling mirip secara semantik dalam dokumen Anda dan menyediakannya sebagai konteks untuk gemini-2.5-flash, yang kemudian menghasilkan jawaban. Konfigurasi array tools memberi tahu model untuk menggunakan File Search selama proses generasi. Anda dapat menggabungkan File Search dengan alat lain seperti eksekusi kode atau Google Search dalam permintaan yang sama.
Langkah 5: Akses sitasi dan metadata grounding
Ekstrak dokumen mana yang menjadi dasar jawaban:
print("Sources used:")for i, chunk inenumerate(response1.candidates[0].grounding_metadata.grounding_chunks,1):
source_name = chunk.retrieved_context.title
print(f" [{i}] {source_name}")Didukung oleh
Keluaran:
Sources used:
[1] metformin
[2] atorvastatinDidukung oleh
Setiap chunk dalam metadata grounding menyertakan judul dokumen sumber dan potongan teks spesifik yang menjadi dasar jawaban. Ini menciptakan jalur verifikasi dari respons yang dihasilkan kembali ke dokumen asli Anda—diperlukan untuk aplikasi medis, legal, atau finansial di mana akurasi sangat penting.
Array grounding_chunks berisi semua potongan yang diambil, diurutkan berdasarkan relevansi. Meskipun kueri secara spesifik menanyakan tentang metformin, File Search juga mengambil konten dari dokumen atorvastatin, kemungkinan karena memuat informasi kontraindikasi terkait. Ini menunjukkan pendekatan pengambilan semantik: sistem menemukan konten yang terkait secara konseptual, bukan sekadar kecocokan kata kunci.
Langkah 6: Kueri lintas beberapa dokumen
Uji pertanyaan interaksi obat multi-dokumen:
query2 ="Can a patient take both atorvastatin and metformin together? Are there any drug interactions?"
response2 = client.models.generate_content(
model="gemini-2.5-flash",
contents=query2,
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]))]),)print(response2.text)Didukung oleh
Pola API yang sama kini menarik dari beberapa dokumen dan menyintesis informasi. Akses cuplikan teks yang diambil:
print("Sources used:")for i, chunk inenumerate(response2.candidates[0].grounding_metadata.grounding_chunks,1):
source_name = chunk.retrieved_context.title
source_text = chunk.retrieved_context.text[:100]+"..."print(f" [{i}] {source_name}")print(f" {source_text}")Didukung oleh
Keluaran menampilkan kutipan dari kedua label obat:
Sources used:
[1] atorvastatin
Concomitant use with diabetes medications is generally safe but monitor glucose levels...
[2] metformin
Carbonic anhydrase inhibitors may increase the risk of lactic acidosis...Didukung oleh
File Search mengambil bagian yang relevan dari kedua dokumen, dan model menyintesisnya menjadi jawaban yang koheren. Atribut retrieved_context.text memberi Anda potongan tepat yang digunakan, memungkinkan Anda memverifikasi bahwa model tidak berhalusinasi informasi.
Langkah 7: Jalankan perbandingan lintas dokumen
Ajukan pertanyaan analitis yang memerlukan perbandingan ketiga dokumen:
query3 ="Which medications have muscle-related side effects?"
response3 = client.models.generate_content(
model="gemini-2.5-flash",
contents=query3,
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]))]),)print(response3.text)# Check which documents were consulted
metadata = response3.candidates[0].grounding_metadata
for i, chunk inenumerate(metadata.grounding_chunks,1):print(f" [{i}] {chunk.retrieved_context.title}")Didukung oleh
Keluaran mengidentifikasi atorvastatin memiliki efek samping terkait otot (mialgia, miopati, rhabdomiolisis) dan mengonfirmasi bahwa obat lainnya tidak mencantumkan efek tersebut. Metadata grounding menunjukkan bahwa File Search merujuk pada ketiga dokumen untuk menjawab pertanyaan perbandingan.
Sekarang Anda telah membangun asisten dokumentasi medis yang berfungsi. Alur kerja inti tetap konsisten: konfigurasikan alat File Search dalam pemanggilan generate_content(), ambil teks respons, dan akses metadata grounding untuk verifikasi. Store bertahan di server Google, sehingga Anda dapat mengkuerinya dari sesi mendatang tanpa mengindeks ulang.
Selanjutnya, Anda akan mengeksplorasi fitur lanjutan seperti konfigurasi chunking kustom dan penyaringan metadata yang memberi Anda kontrol lebih halus atas perilaku retrieval.
Fitur Lanjutan dan Kustomisasi Google File Search Tool
Alur kerja dasar File Search mencakup sebagian besar kasus penggunaan, tetapi sistem produksi sering memerlukan kontrol lebih halus atas perilaku retrieval. Bagian ini menunjukkan cara menyesuaikan strategi chunking, memfilter dokumen dengan metadata, mengoptimalkan performa, dan mengelola beberapa store untuk berbagai kasus penggunaan.
Konfigurasi chunking kustom
File Search secara otomatis membagi dokumen menjadi chunk selama pengindeksan. Secara default, ia menggunakan strategi chunking yang dioptimalkan untuk dokumen umum, tetapi Anda dapat menyesuaikannya ketika tipe dokumen tertentu memerlukan penanganan berbeda.
Pertimbangkan contoh asisten medis. Label obat berisi informasi teknis padat dalam tabel dan paragraf pendek. Chunk yang lebih kecil memungkinkan Anda mengambil informasi presisi seperti dosis spesifik atau kontraindikasi tanpa menarik konteks yang tidak relevan. Chunk yang lebih besar bekerja lebih baik untuk bagian naratif yang memerlukan lebih banyak konteks agar dipahami dengan benar.
Konfigurasikan parameter chunking saat mengunggah dokumen:
operation = client.file_search_stores.upload_to_file_search_store(file="metformin.pdf",
file_search_store_name=file_search_store.name,
config={"display_name":"metformin","chunking_config":{"white_space_config":{"max_tokens_per_chunk":200,"max_overlap_tokens":20}}})Didukung oleh
Parameter chunking_config mengontrol cara File Search membagi dokumen Anda. Parameter max_tokens_per_chunk menetapkan ukuran maksimum setiap chunk, sementara max_overlap_tokens menentukan seberapa banyak konten yang tumpang tindih antara chunk berturut-turut. Tumpang tindih ini memastikan informasi yang melintasi batas chunk tidak hilang selama retrieval.
Trade-off ini penting: chunk yang lebih pendek memberi retrieval lebih presisi namun bisa melewatkan konteks yang lebih luas, sementara chunk yang lebih besar mempertahankan lebih banyak makna tetapi mungkin menyertakan informasi yang tidak relevan.
Untuk dokumentasi teknis dengan batas bagian yang jelas, gunakan chunk lebih kecil (150–250 token). Untuk dokumen naratif seperti makalah riset atau laporan, chunk lebih besar (400–600 token) mempertahankan alur argumen dan konteks. Dokumentasi resmi File Search menyediakan panduan tambahan untuk memilih ukuran chunk untuk berbagai tipe dokumen.
Penyaringan metadata
Ketika store Anda berisi puluhan atau ratusan dokumen, penyaringan metadata mempersempit cakupan retrieval sebelum pencarian semantik dijalankan. Ini meningkatkan presisi dan mengurangi waktu pemrosesan.
Tambahkan metadata saat mengunggah dokumen untuk mengaktifkan penyaringan nanti:
operation = client.file_search_stores.upload_to_file_search_store(file="metformin.pdf",
file_search_store_name=file_search_store.name,
config={"display_name":"metformin","custom_metadata":[{"key":"category","string_value":"diabetes"},{"key":"year","numeric_value":2017},{"key":"drug_class","string_value":"biguanide"}]})Didukung oleh
Parameter custom_metadata menerima array pasangan key-value. Gunakan string_value untuk metadata teks seperti kategori atau kelas obat, dan numeric_value untuk tahun, versi, atau data numerik lainnya.
Kueri dengan filter metadata untuk mencari hanya dokumen yang relevan:
query ="What are the common side effects?"
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=query,
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name],
metadata_filter="category=diabetes"))]))Didukung oleh
Parameter metadata_filter membatasi retrieval ke dokumen yang cocok dengan kriteria yang ditentukan. Dalam contoh ini, File Search hanya mempertimbangkan dokumen dengan category=diabetes, mengabaikan obat tekanan darah dan kolesterol meskipun ada di store yang sama.
Ini menjadi krusial ketika store berisi dokumen heterogen. Basis pengetahuan medis mungkin mencakup label obat, makalah riset, dan pedoman klinis. Menyaring berdasarkan tipe dokumen memastikan Anda mendapatkan informasi dosis dari label, bukan abstrak riset.
Anda dapat menggabungkan penyaringan metadata dengan kapabilitas pencarian semantik penuh. Filter berjalan terlebih dahulu untuk memilih dokumen kandidat, kemudian pencarian semantik menemukan bagian paling relevan dalam dokumen-dokumen tersebut.
Optimisasi performa
Performa File Search bergantung pada ukuran store, kompleksitas kueri, dan pilihan model. Mengikuti panduan ini menjaga retrieval tetap cepat dan biaya tetap terkelola.
Batas ukuran store: Jaga setiap store di bawah 20GB untuk latensi retrieval yang optimal. File Search menyimpan embedding bersama dokumen Anda, dan embedding membutuhkan kira-kira tiga kali ukuran file asli Anda. Kumpulan PDF 7GB menghasilkan sekitar 21GB data tersimpan setelah diindeks, melebihi batas yang direkomendasikan.
Saat Anda mendekati batas ini, buat store terpisah yang diorganisasi berdasarkan kategori, periode waktu, atau pola akses. Untuk asisten medis, Anda bisa membuat store terpisah untuk kategori obat yang berbeda alih-alih mengindeks semua obat yang tersedia dalam satu store.
Struktur biaya: File Search mengenakan biaya $0,15 per 1 juta token untuk pengindeksan. Setelah diindeks, Anda dapat menjalankan ribuan kueri tanpa biaya pengindeksan tambahan. Model penetapan harga ini menguntungkan beban kerja dengan volume baca tinggi di mana Anda mengkueri dokumen yang sama berulang kali.
Pemilihan model: Gunakan gemini-2.5-flash untuk sebagian besar kueri. Model ini memproses permintaan dalam 1–2 detik dan biayanya jauh lebih rendah dibanding gemini-2.5-pro. Cadangkan gemini-2.5-pro untuk kueri yang membutuhkan penalaran mendalam lintas banyak sumber atau penanganan tugas sintesis yang sangat kompleks. Perbedaan biaya antar model lebih berpengaruh daripada biaya pengindeksan untuk aplikasi dengan volume tinggi.
Pantau ukuran store saat Anda menambahkan dokumen. Anda dapat memeriksanya melalui API, meskipun perhitungan ukuran terjadi di backend Google dan mungkin tidak langsung tercermin setelah unggahan. Untuk spesifikasi teknis dan batasan lengkap, lihat dokumentasi Gemini File API.
Mengelola beberapa store
Setiap proyek Google Cloud mendukung hingga 10 File Search store. Beberapa store memungkinkan Anda memisahkan dokumen berdasarkan kontrol akses, kebutuhan performa, atau organisasi logis.
Buat store khusus untuk berbagai kasus penggunaan:
# Create separate stores for different document categories
diabetes_store = client.file_search_stores.create(
config={"display_name":"diabetes-medications"})
cardio_store = client.file_search_stores.create(
config={"display_name":"cardiovascular-medications"})Didukung oleh
Kueri beberapa store dalam satu permintaan:
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="What medications treat both diabetes and heart disease?",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[
diabetes_store.name,
cardio_store.name
]))]))Didukung oleh
File Search mengambil dari semua store yang ditentukan dan menyintesis hasilnya. Metadata grounding mengidentifikasi dari store mana setiap sitasi berasal, menjaga keterlacakan penuh.
Store bertahan tanpa batas dan memerlukan penghapusan manual saat tidak lagi diperlukan, sehingga cocok untuk aplikasi produksi di mana dokumen tetap dapat diakses lintas sesi dan deployment.
Selanjutnya, Anda akan melihat bagaimana File Search dibandingkan dengan solusi RAG lainnya dan kapan memilih pendekatan terkelola vs DIY.
Google File Search Tool vs Alat File Search dan RAG Lainnya
File Search bukan satu-satunya opsi untuk membangun aplikasi RAG. Memahami posisi alat ini dibanding alternatif membantu Anda memilih alat yang tepat. Mari bandingkan pendekatan Google dengan penawaran OpenAI dan build kustom tradisional.
Fitur
Google File Search
OpenAI File Search
RAG Kustom (LangChain)
Model Harga
$0,15/juta token (hanya indeks)
0,10/GB penyimpanan harian
Biaya infrastruktur + pengembangan
Kontrol Chunking
Otomatis dengan konfigurasi dasar
Dapat dikonfigurasi (default 800 token, overlap 400)
Kontrol penuh atas strategi
Jenis Pencarian
Semantik (hanya vektor)
Hibrida (vektor + kata kunci)
Metode apa pun yang Anda implementasikan
Format File
150+ tipe (PDF, DOCX, kode, dll.)
6 tipe (TXT, MD, HTML, DOCX, PPTX, PDF)
Tergantung parser yang digunakan
Waktu Penyiapan
Menit
Menit
Hari hingga minggu
Sitasi
Bawaan dengan metadata grounding
Bawaan
Harus Anda implementasikan sendiri
Terbaik Untuk
Volume kueri tinggi, deployment cepat
Kueri berbasis kata kunci, kontrol moderat
Kebutuhan kompleks, kustomisasi penuh
Google File Search vs OpenAI File Search
Keduanya menawarkan RAG ter-host, tetapi mengambil jalur berbeda dalam harga dan kapabilitas.
Harga: Google menagih Anda sekali saat pengindeksan ($2,50 per seribu kueri plus $0,10 per GB per hari untuk penyimpanan). Jika Anda menjalankan banyak kueri tetapi jarang memperbarui dokumen, model Google menghemat biaya. Jika Anda terus-menerus mengindeks ulang, perhitungannya menjadi menarik.
Kontrol konfigurasi: Google menjaga kesederhanaan dengan chunking otomatis dan konfigurasi terbatas. OpenAI memberi Anda lebih banyak kontrol. Anda dapat menetapkan ukuran chunk (default 800 token) dan overlap (400 token). OpenAI juga menjalankan pencarian hibrida yang menggabungkan pencocokan vektor dan kata kunci, sementara Google sepenuhnya mengandalkan pencarian semantik. Ini penting ketika kueri Anda berisi istilah teknis spesifik atau kode produk.
Format file: Google menangani 150+ tipe file, termasuk file kode dan berbagai format dokumen. OpenAI mendukung enam: TXT, MD, HTML, DOCX, PPTX, dan PDF. Keduanya tidak menangani data terstruktur seperti CSV atau JSONL dengan baik. Di sinilah build kustom unggul.
Integrasi: Google terhubung ke model Gemini dan layanan Google Cloud. OpenAI terhubung ke keluarga model mereka dan Azure. Keduanya memberi Anda sitasi dan pelacakan sumber.
Perbedaan nyata bermuara pada kesederhanaan versus kontrol. Google membungkus semuanya dalam satu panggilan API. OpenAI memungkinkan Anda menyetel retrieval dengan biaya kompleksitas lebih tinggi. Tidak ada pemenang tunggal di sini. Itu tergantung apakah Anda menginginkan kecepatan atau kustomisasi untuk proyek Anda.
Kapabilitas RAG kustom
Membangun sistem RAG sendiri dengan alat seperti LangChain membuka kapabilitas yang tidak ditawarkan layanan ter-host. Kursus RAG dengan LangChain dari DataCamp membahas pendekatan ini secara detail.
Build kustom memungkinkan teknik lanjutan:
Pemotongan semantik yang mendeteksi pergeseran topik alih-alih memotong pada panjang tetap
Chunking sadar token yang menghormati jendela konteks model secara presisi
Retrieval hibrida yang mencampur pencarian kata kunci BM25 dengan vektor padat
Transformasi kueri seperti HyDE yang menghasilkan jawaban hipotetis untuk meningkatkan pencarian
Graph RAG yang merepresentasikan dokumen sebagai jaringan entitas dan relasi
Tutorial DataCamp tentang meningkatkan performa RAG mengeksplorasi teknik-teknik ini dengan contoh yang menunjukkan peningkatan kualitas terukur. Trade-off-nya adalah kompleksitas operasional: Anda memantau performa basis data, menyetel model embedding, dan menangani pembaruan di berbagai layanan.
Kapan menggunakan masing-masing pendekatan
Pilih alat ter-host seperti File Search ketika:
Membangun prototipe atau proof-of-concept di mana kecepatan penting
Kasus penggunaan Anda sesuai pola standar (T&J atas dokumen, basis pengetahuan, pencarian dokumentasi)
Tim Anda tidak memiliki keahlian RAG mendalam
Anda menginginkan biaya yang dapat diprediksi dan beban operasional minimal
Bangun kustom ketika:
Anda memerlukan chunking tingkat lanjut atau metode retrieval khusus
Bekerja dengan data terstruktur atau format file yang tidak biasa
Membangunagentic RAG yang menggabungkan banyak strategi
Optimalisasi biaya pada skala masif membenarkan investasi engineering
Kepatuhan memerlukan infrastruktur atau model spesifik
Sebagian besar proyek memulai dengan solusi ter-host dan beralih ke build kustom hanya ketika persyaratan menuntutnya. Teknik dari RAG kustom (chunking cerdas, pencarian hibrida, optimisasi kueri) tetap menginformasikan cara Anda menggunakan alat ter-host. Memahami lanskap penuh membantu Anda membuat pilihan yang lebih baik seiring kebutuhan berkembang.
Kesimpulan
Anda telah membangun sistem RAG lengkap menggunakan Google File Search Tool, mulai dari mengindeks label obat FDA hingga melakukan kueri dengan sitasi. Asisten medis ini menunjukkan bagaimana layanan terkelola menangani infrastruktur sementara Anda fokus pada logika aplikasi.
File Search bekerja dengan baik ketika Anda membutuhkan RAG yang andal tanpa mengelola basis data vektor atau pipeline embedding. Penyimpanan gratis dan embedding kueri membuat biaya dapat diprediksi. Store persisten menghilangkan beban pengindeksan ulang, memungkinkan Anda menskalakan kueri tanpa menskalakan pemeliharaan infrastruktur.
Sebelum deployment ke produksi, tambahkan pengaman penting yang diabaikan tutorial demi ringkasnya. Implementasikan penanganan error dengan timeout untuk operasi unggah dan blok try-catch di sekitar panggilan API. Pertimbangkan implikasi privasi data saat mengunggah dokumen ke server Google, terutama untuk konten sensitif. Tambahkan validasi untuk memverifikasi metadata grounding ada sebelum mengakses sitasi. Uji menyeluruh dengan pakar domain untuk menangkap kasus di mana model menghasilkan jawaban yang tampak masuk akal namun keliru meski sudah berlandaskan data.
Untuk langkah berikutnya, cobalah memperluas asisten Anda dengan penyaringan metadata untuk mengorganisasi dokumen berdasarkan kategori. Bereksperimenlah dengan ukuran chunk agar sesuai dengan tipe dokumen Anda. Teknik yang Anda pelajari di sini berlaku apakah Anda membangun bot dukungan, pencarian dokumentasi, atau asisten pengetahuan.
FAQs
Apakah saya perlu mengindeks ulang saat dokumen berubah?⌄
Ya. Memperbarui atau mengganti file memerlukan unggah ulang agar embedding mencerminkan konten baru.
Bisakah saya mengontrol akses ke dokumen tertentu?⌄
Belum pada tingkat yang sangat rinci. Anda dapat menggunakan filter metadata untuk membatasi dokumen mana yang di-kueri, tetapi izin tingkat pengguna saat ini belum didukung.
Berapa batas ukuran file dan store?⌄
File individual dapat berukuran hingga sekitar 100 MB, dan tier store berkisar hingga kira-kira 1 TB. Menjaga store di bawah 20 GB umumnya memastikan retrieval lebih cepat.
Seberapa andal sitasinya?⌄
File Search melampirkan metadata grounding yang menunjukkan potongan dokumen mana yang menjadi dasar jawaban. Sitasi ini meningkatkan transparansi tetapi tetap harus ditinjau untuk akurasi.
Apakah File Search menggunakan retrieval kata kunci atau vektor?⌄
Alat ini mengandalkan pencarian semantik (berbasis vektor). Jika Anda memerlukan pencocokan kata kunci yang eksak, Anda memerlukan setup retrieval kustom atau hibrida.
Saya adalah kreator konten data science dengan pengalaman lebih dari 2 tahun dan salah satu dengan jumlah pengikut terbesar di Medium. Saya suka menulis artikel mendalam tentang AI dan ML dengan sedikit gaya sarkastik—karena harus ada sesuatu untuk membuatnya tidak terlalu membosankan. Saya telah menghasilkan lebih dari 130 artikel dan satu kursus di DataCamp, dengan satu lagi sedang dalam proses. Konten saya telah dilihat oleh lebih dari 5 juta pasang mata, dan 20 ribu di antaranya menjadi pengikut di Medium dan LinkedIn.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dalam tutorial ini, saya akan memandu Anda membangun asisten dokumentasi medis dengan Google File Search. Anda akan melihat cara menyiapkannya, mengimplementasikan kueri, dan menggunakan fitur lanjutan seperti chunking kustom dan penyaringan metadata. Pada akhirnya, Anda akan memahami kapan managed RAG masuk akal dibandingkan membangun stack Anda sendiri.
Apa itu Google File Search Tool?
Membangun aplikasi RAG biasanya berarti berurusan dengan basis data vektor, pipeline embedding, dan banyak infrastruktur. Alat File Search dari Google, yang dirilis pada November 2025, menghilangkan kompleksitas ini dengan sistem RAG terkelola sepenuhnya yang dibangun langsung ke dalam Gemini API.
Alat ini menangani bagian-bagian kompleks untuk Anda: melakukan chunking dokumen, membuat embedding, dan mengelola pencarian semantik tanpa memerlukan alat eksternal seperti Pinecone atau ChromaDB. Alurnya sederhana—unggah file, buat store, lalu mulai melakukan kueri. Anda juga mendapatkan sitasi bawaan yang memungkinkan Anda memverifikasi dari mana jawaban berasal.
Memahami RAG dan Mengapa Google Menyederhanakannya
Gemini File Search memposisikan diri sebagai sistem RAG terkelola. Memahami RAG membantu Anda menggunakan alat ini dengan baik dan memutuskan kapan cocok untuk kasus penggunaan Anda.
Pada intinya, retrieval-augmented generation (RAG) menghubungkan model bahasa dengan pengetahuan eksternal. Sebelum menghasilkan respons, model mengambil informasi relevan dari dokumen Anda, sehingga jawaban berlandaskan pada data Anda sendiri alih-alih hanya mengandalkan data pelatihan.
Tantangan RAG DIY
Meskipun RAG terdengar sederhana dalam konsep, membangun pipeline RAG sendiri berarti mengelola beberapa komponen:
Setiap komponen memerlukan keahlian dan pemeliharaan berkelanjutan. Baik Anda membangun sistem produksi yang membutuhkan keandalan maupun prototipe yang membutuhkan kecepatan, beban infrastruktur tetap menjadi hambatan yang sama.
Mengapa managed RAG penting
Layanan terkelola seperti Google File Search menghilangkan hambatan ini. Alih-alih menyetel sistem retrieval, Anda menulis kueri. Alih-alih men-debug pipeline embedding, Anda memvalidasi hasil. Infrastruktur berjalan di latar belakang sementara Anda fokus pada logika aplikasi.
Gemini File Search menangani kompleksitas teknis sementara Anda mengendalikan hal yang penting: dokumen mana yang diindeks, bagaimana cara mengkuerinya, dan bagaimana menggunakan hasilnya. Keseimbangan ini bekerja baik saat Anda membutuhkan kualitas produksi tanpa beban operasional. Untuk latar belakang lebih dalam tentang dasar-dasar RAG, saya sarankan melihat tutorial DataCamp tentang agentic RAG.
Cara terbaik untuk memahami Google File Search adalah dengan menggunakannya. Di bagian berikutnya, Anda akan membangun asisten dokumentasi medis lengkap yang menunjukkan alur kerja penuh dari unggah dokumen hingga respons berlandaskan data dengan sitasi.
Membangun Asisten Dokumentasi Medis dengan Google File Search
Disclaimer: Tutorial ini mendemonstrasikan kapabilitas File Search menggunakan label obat FDA untuk tujuan edukasi saja. Asisten yang Anda bangun tidak dimaksudkan untuk penggunaan klinis, pengambilan keputusan perawatan pasien, atau diagnosis medis. Selalu konsultasikan dengan tenaga kesehatan yang berkualifikasi untuk nasihat medis. Sistem AI dapat menghasilkan informasi yang keliru bahkan dengan landasan dokumen sumber.
Bagian ini memandu Anda membangun asisten dokumentasi medis lengkap menggunakan File Search. Anda akan bekerja dengan label obat FDA untuk tiga obat umum, membuat sistem yang menjawab pertanyaan tentang interaksi obat, efek samping, dan kontraindikasi. Asisten menyediakan jawaban yang dapat diverifikasi dengan mengutip bagian-bagian spesifik dari dokumen sumber.
File Search beroperasi dalam dua fase: Anda mengindeks dokumen sekali, lalu melakukan kueri berulang kali. Anda akan menyiapkan infrastruktur pengindeksan terlebih dahulu, kemudian sepenuhnya fokus pada mengajukan pertanyaan dan menafsirkan respons berlandaskan data.
Langkah 1: Instal API dan konfigurasi autentikasi
Anda memerlukan Python 3.9 atau yang lebih baru. Instal Google Generative AI SDK dan dependensi:
Dapatkan kunci API Anda dari Google AI Studio. Simpan di file .env di direktori proyek Anda:
Siapkan impor dan inisialisasi klien:
Objek
genai.Client()menangani autentikasi secara otomatis menggunakan variabel lingkungan Anda. Anda akan menggunakan objek klien ini untuk semua operasi File Search.Langkah 2: Buat File Search store
Buat store untuk menampung dokumen yang diindeks:
File Search store bertindak sebagai kontainer untuk dokumen yang diindeks. Berbeda dengan unggahan file sementara yang kedaluwarsa setelah 48 jam, store bertahan tanpa batas. Ini berarti Anda mengindeks dokumen sekali dan melakukan kueri ribuan kali tanpa mengunggah ulang atau memproses ulang.
Properti
file_search_store.nameberisi pengenal unik yang akan Anda referensikan saat melakukan kueri. Bentuknya sepertifileSearchStores/fdadruglabels-abc123. Simpan nilai ini jika Anda perlu mengkueri store dari sesi berbeda.Langkah 3: Unggah dan indeks dokumen PDF
Untuk tutorial ini, Anda akan bekerja dengan tiga label obat yang disetujui FDA. Unduh PDF berikut dari situs FDA:
Simpan di direktori proyek Anda, lalu unggah ke File Search store Anda:
Selama unggah, File Search melakukan chunking pada setiap PDF dan mengonversi segmen menjadi embedding menggunakan model
gemini-embedding-001. Embedding ini adalah representasi numerik yang menangkap makna semantik, memungkinkan sistem menemukan bagian yang relevan bahkan ketika pertanyaan Anda tidak cocok dengan kata-kata persis di dokumen.Pola polling (
while not operation.done) menangani sifat asinkron dari pengindeksan. Dokumen besar membutuhkan waktu lebih lama untuk diproses, jadi API segera mengembalikan respons, dan Anda memeriksa status penyelesaian secara berkala. Untuk sistem produksi, pertimbangkan menambahkan logika timeout untuk mencegah loop tak berujung.Setiap chunk mempertahankan metadata yang menghubungkannya kembali ke dokumen sumber dan posisinya. Metadata ini menjadi penting saat Anda mengakses sitasi nanti.
Langkah 4: Kueri informasi satu dokumen
Sekarang lakukan kueri pada dokumen yang telah diindeks:
Ini akan mencetak jawaban yang dihasilkan:
File Search mengambil potongan yang paling mirip secara semantik dalam dokumen Anda dan menyediakannya sebagai konteks untuk
gemini-2.5-flash, yang kemudian menghasilkan jawaban. Konfigurasi arraytoolsmemberi tahu model untuk menggunakan File Search selama proses generasi. Anda dapat menggabungkan File Search dengan alat lain seperti eksekusi kode atau Google Search dalam permintaan yang sama.Langkah 5: Akses sitasi dan metadata grounding
Ekstrak dokumen mana yang menjadi dasar jawaban:
Keluaran:
Setiap chunk dalam metadata grounding menyertakan judul dokumen sumber dan potongan teks spesifik yang menjadi dasar jawaban. Ini menciptakan jalur verifikasi dari respons yang dihasilkan kembali ke dokumen asli Anda—diperlukan untuk aplikasi medis, legal, atau finansial di mana akurasi sangat penting.
Array
grounding_chunksberisi semua potongan yang diambil, diurutkan berdasarkan relevansi. Meskipun kueri secara spesifik menanyakan tentang metformin, File Search juga mengambil konten dari dokumen atorvastatin, kemungkinan karena memuat informasi kontraindikasi terkait. Ini menunjukkan pendekatan pengambilan semantik: sistem menemukan konten yang terkait secara konseptual, bukan sekadar kecocokan kata kunci.Langkah 6: Kueri lintas beberapa dokumen
Uji pertanyaan interaksi obat multi-dokumen:
Pola API yang sama kini menarik dari beberapa dokumen dan menyintesis informasi. Akses cuplikan teks yang diambil:
Keluaran menampilkan kutipan dari kedua label obat:
File Search mengambil bagian yang relevan dari kedua dokumen, dan model menyintesisnya menjadi jawaban yang koheren. Atribut retrieved_context.text memberi Anda potongan tepat yang digunakan, memungkinkan Anda memverifikasi bahwa model tidak berhalusinasi informasi.
Langkah 7: Jalankan perbandingan lintas dokumen
Ajukan pertanyaan analitis yang memerlukan perbandingan ketiga dokumen:
Keluaran mengidentifikasi atorvastatin memiliki efek samping terkait otot (mialgia, miopati, rhabdomiolisis) dan mengonfirmasi bahwa obat lainnya tidak mencantumkan efek tersebut. Metadata grounding menunjukkan bahwa File Search merujuk pada ketiga dokumen untuk menjawab pertanyaan perbandingan.
Sekarang Anda telah membangun asisten dokumentasi medis yang berfungsi. Alur kerja inti tetap konsisten: konfigurasikan alat File Search dalam pemanggilan
generate_content(), ambil teks respons, dan akses metadata grounding untuk verifikasi. Store bertahan di server Google, sehingga Anda dapat mengkuerinya dari sesi mendatang tanpa mengindeks ulang.Selanjutnya, Anda akan mengeksplorasi fitur lanjutan seperti konfigurasi chunking kustom dan penyaringan metadata yang memberi Anda kontrol lebih halus atas perilaku retrieval.
Fitur Lanjutan dan Kustomisasi Google File Search Tool
Alur kerja dasar File Search mencakup sebagian besar kasus penggunaan, tetapi sistem produksi sering memerlukan kontrol lebih halus atas perilaku retrieval. Bagian ini menunjukkan cara menyesuaikan strategi chunking, memfilter dokumen dengan metadata, mengoptimalkan performa, dan mengelola beberapa store untuk berbagai kasus penggunaan.
Konfigurasi chunking kustom
File Search secara otomatis membagi dokumen menjadi chunk selama pengindeksan. Secara default, ia menggunakan strategi chunking yang dioptimalkan untuk dokumen umum, tetapi Anda dapat menyesuaikannya ketika tipe dokumen tertentu memerlukan penanganan berbeda.
Pertimbangkan contoh asisten medis. Label obat berisi informasi teknis padat dalam tabel dan paragraf pendek. Chunk yang lebih kecil memungkinkan Anda mengambil informasi presisi seperti dosis spesifik atau kontraindikasi tanpa menarik konteks yang tidak relevan. Chunk yang lebih besar bekerja lebih baik untuk bagian naratif yang memerlukan lebih banyak konteks agar dipahami dengan benar.
Konfigurasikan parameter chunking saat mengunggah dokumen:
Parameter
chunking_configmengontrol cara File Search membagi dokumen Anda. Parametermax_tokens_per_chunkmenetapkan ukuran maksimum setiap chunk, sementaramax_overlap_tokensmenentukan seberapa banyak konten yang tumpang tindih antara chunk berturut-turut. Tumpang tindih ini memastikan informasi yang melintasi batas chunk tidak hilang selama retrieval.Trade-off ini penting: chunk yang lebih pendek memberi retrieval lebih presisi namun bisa melewatkan konteks yang lebih luas, sementara chunk yang lebih besar mempertahankan lebih banyak makna tetapi mungkin menyertakan informasi yang tidak relevan.
Untuk dokumentasi teknis dengan batas bagian yang jelas, gunakan chunk lebih kecil (150–250 token). Untuk dokumen naratif seperti makalah riset atau laporan, chunk lebih besar (400–600 token) mempertahankan alur argumen dan konteks. Dokumentasi resmi File Search menyediakan panduan tambahan untuk memilih ukuran chunk untuk berbagai tipe dokumen.
Penyaringan metadata
Ketika store Anda berisi puluhan atau ratusan dokumen, penyaringan metadata mempersempit cakupan retrieval sebelum pencarian semantik dijalankan. Ini meningkatkan presisi dan mengurangi waktu pemrosesan.
Tambahkan metadata saat mengunggah dokumen untuk mengaktifkan penyaringan nanti:
Parameter
custom_metadatamenerima array pasangan key-value. Gunakanstring_valueuntuk metadata teks seperti kategori atau kelas obat, dannumeric_valueuntuk tahun, versi, atau data numerik lainnya.Kueri dengan filter metadata untuk mencari hanya dokumen yang relevan:
Parameter
metadata_filtermembatasi retrieval ke dokumen yang cocok dengan kriteria yang ditentukan. Dalam contoh ini, File Search hanya mempertimbangkan dokumen dengancategory=diabetes, mengabaikan obat tekanan darah dan kolesterol meskipun ada di store yang sama.Ini menjadi krusial ketika store berisi dokumen heterogen. Basis pengetahuan medis mungkin mencakup label obat, makalah riset, dan pedoman klinis. Menyaring berdasarkan tipe dokumen memastikan Anda mendapatkan informasi dosis dari label, bukan abstrak riset.
Anda dapat menggabungkan penyaringan metadata dengan kapabilitas pencarian semantik penuh. Filter berjalan terlebih dahulu untuk memilih dokumen kandidat, kemudian pencarian semantik menemukan bagian paling relevan dalam dokumen-dokumen tersebut.
Optimisasi performa
Performa File Search bergantung pada ukuran store, kompleksitas kueri, dan pilihan model. Mengikuti panduan ini menjaga retrieval tetap cepat dan biaya tetap terkelola.
Batas ukuran store: Jaga setiap store di bawah 20GB untuk latensi retrieval yang optimal. File Search menyimpan embedding bersama dokumen Anda, dan embedding membutuhkan kira-kira tiga kali ukuran file asli Anda. Kumpulan PDF 7GB menghasilkan sekitar 21GB data tersimpan setelah diindeks, melebihi batas yang direkomendasikan.
Saat Anda mendekati batas ini, buat store terpisah yang diorganisasi berdasarkan kategori, periode waktu, atau pola akses. Untuk asisten medis, Anda bisa membuat store terpisah untuk kategori obat yang berbeda alih-alih mengindeks semua obat yang tersedia dalam satu store.
Struktur biaya: File Search mengenakan biaya $0,15 per 1 juta token untuk pengindeksan. Setelah diindeks, Anda dapat menjalankan ribuan kueri tanpa biaya pengindeksan tambahan. Model penetapan harga ini menguntungkan beban kerja dengan volume baca tinggi di mana Anda mengkueri dokumen yang sama berulang kali.
Pemilihan model: Gunakan
gemini-2.5-flashuntuk sebagian besar kueri. Model ini memproses permintaan dalam 1–2 detik dan biayanya jauh lebih rendah dibandinggemini-2.5-pro. Cadangkangemini-2.5-prountuk kueri yang membutuhkan penalaran mendalam lintas banyak sumber atau penanganan tugas sintesis yang sangat kompleks. Perbedaan biaya antar model lebih berpengaruh daripada biaya pengindeksan untuk aplikasi dengan volume tinggi.Pantau ukuran store saat Anda menambahkan dokumen. Anda dapat memeriksanya melalui API, meskipun perhitungan ukuran terjadi di backend Google dan mungkin tidak langsung tercermin setelah unggahan. Untuk spesifikasi teknis dan batasan lengkap, lihat dokumentasi Gemini File API.
Mengelola beberapa store
Setiap proyek Google Cloud mendukung hingga 10 File Search store. Beberapa store memungkinkan Anda memisahkan dokumen berdasarkan kontrol akses, kebutuhan performa, atau organisasi logis.
Buat store khusus untuk berbagai kasus penggunaan:
Kueri beberapa store dalam satu permintaan:
File Search mengambil dari semua store yang ditentukan dan menyintesis hasilnya. Metadata grounding mengidentifikasi dari store mana setiap sitasi berasal, menjaga keterlacakan penuh.
Store bertahan tanpa batas dan memerlukan penghapusan manual saat tidak lagi diperlukan, sehingga cocok untuk aplikasi produksi di mana dokumen tetap dapat diakses lintas sesi dan deployment.
Selanjutnya, Anda akan melihat bagaimana File Search dibandingkan dengan solusi RAG lainnya dan kapan memilih pendekatan terkelola vs DIY.
Google File Search Tool vs Alat File Search dan RAG Lainnya
File Search bukan satu-satunya opsi untuk membangun aplikasi RAG. Memahami posisi alat ini dibanding alternatif membantu Anda memilih alat yang tepat. Mari bandingkan pendekatan Google dengan penawaran OpenAI dan build kustom tradisional.
Fitur
Google File Search
OpenAI File Search
RAG Kustom (LangChain)
Model Harga
$0,15/juta token (hanya indeks)
0,10/GB penyimpanan harian
Biaya infrastruktur + pengembangan
Kontrol Chunking
Otomatis dengan konfigurasi dasar
Dapat dikonfigurasi (default 800 token, overlap 400)
Kontrol penuh atas strategi
Jenis Pencarian
Semantik (hanya vektor)
Hibrida (vektor + kata kunci)
Metode apa pun yang Anda implementasikan
Format File
150+ tipe (PDF, DOCX, kode, dll.)
6 tipe (TXT, MD, HTML, DOCX, PPTX, PDF)
Tergantung parser yang digunakan
Waktu Penyiapan
Menit
Menit
Hari hingga minggu
Sitasi
Bawaan dengan metadata grounding
Bawaan
Harus Anda implementasikan sendiri
Terbaik Untuk
Volume kueri tinggi, deployment cepat
Kueri berbasis kata kunci, kontrol moderat
Kebutuhan kompleks, kustomisasi penuh
Google File Search vs OpenAI File Search
Keduanya menawarkan RAG ter-host, tetapi mengambil jalur berbeda dalam harga dan kapabilitas.
Harga: Google menagih Anda sekali saat pengindeksan ($2,50 per seribu kueri plus $0,10 per GB per hari untuk penyimpanan). Jika Anda menjalankan banyak kueri tetapi jarang memperbarui dokumen, model Google menghemat biaya. Jika Anda terus-menerus mengindeks ulang, perhitungannya menjadi menarik.
Kontrol konfigurasi: Google menjaga kesederhanaan dengan chunking otomatis dan konfigurasi terbatas. OpenAI memberi Anda lebih banyak kontrol. Anda dapat menetapkan ukuran chunk (default 800 token) dan overlap (400 token). OpenAI juga menjalankan pencarian hibrida yang menggabungkan pencocokan vektor dan kata kunci, sementara Google sepenuhnya mengandalkan pencarian semantik. Ini penting ketika kueri Anda berisi istilah teknis spesifik atau kode produk.
Format file: Google menangani 150+ tipe file, termasuk file kode dan berbagai format dokumen. OpenAI mendukung enam: TXT, MD, HTML, DOCX, PPTX, dan PDF. Keduanya tidak menangani data terstruktur seperti CSV atau JSONL dengan baik. Di sinilah build kustom unggul.
Integrasi: Google terhubung ke model Gemini dan layanan Google Cloud. OpenAI terhubung ke keluarga model mereka dan Azure. Keduanya memberi Anda sitasi dan pelacakan sumber.
Perbedaan nyata bermuara pada kesederhanaan versus kontrol. Google membungkus semuanya dalam satu panggilan API. OpenAI memungkinkan Anda menyetel retrieval dengan biaya kompleksitas lebih tinggi. Tidak ada pemenang tunggal di sini. Itu tergantung apakah Anda menginginkan kecepatan atau kustomisasi untuk proyek Anda.
Kapabilitas RAG kustom
Membangun sistem RAG sendiri dengan alat seperti LangChain membuka kapabilitas yang tidak ditawarkan layanan ter-host. Kursus RAG dengan LangChain dari DataCamp membahas pendekatan ini secara detail.
Build kustom memungkinkan teknik lanjutan:
Tutorial DataCamp tentang meningkatkan performa RAG mengeksplorasi teknik-teknik ini dengan contoh yang menunjukkan peningkatan kualitas terukur. Trade-off-nya adalah kompleksitas operasional: Anda memantau performa basis data, menyetel model embedding, dan menangani pembaruan di berbagai layanan.
Kapan menggunakan masing-masing pendekatan
Pilih alat ter-host seperti File Search ketika:
Bangun kustom ketika:
Sebagian besar proyek memulai dengan solusi ter-host dan beralih ke build kustom hanya ketika persyaratan menuntutnya. Teknik dari RAG kustom (chunking cerdas, pencarian hibrida, optimisasi kueri) tetap menginformasikan cara Anda menggunakan alat ter-host. Memahami lanskap penuh membantu Anda membuat pilihan yang lebih baik seiring kebutuhan berkembang.
Kesimpulan
Anda telah membangun sistem RAG lengkap menggunakan Google File Search Tool, mulai dari mengindeks label obat FDA hingga melakukan kueri dengan sitasi. Asisten medis ini menunjukkan bagaimana layanan terkelola menangani infrastruktur sementara Anda fokus pada logika aplikasi.
File Search bekerja dengan baik ketika Anda membutuhkan RAG yang andal tanpa mengelola basis data vektor atau pipeline embedding. Penyimpanan gratis dan embedding kueri membuat biaya dapat diprediksi. Store persisten menghilangkan beban pengindeksan ulang, memungkinkan Anda menskalakan kueri tanpa menskalakan pemeliharaan infrastruktur.
Sebelum deployment ke produksi, tambahkan pengaman penting yang diabaikan tutorial demi ringkasnya. Implementasikan penanganan error dengan timeout untuk operasi unggah dan blok try-catch di sekitar panggilan API. Pertimbangkan implikasi privasi data saat mengunggah dokumen ke server Google, terutama untuk konten sensitif. Tambahkan validasi untuk memverifikasi metadata grounding ada sebelum mengakses sitasi. Uji menyeluruh dengan pakar domain untuk menangkap kasus di mana model menghasilkan jawaban yang tampak masuk akal namun keliru meski sudah berlandaskan data.
Untuk langkah berikutnya, cobalah memperluas asisten Anda dengan penyaringan metadata untuk mengorganisasi dokumen berdasarkan kategori. Bereksperimenlah dengan ukuran chunk agar sesuai dengan tipe dokumen Anda. Teknik yang Anda pelajari di sini berlaku apakah Anda membangun bot dukungan, pencarian dokumentasi, atau asisten pengetahuan.