Membangun penelusuran konten AI dengan Agen Dokumen

Mencari informasi adalah salah satu penggunaan model generatif kecerdasan buatan (AI) yang paling umum. Membuat antarmuka penelusuran percakapan untuk konten Anda menggunakan AI memungkinkan pengguna Anda mengajukan pertanyaan spesifik dan mendapatkan jawaban langsung.

Tutorial ini menunjukkan cara membuat antarmuka penelusuran percakapan yang didukung AI untuk konten Anda. Solusi ini didasarkan pada Agen Dokumen, yakni project open source yang menggunakan Google Gemini API untuk membuat antarmuka penelusuran percakapan, tanpa melatih model AI baru atau melakukan penyesuaian model dengan model Gemini. Artinya, Anda bisa membangun kemampuan penelusuran ini dengan cepat dan menggunakannya untuk set konten kecil dan besar.

Untuk ringkasan video project dan cara memperluasnya, termasuk insight dari orang-orang yang membuatnya, lihat: AI Content Search | Build with Google AI. Jika tidak, Anda dapat mulai memperluas project dengan mengikuti petunjuk di bawah ini.

Ringkasan

Project Agen Dokumen menyediakan antarmuka penelusuran percakapan untuk kumpulan konten tertentu, yang didukung oleh Google Gemini API dan model generatif. Pengguna dapat mengajukan pertanyaan terperinci dalam gaya percakapan dan mendapatkan jawaban terperinci berdasarkan kumpulan konten tertentu. Di balik layar, Agen Dokumen mengambil pertanyaan dan melakukan penelusuran terhadap database vektor konten, serta membuat perintah mendetail untuk model generatif, termasuk cuplikan teks yang relevan. Model generatif menghasilkan respons terhadap pertanyaan, lalu Agen Dokumen memformat respons dan menampilkannya kepada pengguna.

Diagram fungsional Agen Dokumen Gambar 1. Diagram fungsional aplikasi project Agen Dokumen.

Kunci agar Agen Dokumen dapat menjawab pertanyaan terkait konten Anda adalah pembuatan database vektor konten tersebut. Anda memisahkan konten menjadi potongan teks yang logis dan menghasilkan vektor untuk setiap bagian. Vektor ini adalah representasi numerik dari informasi di setiap bagian dan dihasilkan dengan fungsi embedding teks AI dari model generatif Google.

Saat pengguna mengajukan pertanyaan, Agen Dokumen menggunakan fungsi penyematan teks yang sama untuk membuat representasi numerik dari pertanyaan tersebut, dan menggunakan nilai tersebut untuk menelusuri database vektor dan menemukan konten terkait. Tindakan ini akan mengambil hasil teratas dan menambahkan informasi tersebut ke perintah untuk model generatif. Model AI mengambil pertanyaan dan informasi konteks tambahan, lalu menghasilkan jawaban.

Penyiapan project

Petunjuk ini akan memandu Anda menyiapkan project Agen Dokumen untuk pengembangan dan pengujian. Langkah-langkah umumnya adalah menginstal beberapa software prasyarat, menetapkan beberapa variabel lingkungan, meng-clone project dari repositori kode, dan menjalankan penginstalan konfigurasi. Project kode menggunakan Python Poetry untuk mengelola paket dan lingkungan runtime Python.

Menginstal prasyarat

Project Agen Dokumen menggunakan Python 3 dan Python Poetry untuk mengelola paket dan menjalankan aplikasi. Petunjuk penginstalan berikut ditujukan untuk mesin host Linux.

Untuk menginstal software yang diperlukan:

  1. Instal Python 3 dan paket lingkungan virtual venv untuk Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Instal Python Poetry untuk mengelola dependensi dan pengemasan untuk project.
    curl -sSL https://install.python-poetry.org | python3 -
    

Anda dapat menggunakan Python Poetry untuk menambahkan lebih banyak library Python jika memperluas project.

Menetapkan variabel lingkungan

Tetapkan beberapa variabel lingkungan yang diperlukan untuk memungkinkan project kode Agen Dokumen dijalankan, termasuk Kunci Google Gemini API dan setelan Python Poetry. Anda mungkin ingin menambahkan variabel ini ke file $HOME/.bashrc jika menggunakan Linux, untuk menjadikannya sebagai setelan default untuk sesi terminal Anda.

Untuk menetapkan variabel lingkungan:

  1. Dapatkan Kunci API Google Gemini dan salin string kunci.
  2. Menetapkan Kunci API sebagai variabel lingkungan. Di host Linux, gunakan perintah berikut.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Selesaikan masalah umum untuk Python Poetry dengan menetapkan parameter PYTHON_KEYRING_BACKEND. Di host Linux, gunakan perintah berikut.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Meng-clone dan mengonfigurasi project

