Apa itu LangChain?

Penyusun

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Apa itu LangChain?

LangChain adalah kerangka kerja orkestrasi sumber terbuka untuk pengembangan aplikasi menggunakan model bahasa besar (LLM). Tersedia di pustaka berbasis Python dan JavaScript, alat dan API LangChain menyederhanakan proses pembuatan aplikasi berbasis LLM seperti chatbots dan agen AI. 

LangChain berfungsi sebagai antarmuka umum bagi hampir semua LLM, menyediakan lingkungan pengembangan terpusat untuk membangun aplikasi LLM dan mengintegrasikannya dengan sumber data eksternal dan alur kerja peranti lunak. Pendekatan berbasis modul LangChain memungkinkan pengembang dan ilmuwan data untuk secara dinamis membandingkan berbagai prompt dan bahkan model dasar yang berbeda dengan kebutuhan minimal untuk menulis ulang kode. Lingkungan ini modular juga memungkinkan program yang menggunakan beberapa LLM. Misalnya, sebuah aplikasi yang menggunakan satu LLM untuk memahami pertanyaan pengguna dan LLM lainnya untuk menulis respons.

Diluncurkan oleh Harrison Chase pada Oktober 2022, LangChain menikmati peningkatan pesat: pada Juni 2023, ini adalah satu-satunya proyek sumber terbuka yang tumbuh paling cepat di Github.1 Bertepatan dengan peluncuran penting ChatGPT OpenAI pada bulan berikutnya, LangChain telah berperan penting dalam membuat AI generatif (genAI) lebih mudah diakses oleh para penggemar dan perusahaan rintisan setelah popularitasnya yang meluas. Kemajuan dalam aksesibilitas untuk AI agen saat ini memungkinkan revolusi dalam otomatisasi.

LangChain dapat memfasilitasi sebagian besar contoh penggunaan untuk LLM dan pemrosesan bahasa alami(NLP), seperti chatbots, pencarian cerdas, penjawab pertanyaan, layanan ringkasan, atau bahkan agen AI yang mampu melakukan otomatisasi proses robotik.

Integrasi dengan LLM

LLMs adalah model statistik yang telah dilatih sebelumnya, bukan aplikasi standalone. Untuk memenuhi tujuannya, LLMs harus dipasangkan dengan aplikasi tertentu dan, dalam beberapa kasus, sumber data spesifik.

Misalnya, Chat-GPT bukan LLM: ini adalah aplikasi chatbot yang, bergantung pada versi yang Anda pilih, menggunakan model bahasa GPT-3.5 atau GPT-4. Meskipun model GPT yang menafsirkan input pengguna dan menyusun respons bahasa alami, aplikasi yang (antara lain) menyediakan antarmuka bagi pengguna untuk mengetik dan membaca serta desain UX yang mengatur pengalaman chatbot. Pada tingkat perusahaan, Chat-GPT bukanlah satu-satunya aplikasi yang menggunakan model GPT: Microsoft menggunakan GPT-4 untuk memberdayakan Bing Chat.

Selain itu, meskipun model dasar (seperti yang mendukung LLM) telah dilatih sebelumnya dengan kumpulan data yang sangat besar, model ini tidak bersifat serba tahu. Jika tugas tertentu membutuhkan akses ke informasi kontekstual tertentu, seperti dokumentasi internal atau keahlian domain, LLM harus terhubung ke sumber data eksternal tersebut. Bahkan untuk mencerminkan kesadaran real-time terhadap peristiwa terkini, model Anda membutuhkan informasi eksternal: data internal model hanya diperbarui hingga periode saat model Anda dilatih.

Demikian juga, jika tugas AI generatif tertentu memerlukan akses ke alur kerja perangkat lunak eksternal—misalnya, jika Anda ingin agen virtual Anda berintegrasi dengan Slack—maka Anda akan memerlukan cara untuk mengintegrasikan LLM dengan API untuk peranti lunak itu.

Meskipun integrasi ini umumnya dapat dicapai dengan kode manual sepenuhnya, kerangka kerja orkestrasi seperti LangChain dan portofolio produk kecerdasan buatan IBM® watsonx sangat menyederhanakan prosesnya. Integrasi ini juga mempermudah eksperimen dengan LLM yang berbeda untuk membandingkan hasil, karena model yang berbeda dapat ditukar dengan perubahan minimal pada kode.

Bagaimana cara kerja LangChain?

Inti dari LangChain adalah sebuah lingkungan pengembangan yang merampingkan pemrograman aplikasi LLM melalui penggunaan abstraksi: penyederhanaan kode dengan merepresentasikan satu proses atau lebih yang kompleks sebagai sebuah komponen bernama yang merangkum semua langkah konstituennya.

