Apa itu LangChain?
Temukan watsonx.ai
Ilustrasi rantai yang terbuat dari angka dan huruf
Apa itu LangChain?

LangChain adalah kerangka kerja orkestrasi sumber terbuka untuk pengembangan aplikasi yang menggunakan model bahasa besar (LLM). Tersedia dalam pustaka berbasis Python dan Javascript, alat bantu dan API LangChain menyederhanakan proses pembuatan aplikasi berbasis LLM seperti chatbot dan agen virtual. 

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 permintaan dan bahkan model dasar yang berbeda dengan kebutuhan minimal untuk menulis ulang kode. Lingkungan modular ini juga memungkinkan program yang menggunakan beberapa LLM: misalnya, aplikasi yang menggunakan satu LLM untuk menginterpretasikan pertanyaan pengguna dan LLM lain untuk menulis respons. 

Diluncurkan oleh Harrison Chase pada Oktober 2022, LangChain menikmati peningkatan popularitas yang luar biasa: pada Juni 2023, LangChain merupakan proyek sumber terbuka dengan pertumbuhan tercepat di Github.1 Bertepatan dengan peluncuran penting ChatGPT OpenAI pada bulan berikutnya, LangChain telah memainkan peran penting dalam menjadikan AI generatif lebih mudah diakses oleh para peminat setelah popularitasnya yang meluas. 

LangChain dapat memfasilitasi sebagian besar contoh penggunaan untuk LLM dan pemrosesan bahasa alami (NLP), seperti chatbot, pencarian cerdas, jawaban pertanyaan, layanan peringkasan atau bahkan agen virtual yang mampu otomatisasi proses robotik.

Integrasi dengan LLM

LLM bukanlah aplikasi yang berdiri sendiri: LLM adalah model statistik yang telah dilatih sebelumnya yang harus dipasangkan dengan sebuah aplikasi (dan, dalam beberapa kasus, sumber data tertentu) untuk memenuhi tujuannya. 

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, itu adalah aplikasi yang (antara lain) menyediakan antarmuka bagi pengguna untuk mengetik dan membaca dan desain UX yang mengatur pengalaman chatbot. Bahkan di tingkat perusahaan, Chat-GPT bukan satu-satunya aplikasi yang menggunakan model GPT: Microsoft menggunakan GPT-4 untuk mendukung Bing Chat. 

Selain itu, meskipun model dasar (seperti yang mendukung LLM) telah dilatih sebelumnya pada set 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 jika Anda hanya ingin model Anda mencerminkan kesadaran waktu nyata tentang peristiwa terkini, model ini memerlukan informasi eksternal: data internal model hanya diperbarui selama periode waktu selama model tersebut 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 yang sepenuhnya manual, kerangka kerja orkestrasi seperti LangChain dan platform IBM watsonx sangat menyederhanakan prosesnya. Integrasi ini juga membuatnya lebih mudah untuk bereksperimen dengan LLM yang berbeda untuk membandingkan hasil, karena model yang berbeda dapat ditukar dengan perubahan minimal pada kode.  

Sumber Terbuka @ IBM

Dari blockchain hingga kontainer hingga AI hingga sistem operasi—dan segala sesuatu di antaranya—pengembang kami menciptakan proyek sumber terbuka yang baru muncul dan mengelilinginya dengan kode, dokumen, dan materi pendukung, sehingga Anda dapat bergabung dengan inovasi ini.

Konten terkait

Berlangganan buletin IBM

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 BLOOM dari BigScience, LLaMa dari Meta AI dan Flan-T5 dari Google, dapat diakses melalui Hugging Face (tautan berada di luar ibm.com). IBM watsonx, melalui kemitraannya dengan Hugging Face, juga menawarkan rangkaian model sumber terbuka yang telah dikurasi. Membuat akun pada salah satu layanan akan memungkinkan Anda untuk membuat kunci API untuk salah satu model yang ditawarkan oleh penyedia tersebut.

LangChain tidak terbatas pada model dasar yang siap pakai: kelas CustomLLM (tautan berada di luar ibm.com) memungkinkan pembungkus LLM khusus. Demikian pula, Anda dapat menggunakan API IBM watsonx dan Python SDK, 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 proyek spesifik model tersebut PENGENAL ).

Jelajahi demo: menggunakan watsonx dan LangChain untuk melakukan serangkaian panggilan ke model bahasa
Templat yang cepat

Perintah adalah instruksi yang diberikan kepada LLM. "Seni" menyusun perintah yang secara efektif memberikan konteks yang diperlukan LLM untuk menafsirkan input dan menyusun output dengan cara yang paling berguna bagi Anda sering disebut rekayasa cepat. 

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.

Tonton videonya: rekayasa cepat dan penyetelan cepat
Rantai

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

Rantai-rantai yang paling dasar adalah LLMChain. Rantai ini hanya memanggil model dan meminta templat untuk model tersebut. Misalnya, bayangkan Anda menyimpan prompt sebagai “examplePrompt” dan ingin menjalankannya terhadap Flan-T5. Anda dapat mengimpor LLMChain dari langchain.chains, kemudian tentukan 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 petunjuk yang berbeda, alat yang berbeda, parameter yang berbeda atau bahkan model yang berbeda, bergantung pada kebutuhan spesifik 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 sumber-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 Panda, MongoDB, dan Microsoft), dan masih banyak lagi. 

Basis data vektor 
Tidak seperti basis data terstruktur "tradisional", database vektor merepresentasikan titik data dengan mengubahnya menjadi vektor penanaman: representasi numerik dalam bentuk vektor dengan jumlah dimensi yang tetap, yang sering kali mengelompokkan titik data yang terkait dengan menggunakan metode pembelajaran yang tidak terawasi. 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 tuntutan komputasi, seringkali bijaksana untuk membagi dokumen teks besar menjadi potongan-potongan kecil. TextSplitter LangChain membagi teks menjadi potongan-potongan kecil yang bermakna secara semantik yang kemudian dapat digabungkan menggunakan metode dan parameter yang Anda pilih.

