Membangun penelusuran konten AI dengan Agen Dokumen

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

Tutorial ini menunjukkan kepada Anda cara membuat penelusuran percakapan dengan teknologi AI untuk konten Anda. Hal ini didasarkan pada Agen Dokumen, project open source yang menggunakan Google Gemini API untuk membuat antarmuka penelusuran, tanpa melatih model AI baru atau melakukan tuning model dengan Model Gemini. Hal itu berarti Anda bisa mengembangkan kemampuan pencarian Anda dengan cepat dan menggunakannya untuk set konten kecil dan besar.

Untuk video ringkasan proyek dan cara memperluasnya, termasuk wawasan dari orang-orang yang membuatnya, lihat: Penelusuran Konten AI | Membangun aplikasi dengan AI Google. Jika tidak, Anda dapat mulai memperpanjang project dengan mengikuti petunjuk di bawah ini.

Ringkasan

Project Agen Dokumen menyediakan antarmuka penelusuran percakapan untuk set konten yang didukung, yang didukung oleh Gemini API dan model generatif dari Google. Pengguna dapat mengajukan pertanyaan terperinci dengan gaya percakapan dan mendapatkan jawaban yang terperinci berdasarkan kumpulan konten tertentu. Di balik layar, Agen Dokumen mengambil pertanyaan dan penelusuran terhadap {i>database<i} vektor konten, dan membuat perintah terperinci untuk model generatif, termasuk cuplikan teks yang relevan. Model generatif akan menghasilkan respons terhadap pertanyaan dan Agen Dokumen memformat respons dan menyajikannya kepada pengguna.

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

Kunci agar Agen Dokumen dapat menjawab pertanyaan tentang konten Anda adalah pembuatan database vektor dari konten tersebut. Anda memisahkan konten ke dalam potongan teks yang logis dan menghasilkan sebuah vektor untuk masing-masing teks. Semua vektor ini representasi numerik dari informasi di setiap potongan dan dihasilkan dengan fungsi penyematan teks AI dari model generatif Google.

Saat pengguna mengajukan pertanyaan, Agen Dokumen menggunakan penyematan teks yang sama untuk membuat representasi numerik dari pertanyaan itu, dan menggunakannya nilai untuk menelusuri database vektor dan menemukan konten yang terkait. Model ini mengambil alih dan menambahkan informasi tersebut ke prompt untuk model generatif. AI mengambil pertanyaan dan informasi konteks tambahan, lalu ke suatu jawaban tertentu.

Penyiapan project

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

Instal prasyarat

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

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 proyek.
    curl -sSL https://install.python-poetry.org | python3 -
    

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

Menetapkan variabel lingkungan

Menetapkan beberapa variabel lingkungan yang diperlukan untuk mengizinkan kode Agen Dokumen project yang akan dijalankan, termasuk Kunci Gemini API Google dan Python Setelan puisi. Sebaiknya tambahkan variabel ini ke file $HOME/.bashrc Anda jika Anda menggunakan Linux, untuk menjadikannya sebagai pengaturan {i>default<i} untuk terminal Anda sesi.

Untuk menetapkan variabel lingkungan:

  1. Dapatkan Kunci Gemini API Google dan salin string kuncinya.
  2. Menetapkan Kunci API sebagai variabel lingkungan. Pada host Linux, gunakan perintah berikut.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Menyelesaikan masalah yang diketahui masalah untuk Python Poetry dengan menyetel parameter PYTHON_KEYRING_BACKEND. Pada host Linux, gunakan perintah berikut.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Meng-clone dan mengonfigurasi project

Mendownload kode project dan menggunakan perintah penginstalan Poetry untuk mendownload dependensi yang diperlukan dan mengonfigurasi project. Anda perlu git software kontrol sumber untuk mengambil kode sumber project Anda. 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 Anda untuk menggunakan checkout sparse, jadi 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. Pindahkan ke direktori utama project docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Jalankan perintah penginstalan Poetry untuk mendownload dependensi dan mengonfigurasi proyek:
    poetry install
    

Menyiapkan konten

Project Agen Dokumen dirancang agar dapat digunakan dengan konten teks, dan mencakup alat yang khusus untuk bekerja dengan {i>website<i} yang menggunakan Markdown sebagai format sumber. Jika Anda bekerja dengan konten situs web, Anda harus mempertahankan (atau mereplikasi) struktur direktori situs web yang dilayani untuk memungkinkan tugas pemrosesan konten untuk memetakan dan membuat tautan ke konten tersebut.

Tergantung format dan detail konten, Anda mungkin perlu membersihkan konten untuk menghapus informasi non-publik, catatan internal, atau informasi lainnya yang tidak Anda inginkan untuk dapat ditelusuri. Anda harus mempertahankan pemformatan dasar seperti seperti judul dan {i>heading<i}, yang membantu membuat pemisahan teks yang logis, atau potongan, dalam 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 konten berupa situs web, mempertahankan (atau mereplikasi) struktur direktori untuk situs yang ditayangkan.
  3. Bersihkan atau edit konten sesuai kebutuhan untuk menghapus informasi non-publik, atau informasi lain yang tidak ingin disertakan dalam penelusuran.

Menggunakan dokumen Flutter untuk pengujian

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

Untuk mendapatkan dokumen developer Flutter:

  1. Pindah ke direktori konten untuk konten yang Anda inginkan untuk diperiksa oleh agen AI cari.
    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 menelusuri konten yang terkait dengan secara efektif pengguna pertanyaan, Anda perlu membangun {i>database<i} vektor yang mewakili saat ini. Vektor dihasilkan menggunakan fungsi model generatif AI yang disebut penyematan teks. Embedding teks merupakan representasi numerik dari teks saat ini. Dia memperkirakan makna semantik teks sebagai sekumpulan angka. Memiliki representasi numerik dari informasi memungkinkan sistem untuk mengambil terhadap pertanyaan pengguna, memperkirakan maknanya menggunakan embedding teks yang sama fungsi, dan kemudian menemukan informasi terkait sebagai kalkulasi matematis, menggunakan k-tetangga terdekat (k-NN).

