Pengenalan
LangChain adalah kerangka pengembangan aplikasi kecerdasan buatan (AI) berbasis Python sumber terbuka yang menyediakan modul dan alat untuk membangun aplikasi AI berdasarkan model besar. Melalui LangChain, pengembang dapat dengan mudah mengintegrasikan dengan Large Language Models (LLM) untuk menyelesaikan tugas seperti pembangkitan teks, menjawab pertanyaan, menerjemahkan, dan dialog. LangChain menurunkan hambatan pengembangan aplikasi AI, memungkinkan siapa pun untuk membangun aplikasi kreatif mereka sendiri berdasarkan LLM.
Fitur-fitur LangChain:
- LLM dan Prompt: LangChain mengabstraksi semua API model besar LLM, menyatukan API akses model besar, dan menyediakan mekanisme manajemen template prompt.
- Chain: LangChain mengemas beberapa skenario umum ke dalam modul siap pakai, seperti sistem jawaban pertanyaan berbasis konteks, generasi bahasa alami dari kueri SQL, dan lain-lain, dinamai "Chain" karena proses implementasi tugas-tugas ini mirip alur kerja, dieksekusi langkah demi langkah.
- LCEL: LangChain Expression Language (LCEL) adalah fitur inti dari versi baru LangChain, digunakan untuk menyelesaikan masalah orkestrasi alur kerja. Melalui ekspresi LCEL, kita dapat menyesuaikan alur pemrosesan tugas AI secara fleksibel, yaitu menyesuaikan "Chain" secara fleksibel.
- Retrieval Augmented Generation (RAG): Karena Large Language Models (LLM) tidak memahami informasi baru dan tidak dapat menjawab pertanyaan-pertanyaan baru, kita dapat mengimpor informasi baru ke LLM untuk meningkatkan kualitas konten yang dihasilkan. Mode ini disebut mode RAG (Retrieval Augmented Generation).
- Agen: Pola desain berbasis Large Language Models (LLMs) yang memanfaatkan pemahaman dan kemampuan penalaran alami LLM (LLM sebagai otak) untuk secara otomatis memanggil sistem dan perangkat eksternal bersama untuk menyelesaikan tugas berdasarkan kebutuhan pengguna. Misalnya, ketika seorang pengguna memasukkan "ambil cuti besok", Large Language Model (LLM) secara otomatis memanggil sistem cuti dan menginisiasi pengajuan cuti.
- Model Memory: Memungkinkan Large Language Model (LLM) untuk mengingat konten percakapan sebelumnya, sebuah kemampuan yang dikenal sebagai memori model.
Komponen Kerangka Kerja LangChain
Kerangka kerja LangChain terdiri dari beberapa komponen, termasuk:
- Pustaka LangChain: Pustaka Python dan JavaScript. Ini mencakup landasan waktu jalannya antarmuka dan integrasi berbagai komponen, serta implementasi rantai dan agen siap pakai.
- Template LangChain: Template tugas AI resmi yang disediakan oleh LangChain.
- LangServe: Berbasis FastAPI, dapat menerbitkan rantai yang ditentukan oleh LangChain sebagai API REST.
- LangSmith: Sebuah platform pengembangan, merupakan layanan cloud yang mendukung debugging LangChain dan pemantauan tugas.
Pustaka LangChain (Pustaka-pustaka)
Pustaka LangChain sendiri terdiri dari beberapa paket berbeda.
-
langchain-core
: Abstraksi dasar dan bahasa ekspresi LangChain. -
langchain-community
: Integrasi pihak ketiga, terutama termasuk komponen pihak ketiga yang terintegrasi dengan LangChain. -
langchain
: Terutama mencakup rantai, agen, dan strategi pengambilan.
Alur Pemrosesan Tugas Langchain
Seperti yang ditunjukkan dalam gambar di atas, LangChain menyediakan alat manajemen template prompt untuk menangani prompt. Kemudian prompt tersebut disampaikan ke model besar untuk diproses, dan akhirnya memproses hasil yang dikembalikan oleh model besar.
Pengemasan LangChain terhadap model besar terutama mencakup dua tipe: LLM dan Chat Model.
- LLM - Model jawab pertanyaan yang menerima input teks dan mengembalikan hasil teks.
- Chat Model - Model dialog yang menerima set pesan dialog dan mengembalikan pesan dialog secara percakapan.
Konsep Inti
1. LLMs
Model-model mendasar yang dikemas oleh LangChain yang menerima masukan teks dan mengembalikan hasil teks.
2. Chat Model
Model obrolan (atau model dialog) yang dirancang khusus untuk skenario dialog, berbeda dengan LLM. Model-model ini dapat menerima set pesan dialog dan mengembalikan pesan dialog dalam format percakapan.
3. Pesan
Merujuk pada konten pesan dalam model obrolan. Jenis pesan termasuk HumanMessage, AIMessage, SystemMessage, FunctionMessage, dan ToolMessage, di antara lain.
4. Prompt
LangChain mengemas seperangkat alat yang khusus digunakan untuk manajemen prompt, memudahkan kita dalam memformat konten prompt.
5. Parser Output
Seperti yang disebutkan dalam gambar di atas, setelah LangChain menerima konten teks yang dikembalikan oleh model besar (LLM), bisa menggunakan parser output khusus untuk memformat konten teks, seperti mem-parsing JSON atau mengonversi output LLM ke dalam objek Python.
5. Pemulih
Untuk dengan mudah mengimpor data pribadi ke dalam model besar (LLM) dan meningkatkan kualitas respons model, LangChain mengemas kerangka kerja pemulihan (Pemulih) yang memudahkan pengelolaan, segmentasi, penyimpanan, dan pengambilan data dokumen.
6. Penyimpanan Vektor
Untuk mendukung pencarian kesamaan semantik untuk data pribadi, LangChain mendukung berbagai basis data vektor.
7. Agen
Agen, biasanya merujuk kepada aplikasi yang dirancang dengan model besar (LLM) sebagai mesin pengambil keputusan, secara otomatis memanggil sistem eksternal dan perangkat keras untuk menyelesaikan tugas pengguna berdasarkan masukan pengguna. Ini adalah pola desain dengan model besar (LLM) sebagai inti.
Skenario Aplikasi
- Chatbot: Membangun asisten chat pintar, chatbot layanan pelanggan, dan chatbot percakapan.
- Tanya Jawab Pengetahuan: Menyediakan layanan menjawab pertanyaan domain terbuka dengan mengintegrasikan dengan grafik pengetahuan.
- Penulisan Cerdas: Seperti penulisan artikel, penulisan kreatif, dan ringkasan teks.