Sejujurnya, saat pertama kali menjumpai istilah "RAG", saya merasa seperti sedang menatap tembok jargon teknis. Anda mungkin pernah mendengar banyak kata kunci yang beredar di topik Agen AI: basis data vektor, penyematan, pembangkitan augmented retrieval. Konsep-konsep ini bisa terasa membingungkan, terutama saat setiap tutorial mengasumsikan Anda sudah memahami blok penyusun fundamental. Setelah menghabiskan waktu berjam-jam membangun agen dengan Neuron ADK, saya telah belajar bahwa tantangan sebenarnya bukanlah implementasinya—melainkan memahami apa yang sebenarnya dilakukan sistem ini dan mengapa itu penting.
Pertama-tama, saya akan menjelaskan apa sebenarnya kepanjangan dari RAG dan mengapa itu menjadi landasan pengembangan agen AI modern.
Memahami Fondasi: Apa Arti Sebenarnya dari RAG
Pembuatan Augmented retrieval dipecah menjadi tiga komponen penting yang bekerja secara harmonis untuk memecahkan masalah fundamental dalam AI: bagaimana kita memberi model bahasa akses ke informasi spesifik, terkini, atau hak milik yang bukan bagian dari data pelatihan aslinya?
Bagian "G" dari akronim RAG sangat jelas—kita berbicara tentang model AI "Generatif" seperti GPT, Claude, Gemini, atau model bahasa besar lainnya yang dapat menghasilkan respons teks seperti manusia. Model-model ini sangat hebat, tetapi memiliki keterbatasan yang signifikan: mereka hanya mengetahui apa yang telah mereka pelajari, dan pengetahuan itu memiliki batas waktu. Mereka tidak dapat mengakses dokumen internal perusahaan Anda, catatan pribadi Anda, atau informasi waktu nyata dari basis data Anda.
Di sinilah komponen "Pengambilan yang Ditingkatkan" menjadi transformatif. Alih-alih hanya mengandalkan pengetahuan model yang telah dilatih sebelumnya, kami menambah kemampuannya dengan mengambil informasi yang relevan dari sumber eksternal pada saat pembuatan. Anggap saja seperti memberi agen AI Anda asisten penelitian yang dapat langsung menemukan dan menyajikan konteks yang relevan sebelum menjawab pertanyaan apa pun.
Di bawah ini Anda dapat melihat contoh cara kerja proses ini:
Keajaiban di Balik Embedding dan Ruang Vektor
Untuk memahami cara kerja pengambilan dalam praktik, kita perlu menyelami embedding—sebuah konsep yang awalnya tampak abstrak tetapi menjadi intuitif setelah Anda melihatnya dalam praktik. Embedding pada dasarnya adalah representasi matematis dari teks, gambar, atau data apa pun yang diubah menjadi daftar angka yang disebut vektor. Yang membuat ini hebat adalah bahwa konsep yang serupa berakhir dengan vektor yang serupa, menciptakan ruang matematika tempat ide-ide terkait berkumpul bersama.
Ketika pertama kali mulai bekerja dengan Neuron ADK, saya kagum dengan cara kerjanya dalam praktik. Bayangkan Anda memiliki ribuan dokumen—tiket dukungan pelanggan, manual produk, wiki internal, makalah penelitian. Pencarian kata kunci tradisional akan memerlukan kecocokan persis atau logika Boolean yang cerdas untuk menemukan informasi yang relevan. Namun dengan penyematan, Anda dapat mengajukan pertanyaan seperti "Bagaimana cara mengatasi masalah koneksi?" dan sistem akan menemukan dokumen tentang masalah jaringan, kegagalan autentikasi, dan waktu server habis, meskipun dokumen tersebut tidak pernah menggunakan frasa persis "masalah koneksi".
Proses ini bekerja dengan mengubah pertanyaan dan semua dokumen Anda menjadi vektor matematika ini. Sistem kemudian menghitung vektor dokumen mana yang paling dekat dengan vektor pertanyaan Anda di ruang multidimensi ini. Ini seperti memiliki pustakawan yang memahami makna dan konteks permintaan Anda, bukan hanya kata-kata literal yang Anda gunakan.
Basis Data Vektor: Sistem Memori yang Dibutuhkan Agen Anda
Hal ini membawa kita ke basis data vektor, yang berfungsi sebagai sistem memori untuk agen RAG Anda. Basis data tradisional sangat bagus untuk data terstruktur—nama, tanggal, kategori, transaksi. Namun, basis data tersebut mengalami kendala dalam hubungan yang rumit antara konsep dan ide. Basis data vektor secara khusus dirancang untuk menyimpan vektor-vektor yang disematkan ini dan melakukan pencarian kesamaan secepat kilat di jutaan dokumen.
Selama pengalaman saya mengembangkan dengan Neuron ADK, saya telah melihat bagaimana basis data vektor mengubah pengalaman pengguna. Alih-alih agen yang memberikan respons umum atau mengklaim bahwa mereka tidak memiliki akses ke informasi tertentu, Anda mendapatkan agen yang dapat langsung mengakses dan mensintesis informasi dari seluruh basis pengetahuan Anda. Agen tidak hanya mengetahui topik umum—ia mengetahui tentang produk spesifik Anda, kebijakan perusahaan Anda, riwayat pelanggan Anda, dan konteks bisnis unik Anda.
Tantangan Implementasi RAG
Pemahaman konseptual tentang RAG adalah satu hal—membangun sistem yang berfungsi dengan baik adalah tantangan yang sama sekali berbeda. Di sinilah kompleksitas benar-benar muncul, dan itulah sebabnya Neuron ADK merupakan alat yang sangat berharga bagi para pengembang PHP yang memasuki bidang ini.
Ekosistem melibatkan beberapa bagian yang bergerak: Anda perlu mengelompokkan dokumen secara efektif, membuat embedding menggunakan model yang sesuai, menyimpan dan mengindeks embedding tersebut dalam basis data vektor, menerapkan fungsionalitas pencarian semantik, lalu mengatur proses pengambilan dan pembuatan dengan lancar.
Setiap langkah ini melibatkan keputusan teknis yang dapat memengaruhi kinerja agen Anda secara signifikan. Bagaimana Anda membagi dokumen panjang menjadi potongan-potongan yang bermakna? Model penyematan mana yang paling cocok untuk domain Anda? Bagaimana Anda menangani pembaruan pada basis pengetahuan Anda? Bagaimana Anda menyeimbangkan akurasi pengambilan dengan kecepatan respons? Pertanyaan-pertanyaan ini menjadi lebih mendesak saat Anda membangun sistem produksi yang perlu diskalakan dan berkinerja andal.
Bekerja dengan Neuron ADK telah mengajarkan saya bahwa implementasi RAG yang sukses bukan hanya tentang memahami masing-masing komponen—tetapi tentang mengaturnya menjadi sistem kohesif yang terasa alami dan cerdas bagi pengguna. Neuron ADK menangani banyak tantangan integrasi yang kompleks, yang memungkinkan pengembang untuk fokus pada logika bisnis dan pengalaman pengguna daripada infrastruktur yang mendasarinya.
Dalam panduan implementasi terperinci berikut, kita akan mengeksplorasi bagaimana Neuron ADK menyederhanakan orkestrasi yang kompleks ini, menyediakan alat dan pola bagi pengembang PHP yang membuat pengembangan agen RAG dapat diakses dan canggih.
Install Neuron AI
Instal versi terbaru dengan perintah composer di bawah ini:
composer require inspector-apm/neuron-ai
Implement the first RAG Agent
Untuk membuat agen RAG, Anda harus memperluas kelas `NeuronAI\RAG\RAG`, dan melampirkan komponen yang diperlukan seperti penyimpanan vektor, dan penyedia penyematan beserta penyedia AI.
Berikut ini adalah contoh kelas RAG:
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
use NeuronAI\RAG\Embeddings\EmbeddingsProviderInterface;
use NeuronAI\RAG\Embeddings\OpenAIEmbeddingProvider;
use NeuronAI\RAG\RAG;
use NeuronAI\RAG\VectorStore\FileVectoreStore;
use NeuronAI\RAG\VectorStore\VectorStoreInterface;
class MyChatBot extends RAG
{
protected function provider(): AIProviderInterface
{
return new Anthropic(
key: 'ANTHROPIC_API_KEY',
model: 'ANTHROPIC_MODEL',
);
}
protected function embeddings(): EmbeddingsProviderInterface
{
return new OpenAIEmbeddingProvider(
key: 'OPENAI_API_KEY',
model: 'OPENAI_MODEL'
);
}
protected function vectorStore(): VectorStoreInterface
{
return new FileVectoreStore(
directory: __DIR__,
key: 'demo'
);
}
}Dalam contoh di atas, kami menyediakan agen dengan koneksi ke:
LLM (Antropik dalam kasus ini)
Penyedia Embedding – layanan yang mampu mengubah teks menjadi embedding vektor
Penyimpanan vektor untuk menyimpan embedding yang dihasilkan dan melakukan pengambilan dokumen
Anda memiliki banyak pilihan untuk setiap komponen ini, jadi silakan jelajahi dokumentasi untuk memilih yang Anda sukai: https://docs.neuron-ai.dev/components/ai-provider
Feed Your RAG With A Knowledge Base
Pada tahap ini, penyimpanan vektor di balik agen RAG kita kosong. Jika kita mengirim perintah ke agen, ia akan dapat merespons dengan hanya memanfaatkan data pelatihan LLM yang mendasarinya.
use NeuronAI\Chat\Messages\UserMessage;
$response = MyChatBot::make()
->answer(
new UserMessage('How can I create an agent with Neuron AI ADK?.')
);
echo $response->getContent();
// I don't really know specifically about Neuron ADK. Do you want to provide me
// with additional information?Kita perlu memberi RAG sejumlah pengetahuan agar ia mampu menanggapi pertanyaan mengenai kebutuhan spesifik kita.
Neuron AI Data Loader
Untuk membangun aplikasi AI yang terstruktur, Anda memerlukan kemampuan untuk mengubah semua informasi yang Anda miliki menjadi teks, sehingga Anda dapat membuat embedding, menyimpannya ke dalam penyimpanan vektor, lalu memberikan masukan kepada Agen Anda untuk menjawab pertanyaan pengguna.