Abstraksi merupakan elemen umum dalam kehidupan sehari-hari dan bahasa. Sebagai contoh, "π" memungkinkan kita untuk merepresentasikan rasio panjang keliling lingkaran dengan diameternya tanpa harus menuliskan angka yang tak terbatas. Demikian pula, termostat memungkinkan kita untuk mengontrol suhu di rumah kita tanpa perlu memahami sirkuit yang rumit, kita hanya perlu mengetahui bagaimana pengaturan termostat yang berbeda menghasilkan suhu yang berbeda.

LangChain pada dasarnya adalah sebuah pustaka abstraksi untuk Python dan Javascript, yang merepresentasikan langkah-langkah dan konsep umum yang diperlukan untuk bekerja dengan model bahasa. Komponen modular ini-seperti fungsi dan kelas objek-berfungsi sebagai blok bangunan program AI generatif. Mereka dapat "dirantai" bersama untuk membuat aplikasi, meminimalkan jumlah kode dan pemahaman yang baik yang diperlukan untuk menjalankan tugas-tugas NLP yang kompleks. Meskipun pendekatan abstrak LangChain dapat membatasi sejauh mana programmer pakar dapat menyesuaikan aplikasi dengan baik, pendekatan ini memberdayakan spesialis dan pendatang baru untuk bereksperimen dan membuat prototipe dengan cepat.

Mengimpor model bahasa

Hampir semua LLM dapat digunakan di LangChain. Mengimpor model bahasa ke LangChain mudah, asalkan Anda memiliki kunci API. Kelas LLM dirancang untuk menyediakan antarmuka standar untuk semua model.

Sebagian besar penyedia LLM akan meminta Anda untuk membuat akun agar menerima kunci API. Beberapa API ini - terutama untuk model sumber tertutup yang eksklusif, seperti yang ditawarkan oleh OpenAI atau Anthropic - mungkin memiliki biaya terkait.

Banyak model sumber terbuka, seperti LLaMa Meta AI, Deepseek-LLM Deepseek,Granite IBM, dan Flan-T5 Google, dapat diakses melalui Hugging Face. IBM watsonx, melalui kemitraannya dengan Hugging Face, juga menawarkan rangkaian model sumber terbuka pilihan. Dengan membuat akun pada salah satu layanan, Anda akan dapat membuat kunci API untuk salah satu model yang ditawarkan oleh penyedia tersebut.

LangChain tidak terbatas pada model dasar yang siap pakai:kelas CustomLLM  memungkinkan wrapper LLM khusus. Demikian pula, Anda dapat menggunakan API IBM watsonx dan SDK Python, yang mencakup integrasi LangChain, untuk membangun aplikasi di LangChain dengan model yang telah Anda latih atau sesuaikan untuk kebutuhan spesifik Anda menggunakan kelas WatsonxLLM (dan ID proyek spesifik model).

Templat yang cepat

Prompt adalah instruksi yang diberikan ke LLM. "Seni" menyusun perintah yang secara efektif memberikan konteks yang diperlukan LLM untuk memahami input dan mengatur output dengan cara yang paling berguna bagi Anda sering disebut rekayasa prompt.

Kelas PromptTemplate di LangChain memformalkan komposisi prompt tanpa perlu secara manual mengodekan konteks dan kueri secara manual. Elemen-elemen penting dari sebuah prompt juga dimasukkan sebagai kelas formal, seperti input_variabel. Dengan demikian, templat perintah dapat berisi dan mereproduksi konteks, instruksi (seperti "jangan gunakan istilah teknis"), serangkaian contoh untuk memandu responsnya (dalam apa yang disebut "prompting dengan beberapa contoh"), format keluaran yang ditentukan, atau pertanyaan terstandardisasi yang harus dijawab. Anda dapat menyimpan dan memberi nama templat prompt yang terstruktur secara efektif dan dengan mudah menggunakannya kembali sesuai kebutuhan.

Meskipun semua elemen ini dapat dikodekan secara manual, modul PromptTemplate memberdayakan integrasi yang lancar dengan fitur LangChain lainnya, seperti rantai eponim.

Rantai

Sesuai dengan namanya, rantai adalah inti dari alur kerja LangChain. Mereka menggabungkan LLM dengan komponen lain, membuat aplikasi dengan menjalankan urutan fungsi.