Download kode project dan gunakan perintah penginstalan Poetry untuk mendownload dependensi yang diperlukan dan mengonfigurasi project. Anda memerlukan software kontrol sumber git untuk mengambil kode sumber project. eksternal Untuk mendownload dan mengonfigurasi kode project:

  1. Clone repositori git menggunakan perintah berikut.
    git clone https://github.com/google/generative-ai-docs
    
  2. Secara opsional, konfigurasikan repositori git lokal untuk menggunakan checkout sparse, sehingga Anda hanya memiliki file untuk project Agen Dokumen.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Pindah ke direktori utama project docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Jalankan perintah instal Poetry untuk mendownload dependensi dan mengonfigurasi project:
    poetry install
    

Menyiapkan konten

Project Agent Docs dirancang untuk bekerja dengan konten teks, dan mencakup alat khusus untuk bekerja dengan situs web yang menggunakan Markdown sebagai format sumber. Jika Anda menangani konten situs, Anda harus mempertahankan (atau mereplikasi) struktur direktori situs yang ditayangkan agar tugas pemrosesan konten dapat memetakan dan membuat link ke konten tersebut.

Bergantung pada format dan detail konten, Anda mungkin perlu membersihkan konten untuk menghapus informasi non-publik, catatan internal, atau informasi lain yang tidak ingin Anda telusuri. Anda harus mempertahankan pemformatan dasar seperti judul dan tajuk, yang membantu membuat pemisahan atau potongan teks yang logis dalam langkah pemrosesan konten.

Untuk menyiapkan konten yang akan diproses:

  1. Buat direktori untuk konten yang Anda inginkan untuk ditelusuri oleh agen AI.
    mkdir docs-agent/content/
    
  2. Salin konten Anda ke direktori docs-agent/content/. Jika kontennya adalah situs, pertahankan (atau replikasikan) struktur direktori situs yang ditayangkan.
  3. Bersihkan atau edit konten sesuai kebutuhan untuk menghapus informasi non-publik, atau informasi lain yang tidak ingin Anda sertakan dalam penelusuran.

Menggunakan dokumen Flutter untuk pengujian

Jika memerlukan serangkaian konten untuk menguji Agen Dokumen, Anda dapat menggunakan dokumen developer Flutter untuk pengujian.

Untuk mendapatkan dokumen developer Flutter:

  1. Pindah ke direktori konten untuk konten yang Anda inginkan agar ditelusuri oleh agen AI.
    cd docs-agent/content/
    
  2. Clone dokumen Flutter ke direktori docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Memproses konten

Agar agen penelusuran dapat secara efektif menelusuri konten yang terkait dengan pertanyaan pengguna, Anda perlu membuat database vektor yang merepresentasikan konten Anda. Vektor dihasilkan menggunakan fungsi model generatif AI yang disebut embedding teks. Embedding teks adalah representasi numerik konten teks. Pola tersebut memperkirakan makna semantik teks sebagai sekumpulan angka. Memiliki representasi numerik informasi memungkinkan sistem untuk mengambil pertanyaan pengguna, memperkirakan artinya menggunakan fungsi penyematan teks yang sama, lalu menemukan informasi terkait sebagai perhitungan matematis, menggunakan algoritma k-nearestest (k-NN).

Memisahkan konten teks

Jumlah teks yang dapat diwakili oleh vektor embedding teks secara efektif terbatas. Project ini membatasi teks yang direpresentasikan dalam vektor hingga 3.000 karakter atau kurang, dan itu berarti Anda harus membagi konten Anda menjadi potongan-potongan di bawah batas karakter tersebut. Bagian ini menjelaskan cara menggunakan skrip yang disediakan dengan project Agen Dokumen untuk membagi file Markdown menjadi potongan teks yang lebih kecil. Untuk tips cara menggunakan format konten lain, lihat Menangani format lain.

Untuk memisahkan konten format Markdown:

  1. Konfigurasikan parameter input untuk skrip pemrosesan dengan mengedit file docs-agent/config.yaml. Contoh ini menargetkan subset dokumen Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Simpan perubahan Anda pada file konfigurasi ini.
  3. Buka direktori project docs-agent:
    cd docs-agent/
    
  4. Pisahkan konten sumber Markdown dengan menjalankan perintah agent chunk:
    agent chunk
    

Skrip memproses konten input dan membuat file teks output di direktori docs-agent/data, yang memisahkan teks berdasarkan judul, heading, dan paragraf terkait. Pemrosesan mungkin memerlukan waktu beberapa saat, bergantung pada ukuran konten Anda.

Membuat vektor embedding teks

