Last chance! 50% off DataCamp Premium
Sale ends in
LlamaIndex dan LangChain adalah dua kerangka kerja andal untuk mengembangkan aplikasi yang ditenagai model bahasa besar, masing-masing dengan kekuatan dan fokus yang berbeda.
LlamaIndex unggul dalam tugas pencarian dan pengambilan. Ini adalah alat yang kuat untuk pengindeksan dan kueri data serta pilihan tepat untuk proyek yang membutuhkan pencarian tingkat lanjut. LlamaIndex memungkinkan penanganan kumpulan data besar, sehingga menghasilkan pengambilan informasi yang cepat dan akurat.
LangChain adalah kerangka kerja dengan seperangkat alat modular dan fleksibel untuk membangun beragam aplikasi NLP. Kerangka ini menawarkan antarmuka standar untuk membangun chain, integrasi luas dengan berbagai alat, dan chain ujung-ke-ujung lengkap untuk skenario aplikasi umum.
Mari kita lihat masing-masing secara lebih mendetail. Anda juga dapat membaca tutorial LlamaIndex dan tutorial LangChain lengkap kami untuk mempelajari lebih lanjut.
LangChain dirancang berdasarkan:
Prompt adalah instruksi yang diberikan kepada model bahasa untuk membimbing responsnya. LangChain menyediakan antarmuka standar untuk membuat dan mengelola prompt, sehingga lebih mudah untuk menyesuaikan dan menggunakannya kembali di berbagai model dan aplikasi. Anda dapat mempelajari lebih lanjut tentang rekayasa prompt dengan GPT dan LangChain dalam code-along DataCamp.
LangChain menawarkan antarmuka terpadu untuk berinteraksi dengan berbagai model bahasa besar (LLM). Ini mencakup model dari penyedia seperti OpenAI (misalnya, GPT-4o), Anthropic (misalnya, Claude), dan Cohere. Kerangka ini menyederhanakan pergantian antar model dengan mengabstraksikan perbedaannya, sehingga memungkinkan integrasi tanpa hambatan.
Fitur unggulan LangChain adalah kapabilitas pengelolaan memorinya untuk LLM. Berbeda dengan LLM pada umumnya yang memproses setiap kueri secara terpisah, LangChain mempertahankan informasi dari interaksi sebelumnya untuk memungkinkan percakapan yang sadar konteks dan koheren.
Kerangka ini menyediakan berbagai implementasi memori, yang menyimpan seluruh riwayat percakapan, serta mempertahankan yang terbaru dengan meringkas interaksi lama sambil menjaga yang terkini.
Chain adalah rangkaian operasi di mana keluaran dari satu langkah digunakan sebagai masukan untuk langkah berikutnya. LangChain menyediakan antarmuka yang tangguh untuk membangun dan mengelola chain, bersama banyak komponen yang dapat digunakan kembali. Pendekatan modular ini memungkinkan pembuatan alur kerja kompleks yang mengintegrasikan berbagai alat dan panggilan LLM.
Agen di LangChain dirancang untuk menentukan dan mengeksekusi tindakan berdasarkan masukan yang diberikan. Agen menggunakan LLM untuk memutuskan urutan tindakan dan memanfaatkan berbagai alat untuk menyelesaikan tugas. LangChain menyertakan beragam agen bawaan yang dapat digunakan atau disesuaikan agar sesuai dengan kebutuhan aplikasi spesifik.
LangChain menggunakan model embedding teks untuk membuat embedding yang menangkap makna semantik teks, sehingga meningkatkan penemuan dan pengambilan konten. Kerangka ini mendukung lebih dari 50 opsi penyimpanan berbeda untuk embedding, penyimpanan, dan pengambilan.
Dalam LangChain, agen bertindak menggunakan instruksi bahasa alami dan dapat menggunakan alat untuk menjawab kueri. Berdasarkan masukan pengguna, agen menentukan tindakan apa yang harus diambil dan urutannya. Tindakan dapat melibatkan penggunaan alat (seperti mesin telusur atau kalkulator) dan memproses keluarannya atau mengembalikan respons kepada pengguna.
Agen dapat secara dinamis memanggil chain berdasarkan masukan pengguna.
LangSmith adalah suite evaluator untuk pengujian dan optimalisasi aplikasi LLM. Anda dapat melihat secara mendalam cara debug dan menguji LLM di LangSmith melalui tutorial kami.
Suite LangSmith mencakup berbagai evaluator dan alat untuk menilai aspek kualitatif dan kuantitatif kinerja LLM.
Dataset merupakan inti dari proses evaluasi LangSmith, berfungsi sebagai kumpulan contoh yang digunakan sistem untuk menguji dan mengukur kinerja.
Dataset dapat dikurasi secara manual, dikumpulkan dari umpan balik pengguna, atau dihasilkan melalui LLM, dan menjadi dasar untuk menjalankan eksperimen serta melacak kinerja dari waktu ke waktu.
Evaluator mengukur metrik kinerja spesifik:
Evaluasi LangSmith dapat dilakukan baik secara offline maupun online: Evaluasi offline dapat dilakukan pada dataset acuan sebelum penerapan, sementara evaluasi online memantau aplikasi live secara berkelanjutan untuk memastikan memenuhi standar kinerja dan mendeteksi masalah seperti drift atau regresi.
LangSmith bermanfaat untuk beralih dari prototipe ke produksi agar aplikasi berkinerja baik dalam kondisi dunia nyata.
LangServe digunakan pada tahap penerapan aplikasi LangChain dengan mengotomatiskan inferensi skema, menyediakan endpoint API, dan pemantauan real-time.
LangServe dapat mengonversi chain apa pun menjadi REST API dengan:
/invoke, /batch, dan /stream, yang dapat menangani banyak permintaan secara bersamaan.Pemantauan
LangServe dapat diintegrasikan dengan tracing LangSmith untuk kapabilitas pemantauan real-time seperti:
LangServe menawarkan lingkungan playground bagi pengguna teknis maupun non-teknis untuk berinteraksi dan menguji aplikasi: mendukung output streaming, mencatat langkah-langkah perantara, dan opsi yang dapat dikonfigurasi untuk penyetelan aplikasi. LangServe juga secara otomatis menghasilkan dokumentasi API.
Penerapan dengan LangServe dapat dilakukan dengan GitHub untuk deployment satu klik dan mendukung berbagai platform hosting seperti Google Cloud dan Replit.
LlamaIndex membekali LLM dengan kemampuan menambahkan fungsionalitas RAG ke dalam sistem menggunakan sumber pengetahuan eksternal, basis data, dan indeks sebagai mesin kueri untuk tujuan memori.
Pada tahap ini, data privat Anda secara efisien diubah menjadi indeks vektor yang dapat dicari. LlamaIndex dapat memproses berbagai tipe data, termasuk dokumen teks tidak terstruktur, catatan basis data terstruktur, dan knowledge graph.
Data diubah menjadi embedding numerik yang menangkap makna semantiknya, memungkinkan pencarian kemiripan yang cepat di kemudian hari. Tahap ini memastikan semua informasi relevan diindeks dan siap untuk diambil dengan cepat.
Setelah Anda memuat dan mengindeks data, Anda akan ingin menyimpannya untuk menghindari waktu dan biaya pengindeksan ulang. Secara default, data terindeks hanya disimpan dalam memori, tetapi ada cara untuk membuatnya persisten untuk penggunaan di masa mendatang.
Metode paling sederhana adalah menggunakan metode .persist(), yang menulis semua data ke disk di lokasi yang ditentukan. Misalnya, setelah membuat indeks, Anda dapat menggunakan metode .persist() untuk menyimpan data ke sebuah direktori.
Untuk memuat ulang data yang dipersisten, Anda akan membangun ulang konteks penyimpanan dari direktori yang disimpan lalu memuat indeks menggunakan konteks tersebut. Dengan cara ini, Anda dapat dengan cepat melanjutkan indeks yang tersimpan, menghemat waktu dan sumber daya komputasi.
Anda dapat mempelajari cara melakukannya dalam tutorial LlamaIndex lengkap kami.
Vector store berguna untuk menyimpan embedding yang dibuat selama proses pengindeksan.
LlamaIndex menggunakan text-embedding-ada-002 default dari OpenAI untuk menghasilkan embedding ini. Bergantung pada LLM yang digunakan, embedding yang berbeda mungkin lebih disukai demi efisiensi dan biaya komputasi.
VectorStoreIndex mengonversi semua teks menjadi embedding menggunakan API dari LLM. Saat melakukan kueri, kueri masukan juga diubah menjadi embedding dan diperingkat. Indeks mengembalikan k-most similar embeddings teratas sebagai potongan teks.
Metode yang dikenal sebagai "top-k semantic retrieval" digunakan untuk mengambil data yang paling relevan.
Jika embedding sudah dibuat dan disimpan, Anda dapat memuatnya langsung dari vector store, sehingga tidak perlu memuat ulang dokumen atau membuat ulang indeks.
Summary index adalah bentuk pengindeksan yang lebih sederhana yang paling cocok untuk menghasilkan ringkasan dari dokumen teks. Indeks ini menyimpan semua dokumen dan mengembalikannya ke mesin kueri.
Pada tahap kueri, saat pengguna mengajukan pertanyaan ke sistem, potongan informasi yang paling relevan diambil dari indeks vektor berdasarkan kemiripan semantik kueri. Cuplikan yang diambil, bersama kueri asli, kemudian diteruskan ke model bahasa besar yang menghasilkan respons akhir.
Sistem mengambil informasi paling relevan dari indeks yang disimpan dan memberikannya ke LLM, yang merespons dengan informasi yang terbaru dan relevan secara kontekstual.
Langkah ini mengikuti retrieval. Pada tahap ini, segmen dokumen yang diambil, atau node, dapat diurutkan ulang, diubah, atau difilter. Node memuat metadata atau kata kunci tertentu, yang menyempurnakan relevansi dan akurasi pemrosesan data.
Sintesis respons adalah tahap akhir di mana kueri, data paling relevan, dan prompt awal digabungkan dan dikirim ke LLM untuk menghasilkan jawaban.
LlamaHub memuat beragam pemuat data yang dirancang untuk mengintegrasikan berbagai sumber data ke dalam alur kerja aplikasi atau sekadar digunakan untuk ingest data dari berbagai format dan repositori.
Sebagai contoh, Google Docs Reader dapat diinisialisasi dan digunakan untuk memuat data dari Google Docs. Pola yang sama berlaku untuk konektor lain yang tersedia di LlamaHub.
Salah satu konektor bawaan adalah SimpleDirectoryReader, yang mendukung berbagai jenis file, termasuk file markdown (.md), PDF, gambar (.jpg, .png), dokumen Word (.docx), dan bahkan file audio serta video. Konektor ini tersedia langsung sebagai bagian dari LlamaIndex dan dapat digunakan untuk memuat data dari direktori yang ditentukan.
LlamaIndex terutama dirancang untuk tugas pencarian dan pengambilan. Alat ini unggul dalam mengindeks kumpulan data besar dan mengambil informasi relevan secara cepat dan akurat. Di sisi lain, LangChain menyediakan kerangka kerja modular dan adaptif untuk membangun berbagai aplikasi NLP, termasuk chatbot, alat pembuatan konten, dan sistem otomasi alur kerja yang kompleks.
LlamaIndex mengubah berbagai jenis data, seperti dokumen teks tidak terstruktur dan catatan basis data terstruktur, menjadi embedding numerik yang menangkap makna semantiknya.
LangChain menyediakan pendekatan modular dan dapat disesuaikan untuk pengindeksan data dengan chain operasi yang kompleks, mengintegrasikan berbagai alat dan panggilan LLM.
LlamaIndex dioptimalkan untuk retrieval, menggunakan algoritme untuk memberi peringkat dokumen berdasarkan kemiripan semantik terhadap kueri.
LangChain mengintegrasikan algoritme retrieval dengan LLM untuk menghasilkan keluaran yang sadar konteks. LangChain dapat secara dinamis mengambil dan memproses informasi relevan berdasarkan konteks masukan pengguna, yang berguna untuk aplikasi interaktif seperti chatbot.
LlamaIndex menawarkan kustomisasi terbatas yang berfokus pada tugas pengindeksan dan retrieval. Desainnya dioptimalkan untuk fungsi spesifik ini, sehingga memberikan akurasi tinggi. Namun, LangChain menyediakan opsi kustomisasi yang luas. Kerangka ini mendukung pembuatan alur kerja kompleks untuk aplikasi yang sangat terarah dengan kebutuhan spesifik.
LlamaIndex menyediakan kapabilitas retensi konteks dasar yang cocok untuk tugas pencarian dan retrieval sederhana. Kerangka ini dapat mengelola konteks kueri sampai batas tertentu tetapi tidak dirancang untuk mempertahankan interaksi yang panjang.
LangChain unggul dalam retensi konteks, yang sangat penting untuk aplikasi di mana mempertahankan informasi dari interaksi sebelumnya serta memberikan respons yang koheren dan relevan secara kontekstual dalam percakapan panjang adalah hal krusial.
LlamaIndex ideal untuk sistem pencarian internal, manajemen pengetahuan, dan solusi perusahaan di mana pengambilan informasi yang akurat adalah hal yang kritis.
LangChain lebih cocok untuk aplikasi yang memerlukan interaksi kompleks dan pembuatan konten, seperti dukungan pelanggan, dokumentasi kode, dan berbagai tugas NLP.
LlamaIndex dioptimalkan untuk kecepatan dan akurasi; pengambilan informasi relevan yang cepat. Optimalisasi sangat penting untuk menangani volume data besar dan respons yang cepat.
LangChain efisien dalam menangani struktur data kompleks yang dapat beroperasi di dalam arsitektur modularnya untuk alur kerja canggih.
LlamaIndex terintegrasi dengan alat debug dan pemantauan untuk memfasilitasi manajemen siklus hidup. Integrasi membantu melacak kinerja dan keandalan aplikasi dengan menyediakan wawasan dan alat untuk pemecahan masalah.
LangChain menawarkan suite evaluasi, LangSmith, alat untuk menguji, men-debug, dan mengoptimalkan aplikasi LLM, memastikan aplikasi berkinerja baik dalam kondisi dunia nyata.
Meskipun keduanya mendukung integrasi dengan alat dan layanan eksternal, fokus utama masing-masing membedakannya.
LangChain sangat modular dan fleksibel, berfokus pada pembuatan dan pengelolaan rangkaian operasi yang kompleks melalui penggunaan chain, prompt, model, memori, dan agen.
LangChain sangat cocok untuk aplikasi yang memerlukan pola interaksi rumit dan retensi konteks, seperti chatbot dan sistem dukungan pelanggan otomatis.
LlamaIndex adalah alat pilihan untuk sistem yang membutuhkan pengambilan dokumen cepat dan presisi berdasarkan relevansi semantik.
Integrasi LangChain, seperti LangSmith untuk evaluasi dan LangServe untuk penerapan, meningkatkan siklus pengembangan dengan menyediakan alat untuk proses penerapan yang efisien dan optimalisasi.
Di sisi lain, LlamaIndex mengintegrasikan sumber pengetahuan eksternal dan basis data sebagai mesin kueri untuk tujuan memori pada aplikasi berbasis RAG. LlamaHub memperluas kapabilitas LlamaIndex dengan pemuat data untuk integrasi berbagai sumber data.
Berikut adalah tabel perbandingan untuk merangkum perbedaan kunci:
|
Fitur |
LlamaIndex |
LangChain |
|
Fokus Utama |
Pencarian dan retrieval |
Pengembangan aplikasi bertenaga LLM yang fleksibel |
|
Pengindeksan Data |
Sangat efisien |
Modular dan dapat disesuaikan |
|
Algoritme Retrieval |
Maju dan dioptimalkan |
Terintegrasi dengan LLM untuk keluaran sadar konteks |
|
Antarmuka Pengguna |
Sederhana dan ramah pengguna |
Komprehensif dan adaptif |
|
Integrasi |
Beragam sumber data, integrasi platform mulus |
Mendukung beragam teknologi dan layanan AI |
|
Kustomisasi |
Terbatas, berfokus pada pengindeksan dan retrieval |
Luas, mendukung alur kerja kompleks |
|
Retensi Konteks |
Dasar |
Lanjutan, krusial untuk chatbot dan interaksi panjang |
|
Kasus Penggunaan |
Pencarian internal, manajemen pengetahuan, solusi perusahaan |
Dukungan pelanggan, pembuatan konten, dokumentasi kode |
|
Kinerja |
Dioptimalkan untuk kecepatan dan akurasi |
Efisien dalam menangani struktur data kompleks |
|
Manajemen Siklus Hidup |
Terintegrasi dengan alat debug dan pemantauan |
Suite evaluasi komprehensif (LangSmith) |
Kedua kerangka kerja menawarkan kapabilitas yang kuat, dan pilihan di antara keduanya harus didasarkan pada kebutuhan dan tujuan proyek Anda.
Untuk beberapa proyek, menggabungkan kekuatan LlamaIndex dan LangChain bisa memberikan hasil terbaik.
Jika Anda ingin mempelajari lebih lanjut tentang alat-alat ini, tersedia beberapa sumber berikut:
Saya seorang linguis dan penulis yang beralih menjadi insinyur ML dengan spesialisasi dalam pencarian vektor dan temu kembali informasi. Saya memiliki pengalaman dalam riset NLP serta pengembangan sistem RAG, LLM, transformer, dan pembelajaran mendalam/jaringan saraf secara umum. Saya antusias mengoding dengan Python dan Rust serta menulis materi teknis dan edukatif, termasuk artikel ilmiah, dokumentasi, white paper, posting blog, tutorial, dan kursus. Saya melakukan riset, bereksperimen dengan framework, model, dan alat, serta membuat konten yang berkualitas tinggi dan menarik.
Terus Belajar Bersama DataCamp
Kursus
Kursus
Kursus

blogs
Javier Canales Luna
14 mnt
blogs
Hugo Bowne-Anderson
13 mnt
blogs
Dario Radečić
15 mnt
blogs
David Woods
13 mnt