Pengambilan 
Setelah sumber pengetahuan eksternal terhubung, model harus dapat dengan cepat mengambil dan mengintegrasikan informasi yang relevan sesuai kebutuhan. Seperti watsonx, LangChain menawarkan pengambilan augmented generation (RAG): modul pengambil menerima kueri string sebagai input dan mengembalikan daftar Dokumensebagai output.

Memori

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

Agen

Agen LangChain dapat menggunakan model bahasa yang diberikan sebagai "mesin penalaran" untuk menentukan tindakan mana yang harus diambil. Saat membangun rantai untuk agen, inputnya meliputi:

  • daftar alat yang tersedia untuk dimanfaatkan.
  • input pengguna (seperti perintah dan kueri).
  • setiap langkah relevan yang telah dijalankan sebelumnya.
Pelajari lebih lanjut tentang agen di LangChain
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 bantu LangChain (tautan berada di luar ibm.com) merupakan seperangkat fungsi yang memberdayakan agen-agen LangChain untuk berinteraksi dengan informasi dunia nyata dalam rangka memperluas atau meningkatkan layanan yang dapat disediakannya. Contoh alat LangChain yang menonjol 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.

LangSmith

Dirilis pada musim gugur 2023, LangSmith bertujuan untuk menjembatani kesenjangan antara kemampuan pembuatan prototipe yang dapat diakses yang membuat LangChain terkenal dan membangun aplikasi LLM berkualitas produksi.

LangSmith menyediakan alat untuk memantau, mengevaluasi, dan men-debug aplikasi, termasuk kemampuan untuk secara otomatis melacak semua panggilan model untuk menemukan kesalahan dan menguji kinerja di bawah konfigurasi model yang berbeda. Visibilitas ini bertujuan untuk memberdayakan aplikasi yang lebih kuat dan hemat biaya.

Memulai dengan LangChain

LangChain bersifat sumber terbuka dan gratis untuk digunakan: kode sumber tersedia untuk diunduh di Github (tautan berada di luar ibm.com). 

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 tersedia dari ekosistem komunitas LangChain yang lebih besar dan dokumentasi resmi di docs.langchain.com (tautan berada di luar ibm.com).

Contoh penggunaan LangChain

Aplikasi 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: Chatbot 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.
  • Peringkasan: Model bahasa dapat ditugaskan untuk meringkas berbagai jenis teks, mulai dari menguraikan artikel akademisi yang rumit dan transkrip hingga menyediakan intisari email yang masuk.
  • Menjawab pertanyaan: Dengan menggunakan dokumen tertentu atau basis pengetahuan khusus (seperti Wolfram, arXiv, atau PubMed), LLM dapat mengambil informasi yang relevan dari penyimpanan dan mengartikulasikan jawaban yang bermanfaat). Jika disesuaikan dengan baik atau diminta dengan benar, beberapa LLM dapat menjawab banyak pertanyaan bahkan tanpa informasi eksternal.
  • Penambahan 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 menentukan langkah selanjutnya secara mandiri dan mengambil tindakan menggunakan otomatisasi proses robotik (RPA).
Solusi terkait
watsonx.ai

Anda dapat melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan data yang sedikit.

Jelajahi watsonx.ai

Layanan konsultasi AI

Menata ulang cara Anda bekerja dengan AI: tim global kami yang beragam dan terdiri dari lebih dari 20.000 pakar AI dapat membantu Anda dengan cepat dan percaya diri dalam merancang dan meningkatkan skala AI serta otomatisasi di seluruh bisnis Anda, bekerja di seluruh teknologi IBM watsonx kami sendiri dan ekosistem mitra yang terbuka untuk menghadirkan model AI apa pun, di cloud mana pun, yang dipandu oleh etika dan kepercayaan.

Jelajahi layanan konsultasi AI kami

watsonx.data

Tingkatkan beban kerja analitik dan AI untuk semua data Anda, di mana saja dengan watsonx.data, satu-satunya penyimpanan data di industri ini yang terbuka, hybrid, dan diatur.

Jelajahi watsonx.data
Sumber daya LangChain

Alat bantu, tips, dan contoh kode untuk mulai membangun aplikasi dengan LangChain dan watsonx.

Tip untuk menulis perintah model dasar

Sebagian seni, sebagian ilmu pengetahuan, rekayasa cepat adalah proses membuat teks prompt untuk efek terbaik untuk model dan parameter tertentu. Saran berikut ini akan membantu Anda berhasil meminta sebagian besar model dasar yang menghasilkan teks.

Menggunakan watsonx dan LangChain untuk memanggil model bahasa

Buku catatan ini berisi langkah-langkah dan kode untuk mendemonstrasikan Rantai Sekuensial Sederhana menggunakan integrasi langchain dengan model watsonx. Pembiasaan dengan Python sangat membantu.

Panduan untuk pemula tentang Python

Kami akan memperkenalkan konsep dasar yang perlu Anda ketahui untuk memulai dengan bahasa pemrograman yang sederhana ini, mulai dari menjalankan kalkulasi aljabar hingga menghasilkan output grafis dari data Anda.

Ambil langkah selanjutnya

Melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan menggunakan sebagian kecil data dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI.

Mulai uji coba gratis Anda Pesan demo langsung
Catatan kaki

1 Perusahaan rintisan sumber terbuka dengan pertumbuhan tercepat di Q2 2023 (tautan berada di luar ibm.com), Runa Capital, 2023