Rantai paling dasar adalah LLMChain. Rantai ini hanya memanggil model dan templat prompt untuk model itu. Misalnya, bayangkan Anda menyimpan prompt sebagai "ExamplePrompt" dan ingin menjalankannya terhadap Flan-T5. Anda dapat mengimpor LLMChain dari langchain.chains, lalu mendefinisikan chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). Untuk menjalankan rantai untuk input yang diberikan, Anda cukup memanggil chain_example.run("input").

Untuk menggunakan output dari satu fungsi sebagai input untuk fungsi berikutnya, Anda dapat menggunakan SimpleSequentialChain. Setiap fungsi dapat menggunakan prompts yang berbeda, alat yang berbeda, parameter atau model yang berbeda, sesuai dengan kebutuhan Anda.

Indeks

Untuk mencapai tugas tertentu, LLM akan membutuhkan akses ke sumber data eksternal tertentu yang tidak termasuk dalam kumpulan data pelatihannya, seperti dokumen internal, email, atau kumpulan data. LangChain secara kolektif mengacu pada dokumentasi eksternal seperti "indeks".

Pemuat dokumen

LangChain menawarkan berbagai macam pemuat dokumen untuk aplikasi pihak ketiga (tautan berada di luar ibm.com). Hal ini memungkinkan impor data dengan mudah dari berbagai sumber seperti layanan penyimpanan file (seperti Dropbox, Google Drive, dan Microsoft OneDrive), konten web (seperti YouTube, PubMed, atau URL tertentu), alat kolaborasi (seperti Airtable, Trello, Figma, dan Notion), basis data (seperti Pandas, MongoDB, dan Microsoft), serta lainnya.

Basis data vektor

Tidak seperti database terstruktur "tradisional", basis data vektor mewakili titik data dengan mengubahnya menjadi penanaman vektor: representasi numerik dalam bentuk vektor dengan jumlah dimensi yang tetap, sering kali mengelompokkan titik data terkait menggunakan metode pembelajaran tanpa pengawasan. Hal ini memungkinkan kueri latensi rendah, bahkan untuk kumpulan data yang sangat besar, yang sangat meningkatkan efisiensi. Penanaman vektor juga menyimpan metadata setiap vektor, sehingga meningkatkan kemungkinan pencarian.

LangChain menyediakan integrasi untuk lebih dari 25 metode penyematan yang berbeda, serta lebih dari 50 penyimpanan vektor yang berbeda (baik yang di-host di cloud maupun lokal).

Pemisah teks 

Untuk meningkatkan kecepatan dan mengurangi kebutuhan komputasi, sering kali bijaksana untuk membagi dokumen teks yang besar menjadi bagian yang lebih kecil. TextSplitters LangChain memecah teks menjadi potongan-potongan kecil yang bermakna secara semantik, yang kemudian dapat digabungkan menggunakan metode dan parameter yang Anda pilih.

Pengambilan

Setelah sumber-sumber pengetahuan eksternal dihubungkan, model harus dapat dengan cepat mengambil dan mengintegrasikan informasi yang relevan sesuai kebutuhan. Seperti watsonx, LangChain menawarkan generasi dengan dukungan pengambilan data (RAG): modul pengambil menerima kueri string sebagai input dan menampilkan daftar Dokumen sebagai output.

Dengan LangChain, kita juga dapat membangun sistem RAG agentic. Dalam aplikasi RAG tradisional, LLM dilengkapi dengan basis data vektor untuk referensi ketika membentuk responsnya. Sebaliknya, aplikasi AI agen tidak terbatas hanya pada pengambilan data. Agenic RAG juga dapat mencakup alat untuk tugas-tugas seperti memecahkan perhitungan matematis, menulis email, melakukan analisis data, dan lainnya.

Memori

LLM, secara default, tidak memiliki memori jangka panjang tentang interaksi sebelumnya (kecuali riwayat obrolan digunakan sebagai input untuk sebuah pertanyaan). LangChain memecahkan masalah ini dengan utilitas sederhana untuk menambahkan memori ke sebuah sistem, dengan pilihan mulai dari menyimpan keseluruhan percakapan, menyimpan ringkasan percakapan sejauh ini, hingga menyimpan n percakapan terbaru.

Peralatan

Terlepas dari kekuatan dan keserbagunaannya yang digembar-gemborkan, LLM memiliki keterbatasan penting: yaitu, kurangnya informasi terkini, kurangnya keahlian khusus dalam bidang tertentu, dan kesulitan umum dengan matematika.