Pisahkan konten teks

Jumlah teks yang dapat diwakili oleh vektor embedding teks secara efektif adalah secara terbatas. Project ini membatasi teks yang direpresentasikan dalam vektor hingga 3000 karakter atau lebih sedikit, dan itu berarti Anda harus membagi konten menjadi beberapa bagian di bawah batas karakter. Bagian ini menjelaskan cara menggunakan skrip yang disediakan dengan Agen Docs untuk membagi file Markdown menjadi potongan teks yang lebih kecil. Untuk tips tentang bekerja dengan format konten lain, lihat Menangani format lain.

Untuk membagi konten format Markdown:

  1. Konfigurasikan parameter input untuk skrip pemrosesan dengan mengedit File docs-agent/config.yaml. Contoh ini menargetkan subset dokumentasi 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 ini memproses konten input dan membuat file teks output dalam Direktori docs-agent/data, yang memisahkan teks berdasarkan judul, heading, dan paragraf yang terkait. Pemrosesan mungkin butuh waktu beberapa saat, tergantung pada ukuran saat ini.

Membuat vektor embedding teks

Setelah membagi konten menjadi potongan-potongan bermakna dengan ukuran yang tepat, Anda dapat mengisi database vektor dengan konten menggunakan embedding teks fungsi tersebut. Project Agen Dokumen menggunakan Chroma database vektor untuk menyimpan vektor embedding teks. Petunjuk ini mencakup cara untuk menggunakan skrip Agen Dokumen guna mengisi database vektor dengan pemisahan Anda saat ini.

Untuk menghasilkan embedding teks dan mengisi database vektor:

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

Skrip ini menggunakan Gemini API Google untuk menghasilkan penyematan teks vektor, lalu menyimpan output-nya ke database vektor. Mungkin perlu waktu untuk memproses waktu, tergantung pada ukuran konten Anda.

Menangani format lain

Proyek Agen Dokumen dirancang untuk bekerja dengan konten situs web dalam Markdown format font. Penulis proyek telah membuat beberapa skrip pengonversi untuk menghasilkan jenis konten lain ke dalam format Markdown, termasuk Google Docs, Portable Document Format (PDF), dan Gmail. Untuk informasi selengkapnya tentang cara menggunakan pelaku konversi, lihat docs-agent/apps_script dari repositori kode.

Mengonversi format konten lain

Anda dapat menggunakan format konten lain dengan project, tetapi metode tambahan perlu dibuat oleh Anda atau anggota komunitas lainnya. Memeriksa repositori kode Masalah dan Permintaan Pull bagi orang-orang yang sedang membangun solusi serupa.

Kode kunci yang perlu Anda bangun untuk mendukung format konten lain adalah pemisah skrip seperti files_to_plain_text.py {i>script<i}. Targetkan untuk membangun skrip atau program yang menghasilkan {i>output<i} yang mirip dengan ini {i>script<i}. Ingat bahwa {i>output<i} teks akhir harus memiliki format yang minimal dan informasi asing. Jika Anda menggunakan format konten seperti HTML atau JSON, pastikan Anda menghapus sebanyak banyak pemformatan non-informatif (tag, pembuatan skrip, CSS) sebaik mungkin, sehingga tidak mendistorsi nilai teks embedding yang dihasilkan darinya.

Setelah membuat skrip pemisah untuk format konten, Anda seharusnya dapat jalankan populate_vector_database.py skrip untuk mengisi database vektor Anda. Untuk informasi selengkapnya tentang pemrosesan file untuk digunakan dengan Agen Dokumen, lihat Agen Dokumen Praproses Readme.

Menguji aplikasi

Setelah Anda selesai mengisi database vektor, project siap untuk pengujian. Project ini menyediakan fungsi pengemasan yang memungkinkan Anda 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 Anda, navigasikan ke alamat web URL yang ditampilkan di output skrip peluncuran dan menguji aplikasi.
    * Running on http://your-hostname-here:5000
    

Opsi penerapan

Gemini API menyediakan alat pemrograman yang dapat menggantikan komponen penerapan Agen Dokumen, khususnya: Pengambilan Semantik dan Diatribusikan Varian model Question Answering (AQA) Gemini. Anda dapat menggunakan Pengambilan Semantik untuk menggantikan database vektor terpisah. Fitur Pengambilan Semantik memungkinkan Anda menghasilkan embeddings untuk konten Anda, dan menyimpan konten tersebut. Tujuan Model Gemini AQA telah disesuaikan menjawab pertanyaan dengan materi sumber yang disediakan dalam perintah. Anda menggunakan Semantik Pengambilan data bersama model AQA untuk menjawab pertanyaan mengenai konten Anda, semuanya dalam Gemini API.

Agen Dokumen menyertakan opsi konfigurasi untuk menggunakan Semantik Fitur API pengambilan, model AQA Gemini, atau keduanya. Untuk informasi selengkapnya, lihat tindakan Readme Agen Dokumen.

Referensi lainnya

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

Aplikasi produksi

Jika Anda berencana menerapkan Agen Dokumen untuk audiens dalam jumlah besar, perhatikan bahwa penggunaan Gemini API Google mungkin dikenai pembatasan kapasitas dan pembatasan penggunaan. Jika Anda mempertimbangkan untuk membangun aplikasi produksi dengan Gemini API seperti Agen Dokumen, lihat Vertex AI Google Cloud untuk meningkatkan skalabilitas dan keandalan aplikasi Anda.