1. Pengenalan tentang LLMs
Large Language Models (LLMs) adalah komponen inti dari LangChain. LangChain sendiri tidak menyediakan kemampuan model bahasa besar; sebaliknya, LangChain mengemas berbagai model bahasa besar umum, menyediakan antarmuka standar untuk mengoperasikan model bahasa besar, sehingga memudahkan bagi para pengembang.
Saat ini, LangChain mengemas banyak model bahasa besar dan juga mendukung model kustom. Pengembang dapat mengemas antarmuka model baru mereka sendiri.
- Catatan: Saat ini, terdapat banyak model besar sumber terbuka dan komersial yang tersedia. Mengingat perbedaan biaya dan kemampuan model, setiap orang mungkin memiliki pilihan yang berbeda. Selain itu, mungkin terjadi perubahan model yang sering, dan para pengembang mungkin tidak ingin mengubah terlalu banyak kode bisnis saat mengganti model. Inilah tempat nilai dari LangChain muncul.
2. Persiapan
2.1 Instalasi
Untuk menggunakan OpenAI LLM di LangChain, pengguna harus menginstal paket Python OpenAI dengan menjalankan perintah berikut:
pip install openai
2.2 Pengaturan Kunci API
Akses ke API OpenAI memerlukan kunci API, yang dapat diperoleh dengan membuat akun di platform OpenAI. Setelah kunci API diperoleh, dapat diatur sebagai variabel lingkungan dengan menggunakan perintah berikut:
export OPENAI_API_KEY="kunci-api-anda"
Atau, jika Anda tidak ingin mengatur variabel lingkungan, Anda juga dapat langsung melewatkan kunci API saat menginisialisasi kelas OpenAI LLM, seperti yang ditunjukkan di bawah ini:
from langchain_openai import OpenAI
llm = OpenAI(openai_api_key="kunci-api-anda")
3. Implementasi LCEL
Di LangChain, LLM implementasikan antarmuka Runnable untuk Bahasa Ekspresi LangChain (LCEL). Ini berarti mereka mendukung berbagai panggilan fungsi, seperti invoke
, stream
, batch
, dan lainnya.
LLMs menerima input string atau objek yang dapat diubah menjadi prompt string, termasuk List[BaseMessage]
dan PromptValue
.
4. Contoh Penggunaan LLM
4.1 Panggilan
Untuk memanggil LLM dengan prompt tertentu, fungsi invoke
dapat digunakan, seperti yang ditunjukkan di bawah ini:
llm.invoke("Berikan prompt untuk LLM di sini")
4.2 Streaming
Metode untuk mendapatkan dan memproses output teks secara real time dari LLM disebut streaming. Berikut adalah contoh penggunaan LLM untuk pemrosesan streaming:
for chunk in llm.stream("Berikan prompt untuk streaming LLM di sini"):
print(chunk, end="", flush=True)
4.3 Pemrosesan Batch
Pemrosesan batch memungkinkan pemrosesan paralel beberapa input bagi LLM. Anda dapat memproses batch prompt seperti ini:
llm.batch(["prompt 1", "prompt 2", "prompt 3"])
4.4 Operasi Asynchronous
Untuk meningkatkan efisiensi, operasi asinkron dapat digunakan bersama dengan LLM. Operasi asinkron seperti ainvoke
, astream
, abatch
, dan astream_log
memungkinkan eksekusi asinkron. Berikut adalah contoh penggunaan LLM untuk pemrosesan streaming asinkron:
async for chunk in llm.astream("Berikan prompt asinkron untuk streaming LLM di sini"):
print(chunk, end="", flush=True)
Contoh-contoh ini menunjukkan beragam cara memanfaatkan LLM untuk tugas pemrosesan bahasa alami dalam kerangka kerja LangChain.