Alat LangChain  adalah seperangkat fungsi yang memberdayakan agen LangChain untuk berinteraksi dengan informasi dunia nyata untuk memperluas atau meningkatkan layanan yang dapat diberikannya. Contoh alat LangChain bawaan yang terkenal meliputi:

  • Wolfram Alpha: menyediakan akses ke fungsi komputasi dan visualisasi data yang kuat, memungkinkan kemampuan matematika yang canggih.

  • Google Penelusuran: menyediakan akses ke Google Penelusuran, melengkapi aplikasi dan agen dengan informasi secara real time.

  • OpenWeatherMap: mengambil informasi cuaca.

  • Wikipedia: menyediakan akses yang efisien ke informasi dari artikel-artikel Wikipedia.

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Agen LangChain

Kita dapat membangun agen dengan kerangka kerja LangChain untuk memberi LLM kemampuan untuk membuat keputusan, menggunakan alat, dan menyelesaikan tugas-tugas kompleks langkah demi langkah, daripada hanya menghasilkan respons teks tunggal. Tidak seperti interaksi prompt-respons sederhana hanya dengan LLM, agen yang didukung oleh LangChain dapat berpikir, merencanakan , melaksanakan serangkaian tindakan, belajar, dan beradaptasi.

LangChain memberikan pengalaman pengguna yang efisien dengan kerangka kerja siap pakai yang dapat diperluas untuk membuat agen AI, jadi tidak perlu membangun logika pemilihan alat baru, loop penalaran (seperti untuk agen ReAct), pengamatan/pelacakan tindakan atau orkestrasi prompt dan pemformatan.

Paket, class, dan metode LangChain tertentu bervariasi tergantung pada platform AI yang ingin Anda gunakan. Beberapa komponen utama dari class WatsonxLLM yang memungkinkan komunikasi dengan model watsonx.ai menggunakan LangChain meliputi:

  • langchain_ibm: Paket yang bertanggung jawab atas integrasi LangChain IBM. Hal ini diperlukan untuk menginstal paket ini untuk menggunakan salah satu class dan metode berikut.
  • ibm_watsonx_ai: Pustaka yang memungkinkan koneksi ke layanan watsonx.ai seperti IBM Cloud dan IBM Cloud Pak for Data.
  • APIClient: Kelas utama dalam pustaka ibm_watsonx_ai yang mengelola sumber daya layanan API. Parameternya mencakup kredensial API dan titik akhir.
  • WatsonxLLM: Wrapper untuk model dasar IBM watsonx.ai. Wrapper ini menyediakan integrasi rantai dan diperlukan untuk mengimpor. Parameter termasuk ID model, kunci API watsonx.ai, titik akhir URL, ID proyek, serta parameter LLM apa pun.
  • ModelInference: Kelas yang membuat instance antarmuka model. Parameter termasuk ID model, kredensial watsonx.ai, ID proyek, parameter model, dan lainnya. Setelah instance dibuat, model kemudian dapat diteruskan ke class.
  • invoke: Metode yang memanggil model secara langsung dengan satu prompt jenis string. 
  • generate: Metode yang memanggil model dengan beberapa prompt jenis string dalam daftar.

Class LangChain lainnya untuk membangun agen AI dengan integrasi panggilan alat dan rantai perintah menggunakan model watsonx.ai adalah ChatWatsonx. Class ini, yang dimanfaatkan dalam banyak tutorial kami, menggunakan metode bind_tools untuk meneruskan daftar alat ke LLM pada setiap iterasi. Ini dapat mencakup alat khusus dan alat yang dibangun sebelumnya. Untuk mengambil respons agen AI, metode invoke dapat digunakan. Setelah agen dipanggil, atribut tool_calls pada respons menampilkan nama, argumen, ID, dan jenis setiap panggilan alat yang dilakukan, jika ada.

LangGraph

LangGraph, yang dibuat oleh LangChain, adalah kerangka kerja agen AI sumber terbuka yang mendukung orkestrasi multi-agen dan memungkinkan pengembang untuk membangun alur kerja agen di mana berbagai agen berinteraksi, berspesialisasi, dan berkolaborasi. 

Pada intinya, LangGraph menggunakan kekuatan arsitektur berbasis grafik untuk memodelkan dan mengelola hubungan rumit antara berbagai komponen alur kerja agen AI. Dikombinasikan dengan mekanisme pemantauan human-in-the-loop dan serangkaian integrasi API dan alat, LangGraph memberi pengguna platform serbaguna untuk mengembangkan solusi dan alur kerja AI termasuk chatbot, grafik keadaan, dan sistem berbasis agen lainnya