Setelah membagi konten menjadi potongan-potongan yang bermakna dan berukuran sesuai, Anda dapat mengisi database vektor dengan konten menggunakan fungsi penyematan teks. Project Agen Dokumen menggunakan database vektor Chroma untuk menyimpan vektor penyematan teks. Petunjuk ini membahas cara menggunakan skrip Agen Dokumen untuk mengisi database vektor dengan konten terpisah.

Untuk membuat embedding teks dan mengisi database vektor:

  1. Buka direktori project docs-agent:
    cd docs-agent/
    
  2. Isi database vektor dengan konten Anda menggunakan perintah agent populate:
    agent populate
    

Skrip ini menggunakan Google Gemini API untuk menghasilkan vektor penyematan teks, lalu menyimpan outputnya ke database vektor. Pemrosesan mungkin memerlukan waktu beberapa saat, bergantung pada ukuran konten.

Menangani format lain

Project Docs Agent dirancang untuk bekerja dengan konten situs dalam format Markdown. Penulis project telah membuat beberapa skrip pengonversi untuk menghasilkan jenis konten lain ke dalam format Markdown, termasuk Google Dokumen, Format Dokumen Portabel (PDF), dan Gmail. Untuk informasi selengkapnya tentang penggunaan pengonversi ini, lihat direktori docs-agent/apps_script dari repositori kode.

Mengonversi format konten lain

Anda dapat menggunakan format konten lain dengan project, tetapi metode tambahan tersebut harus dibuat oleh Anda atau anggota komunitas lainnya. Lihat repositori kode Issues dan Pull Requests untuk orang-orang yang membuat solusi serupa.

Kode kunci yang perlu Anda buat untuk mendukung format konten lain adalah skrip pemisah seperti skrip files_to_plain_text.py. Targetkan untuk membuat skrip atau program yang menghasilkan output serupa dengan skrip ini. Ingat bahwa output teks akhir harus memiliki sedikit format dan informasi yang tidak relevan. Jika Anda menggunakan format konten seperti HTML atau JSON, pastikan Anda menghapus sebanyak mungkin format non-informasi (tag, pembuatan skrip, CSS), sehingga tidak mendistorsi nilai embedding teks yang Anda hasilkan darinya.

Setelah membuat skrip pemisah untuk format konten, Anda seharusnya dapat menjalankan skrip populate_vector_database.py untuk mengisi database vektor. Untuk mengetahui informasi selengkapnya tentang pemrosesan file yang akan digunakan dengan Agen Dokumen, lihat Preprocess Readme di Agen Dokumen.

Menguji aplikasi

Setelah Anda selesai mengisi database vektor, project siap untuk diuji. Project ini menyediakan fungsi pengemasan agar Anda dapat menjalankan project secara lokal.

Untuk menjalankan dan menguji antarmuka web project:

  1. Buka direktori project docs-agent:
    cd docs-agent/
    
  2. Jalankan skrip peluncuran aplikasi web:
    agent chatbot
    
  3. Dengan menggunakan browser web, buka alamat web URL yang ditampilkan di output skrip peluncuran dan uji aplikasi.
    * Running on http://your-hostname-here:5000
    

Opsi penerapan

Gemini API menyediakan alat pemrograman yang dapat menggantikan komponen implementasi Agen Dokumen, khususnya: Semantic Retrieval dan Attributed Question Answering (AQA) Gemini. Anda dapat menggunakan fitur Pengambilan Semantik Gemini API untuk mengganti database vektor yang terpisah. Fitur Pengambilan Semantik memungkinkan Anda membuat embedding untuk konten, dan menyimpan konten tersebut. Model AQA Gemini disesuaikan untuk menjawab pertanyaan dengan materi sumber yang disediakan dalam perintah. Anda menggunakan Pengambilan Semantik bersama dengan model AQA untuk menjawab pertanyaan tentang konten Anda, semuanya dalam Gemini API.

Agen Dokumen menyertakan opsi konfigurasi untuk menggunakan fitur Semantic Retrieval API, model AQA Gemini, atau keduanya. Untuk mengetahui informasi selengkapnya, lihat Dokumen Readme Agen Dokumen.

Referensi tambahan

Untuk mengetahui informasi selengkapnya tentang project Agen Dokumen, lihat repositori kode. Jika Anda memerlukan bantuan untuk membuat aplikasi atau mencari kolaborator developer, lihat server Komunitas Discord Google Developers.

Aplikasi produksi

Jika Anda berencana men-deploy Agen Dokumen untuk audiens yang besar, perhatikan bahwa penggunaan Google Gemini API oleh Anda mungkin dikenai pembatasan kapasitas dan batasan penggunaan lainnya. Jika Anda mempertimbangkan untuk membangun aplikasi produksi dengan Gemini API seperti Agen Dokumen, lihat layanan Vertex AI Google Cloud untuk meningkatkan skalabilitas dan keandalan aplikasi Anda.