Menelusuri informasi adalah salah satu penggunaan paling umum dari model generatif kecerdasan buatan (AI). Membuat antarmuka penelusuran percakapan untuk konten Anda menggunakan AI memungkinkan pengguna mengajukan pertanyaan tertentu dan mendapatkan jawaban langsung.
Tutorial ini menunjukkan cara membuat antarmuka penelusuran percakapan yang didukung AI untuk konten Anda. Aplikasi ini didasarkan pada Agen Dokumen, 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 dapat membuat kemampuan penelusuran ini dengan cepat dan menggunakannya untuk set konten kecil dan besar.
Untuk ringkasan video tentang 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.
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 mendetail dalam gaya percakapan dan mendapatkan jawaban mendetail berdasarkan kumpulan konten tertentu. Di balik layar, Agen Dokumen mengambil pertanyaan dan menelusuri database vektor konten, serta membuat perintah mendetail untuk model generatif, termasuk cuplikan teks yang relevan. Model generatif menghasilkan respons terhadap pertanyaan dan Agen Dokumen memformat respons tersebut dan menampilkannya kepada pengguna.
Gambar 1. Diagram fungsional aplikasi project Agen Dokumen.
Kunci untuk membuat Agen Dokumen dapat menjawab pertanyaan tentang konten Anda adalah pembuatan database vektor konten tersebut. Anda memisahkan konten menjadi bagian teks yang logis dan membuat vektor untuk setiap bagian. Vektor ini adalah representasi numerik informasi dalam setiap bagian dan dihasilkan dengan fungsi penyematan teks AI dari model generatif Google.
Saat pengguna mengajukan pertanyaan, Agen Dokumen menggunakan fungsi penyematan teks yang sama untuk membuat representasi numerik pertanyaan tersebut, dan menggunakan nilai tersebut untuk menelusuri database vektor dan menemukan konten terkait. Model ini mengambil hasil terbaik 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:
- Instal Python 3 dan paket lingkungan virtual
venv
untuk Python.
sudo apt update sudo apt install git pip python3-venv
- 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 agar project kode
Agen Dokumen dapat berjalan, termasuk Kunci API Gemini Google dan setelan
Python Poetry. Sebaiknya tambahkan variabel ini ke file $HOME/.bashrc
jika Anda menggunakan Linux, untuk menjadikannya setelan default untuk sesi
terminal Anda.
Untuk menetapkan variabel lingkungan:
- Dapatkan Kunci Google Gemini API dan salin string kunci.
- Tetapkan Kunci API sebagai variabel lingkungan. Di host Linux, gunakan
perintah berikut.
export API_KEY=<YOUR_API_KEY_HERE>
- Selesaikan masalah
yang diketahui
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:
- Clone repositori git menggunakan perintah berikut.
git clone https://github.com/google/generative-ai-docs
- Atau, konfigurasikan repositori git lokal Anda untuk menggunakan checkout jarang,
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/
- Berpindahlah ke direktori utama project
docs-agent
.
cd examples/gemini/python/docs-agent/
- Jalankan perintah penginstalan Poetry untuk mendownload dependensi dan mengonfigurasi
project:
poetry install
Menyiapkan konten
Project Agen Dokumen dirancang untuk digunakan dengan konten teks, dan menyertakan alat khusus untuk digunakan dengan situs yang menggunakan Markdown sebagai format sumber. Jika Anda menangani konten situs, Anda harus mempertahankan (atau mereplikasi) struktur direktori situs yang ditayangkan untuk memungkinkan tugas pemrosesan konten 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 lainnya yang tidak ingin Anda telusuri. Anda harus mempertahankan pemformatan dasar seperti judul dan judul, yang membantu membuat pemisahan teks yang logis, atau bagian, dalam langkah pemrosesan konten.
Untuk menyiapkan konten agar dapat diproses:
- Buat direktori untuk konten yang ingin Anda telusuri oleh agen AI.
mkdir docs-agent/content/
- Salin konten Anda ke direktori
docs-agent/content/
. Jika konten adalah situs, pertahankan (atau buat duplikat) struktur direktori situs yang ditayangkan. - 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 kumpulan konten untuk menguji Agen Dokumen, Anda dapat menggunakan dokumen developer Flutter untuk pengujian.
Untuk mendapatkan dokumen developer Flutter:
- Berpindahlah ke direktori konten untuk konten yang ingin ditelusuri oleh agen AI.
cd docs-agent/content/
- 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 pertanyaan pengguna secara efektif, Anda perlu membuat database vektor yang mewakili konten Anda. Vektor dihasilkan menggunakan fungsi model generatif AI yang disebut embedding teks. Embedding teks adalah representasi numerik dari konten teks. Model ini memperkirakan makna semantik teks sebagai kumpulan angka. Dengan representasi numerik informasi, sistem dapat mengambil pertanyaan pengguna, memperkirakan maknanya menggunakan fungsi penyematan teks yang sama, lalu menemukan informasi terkait sebagai penghitungan matematika, menggunakan algoritma tetangga terdekat (k-NN).
Memisahkan konten teks
Jumlah teks yang dapat direpresentasikan secara efektif oleh vektor penyematan teks terbatas. Project ini membatasi teks yang direpresentasikan dalam vektor hingga 3.000 karakter atau kurang, dan itu berarti Anda harus membagi konten menjadi beberapa bagian 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 tentang cara menggunakan format konten lainnya, lihat Menangani format lain.
Untuk memisahkan konten format Markdown:
- Konfigurasikan parameter input untuk skrip pemrosesan dengan mengedit
file
docs-agent/config.yaml
. Contoh ini menargetkan sebagian dokumen Flutter:
input: - path: "content/website/src/ui" url_prefix: "https://docs.flutter.dev/ui"
- Simpan perubahan Anda ke file konfigurasi ini.
- Buka direktori project
docs-agent
:
cd docs-agent/
- 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, judul, dan
paragraf terkait. Pemrosesan mungkin memerlukan waktu beberapa saat, bergantung pada ukuran
konten Anda.
Membuat vektor embedding teks
Setelah membagi konten menjadi beberapa bagian yang berukuran tepat dan bermakna, 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 pemisahan Anda.
Untuk membuat embedding teks dan mengisi database vektor:
- Buka direktori project
docs-agent
:
cd docs-agent/
- Isi database vektor dengan konten Anda menggunakan perintah
agent populate
:
agent populate
Skrip ini menggunakan Google Gemini API untuk membuat vektor penyematan teks, lalu menyimpan output ke database vektor. Pemrosesan mungkin memerlukan waktu beberapa saat, bergantung pada ukuran konten Anda.
Menangani format lain
Project Agen Dokumen dirancang untuk berfungsi dengan konten situs dalam format Markdown. Penulis project telah membuat beberapa skrip pengonversi untuk membuat jenis konten lain ke dalam format Markdown, termasuk Google Dokumen, Portable Document Format (PDF), dan Gmail. Untuk informasi selengkapnya tentang cara menggunakan konverter ini, lihat direktori docs-agent/apps_script di repositori kode.
Mengonversi format konten lainnya
Anda dapat menggunakan format konten lain dengan project, tetapi metode tambahan tersebut perlu dibuat oleh Anda atau anggota komunitas lainnya. Periksa Masalah dan Permintaan Pull repositori kode untuk menemukan orang yang membuat solusi serupa.
Kode utama yang perlu Anda build untuk mendukung format konten lainnya adalah skrip pemisah
seperti
skrip
files_to_plain_text.py
. Bertujuan untuk mem-build skrip atau program yang menghasilkan output serupa dengan skrip ini. Ingat bahwa output teks akhir harus memiliki format dan
informasi tambahan yang minimal. Jika Anda menggunakan format konten seperti HTML atau JSON,
pastikan Anda menghapus sebanyak mungkin format non-informasi (tag,
skrip, CSS), sehingga tidak mendistorsi nilai penyematan teks
yang Anda buat darinya.
Setelah membuat skrip pemisah untuk format konten, Anda akan dapat
menjalankan
skrip
populate_vector_database.py
untuk mengisi database vektor. Untuk informasi selengkapnya tentang pemrosesan
file yang akan digunakan dengan Agen Dokumen, lihat Readme Prapemrosesan 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:
- Buka direktori project
docs-agent
:
cd docs-agent/
- Jalankan skrip peluncuran aplikasi web:
agent chatbot
- Dengan menggunakan browser web, buka alamat web URL yang ditampilkan dalam
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: varian model Gemini Pengambilan Semantik dan Pemberian Jawaban Pertanyaan (AQA). Anda dapat menggunakan fitur Pengambilan Semantik Gemini API untuk mengganti database vektor terpisah. Fitur Pengambilan Semantik memungkinkan Anda membuat penyematan untuk konten, dan menyimpan konten tersebut. Model Gemini AQA disesuaikan untuk menjawab pertanyaan dengan materi sumber yang diberikan 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 Retrievement API, model AQA Gemini, atau keduanya. Untuk mengetahui informasi selengkapnya, lihat Readme Agen Dokumen.
Referensi lainnya
Untuk mengetahui informasi selengkapnya tentang project Agen Dokumen, lihat repositori kode. Jika Anda memerlukan bantuan untuk mem-build aplikasi atau mencari collaborator developer, lihat server Discord Komunitas Developer Google.
Aplikasi produksi
Jika Anda berencana men-deploy Agen Dokumen untuk audiens yang besar, perhatikan bahwa penggunaan Google Gemini API Anda mungkin tunduk pada pembatasan kapasitas dan pembatasan penggunaan lainnya. Jika Anda mempertimbangkan untuk membuat aplikasi produksi dengan Gemini API seperti Agen Dokumen, lihat layanan Google Cloud Vertex AI untuk meningkatkan skalabilitas dan keandalan aplikasi Anda.