Dengan pustaka langchain-mcp-adapters, agen LangGraph juga dapat menggunakan alat yang didefinisikan pada server Protokol Konteks Model (MCP). Pustaka mcp memungkinkan pengguna untuk membuat server MCP kustom. Pada dasarnya, MCP memungkinkan koneksi aman antara sistem AI, seperti agen AI, dan alat eksternal. Dengan demikian, berbagai LLM dapat terhubung ke alat dan sumber data yang sama dengan MCP standar. 

Akademi AI

Mengapa model dasar merupakan perubahan paradigma untuk AI

Pelajari tentang kelas baru model AI yang dapat digunakan kembali dan fleksibel, yang dapat membuka pendapatan baru, mengurangi biaya, dan meningkatkan produktivitas. Lalu gunakan buku panduan kami untuk mempelajari lebih dalam.

LangSmith

Dirilis pada musim gugur 2023, LangSmith bertujuan untuk menjadi jembatan antara kemampuan mudah diakses prototyping yang membuat LangChain populer dan pembuatan aplikasi LLM berkualitas produksi. 

LangSmith menyediakan alat untuk memantau, mengevaluasi, dan mendebug aplikasi, termasuk kemampuan untuk secara otomatis melacak semua panggilan model untuk menemukan kesalahan dan menguji kinerja di bawah konfigurasi model yang berbeda. Penggunaan LangSmith tidak terbatas pada aplikasi yang dibangun menggunakan ekosistem LangChain. Evaluasi kinerja agen dilakukan dengan menggunakan evaluator LLM-as-a-Judge. Pengamatan dan metrik utama ini bertujuan untuk mengoptimalkan aplikasi yang lebih kuat dan hemat biaya. 

Memulai penggunaan LangChain

LangChain adalah sumber terbuka dan gratis untuk digunakan: kode sumber  tersedia untuk diunduh di Github.

LangChain juga dapat diinstal pada Python dengan perintah pip sederhana: pip install langchain. Untuk menginstal semua dependensi LangChain (bukan hanya yang Anda anggap perlu), Anda dapat menjalankan perintah pip install langchain[all].

Banyak tutorial langkah demi langkah yang disediakan oleh IBM termasuk pemanggilan alat LangChain, RAG agen, orkestrasi agen LLM,  chunking agen, dan lainnya.

Contoh penggunaan LangChain

Aplikasi AI yang dibuat dengan LangChain memberikan utilitas yang luar biasa untuk berbagai contoh penggunaan, mulai dari tugas-tugas menjawab pertanyaan dan pembuatan teks yang mudah hingga solusi yang lebih kompleks yang menggunakan LLM sebagai "mesin penalaran".

Chatbot

Chatbots adalah salah satu penggunaan LLM yang paling intuitif. LangChain dapat digunakan untuk memberikan konteks yang tepat untuk penggunaan spesifik chatbot, dan untuk mengintegrasikan chatbot ke dalam saluran komunikasi yang ada dan alur kerja dengan API-nya sendiri.

Rangkuman

Model bahasa dapat ditugaskan untuk meringkas berbagai jenis teks, mulai dari memecah artikel akademisi yang kompleks dan transkrip hingga memberikan ringkasan email masuk.

Menjawab pertanyaan

Dengan menggunakan dokumen spesifik atau basis pengetahuan khusus (seperti Wolfram, arXiv, atau PubMed), LLM dapat mengambil informasi relevan dari penyimpanan dan menyajikan jawaban yang bermanfaat. Jika disesuaikan dengan baik atau diberi prompt dengan benar, beberapa LLM dapat menjawab banyak pertanyaan bahkan tanpa informasi eksternal.

Penguatan data

LLM dapat digunakan untuk menghasilkan data sintetis untuk digunakan dalam machine learning. Sebagai contoh, LLM dapat dilatih untuk menghasilkan sampel data tambahan yang sangat mirip dengan titik data dalam kumpulan data pelatihan.

Agen virtual

Terintegrasi dengan alur kerja yang tepat, modul Agen LangChain dapat menggunakan LLM untuk secara mandiri menentukan langkah selanjutnya dan mengambil tindakan menggunakan otomatisasi proses robot (RPA).

Solusi terkait
Model dasar

Jelajahi pustaka model dasar IBM di portfolio watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan percaya diri.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda keahlian AI terdepan di industri dan portofolio solusi dari IBM.

Jelajahi solusi AI
Konsultasi dan layanan AI

Rancang ulang alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Jelajahi perpustakaan model dasar IBM dalam portofolio IBM watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan penuh percaya diri.

Jelajahi watsonx.ai Jelajahi solusi AI