Neuron memberi Anda beberapa alat (pemuat data) untuk menyederhanakan proses ini. Untuk menjawab pertanyaan sebelumnya (Bagaimana cara membuat Agen AI dengan Neuron ADK?) kita dapat mengisi berkas README.md dari paket penyusun Neuron.
use NeuronAI\RAG\DataLoader\FileDataLoader;
MyChatBot::make()->addDocuments(
// Use the file data loader component to process a text file
FileDataLoader::for(__DIR__.'/vendor/inspector-apm/neuron-ai/README.md')->getDocuments()
);Dengan Neuron ADK, Anda dapat membuat alur kerja pemuatan data dengan manfaat antarmuka terpadu untuk memfasilitasi interaksi antar komponen, seperti penyedia penyematan, penyimpanan vektor, dan pembaca berkas.
Kode di atas harus diimplementasikan dalam perintah terpisah dan dijalankan agar chatbot Anda dapat menjawab pertanyaan tentang Neuron AI. Anda memuat berkas teks, PDF, string sederhana dari basis data, dan sumber lainnya. Jelajahi bagian khusus dalam dokumentasi: https://docs.neuron-ai.dev/components/data-loader
Setelah memuat data ke agen RAG, sekarang kita dapat mengirimkan pertanyaan kita lagi:
use NeuronAI\Chat\Messages\UserMessage;
$response = MyChatBot::make()
->answer(
new UserMessage('How can I create an agent with Neuron AI ADK?.')
);
echo $response->getContent();
// Neuron is an ADK that simplifies the development of AI Agents in PHP.
// Here is an example of how to implement an AI Agent using Neuron components...Observabilitas
Banyak Agen yang Anda buat dengan Neuron AI akan berisi beberapa langkah dengan beberapa pemanggilan LLM. Karena aplikasi ini semakin kompleks, menjadi penting untuk dapat memeriksa apa yang sebenarnya terjadi di dalam sistem Anda. Cara terbaik untuk melakukannya adalah dengan Inspector.
Tim Inspector merancang Neuron AI dengan fitur observabilitas bawaan, sehingga Anda dapat memantau agen AI yang sedang berjalan, memungkinkan Anda mendapatkan wawasan yang berarti dari dalam agen Anda untuk membantu Anda beralih dari prototipe ke produksi dengan percaya diri.


