04. Perutean Chain LLM (RunnableLambda, RunnableBranch)

RunnableBranch

RunnableBranch adalah alat yang ampuh yang memungkinkan Anda merutekan logika secara dinamis berdasarkan input. Ini memberi pengembang fleksibilitas untuk menentukan jalur pemrosesan yang berbeda berdasarkan karakteristik data input.

RunnableBranch membantu Anda mengimplementasikan pohon keputusan yang kompleks dengan cara yang sederhana dan intuitif. Hal ini sangat meningkatkan keterbacaan dan pemeliharaan kode, dan mempromosikan modularitas dan penggunaan kembali logika.

Selain itu, RunnableBranch dapat secara dinamis mengevaluasi kondisi cabang pada saat runtime dan memilih rutinitas pemrosesan yang sesuai, membuat sistem lebih mudah beradaptasi dan terukur.

Fitur-fitur ini membuat RunnableBranch berguna dalam berbagai macam domain, terutama untuk mengembangkan aplikasi di mana data masukannya beragam dan mudah berubah. Dengan memanfaatkan RunnableBranch secara efektif, Anda dapat mengurangi kompleksitas kode Anda dan meningkatkan fleksibilitas dan kinerja sistem Anda.

Perutean logika dinamis berdasarkan Input

Meliputi cara melakukan perutean dalam Bahasa Ekspresi LangChain.

Perutean memungkinkan Anda untuk membuat rantai nondeterministik di mana keluaran dari langkah sebelumnya menentukan langkah berikutnya. Perutean membantu memberikan struktur dan konsistensi pada interaksi Anda dengan LLM.

Ada dua cara untuk melakukan perutean.

  • Mengembalikan objek yang dapat dijalankan secara bersyarat dari RunnableLambda (disarankan)

  • Menggunakan RunnableBranch

Kedua metode ini akan diilustrasikan dengan menggunakan urutan dua langkah di mana langkah pertama mengklasifikasikan pertanyaan masukan sebagai pertanyaan matematika, sains, atau lainnya, dan kemudian merutekannya ke rantai perintah yang sesuai.

# Configuration file for managing API keys as environment variables
from dotenv import load_dotenv

# Load API key information
load_dotenv()

Contoh

Pertama, kita akan membuat sebuah Chain yang mengklasifikasikan pertanyaan yang masuk sebagai matematika, sains, atau lainnya.

Gunakan chain yang Anda buat untuk mengkategorikan pertanyaan-pertanyaan Anda.

Sekarang mari kita buat tiga subrantai.

Menggunakan fungsi yang ditentukan pengguna

Ini adalah pendekatan yang direkomendasikan dalam dokumentasi resmi LangChain, dan juga dapat dimanfaatkan dengan membungkus fungsi pengguna di RunnableLambda untuk perutean antara keluaran yang berbeda.

RunnableBranch

RunnableBranch adalah jenis Runnable khusus yang memungkinkan Anda untuk menentukan kondisi dan Runnable yang akan dijalankan berdasarkan nilai input.

Namun demikian, jenis ini tidak menyediakan fungsionalitas yang tidak dapat diimplementasikan dengan Fungsi yang Ditentukan Pengguna yang dijelaskan di atas, sehingga disarankan untuk menggunakan Fungsi yang Ditentukan Pengguna.

Sintaks

  • RunnableBranch diinisialisasi dengan sebuah daftar pasangan (kondisi, Runnable) dan sebuah Runnable default.

  • Memilih cabang dengan melewatkan input yang diteruskan kepadanya saat dipanggil ke setiap kondisi.

  • Memilih kondisi pertama yang bernilai True, dan menjalankan Runnable yang sesuai dengan kondisi tersebut dengan nilai input.

  • Jika tidak ada kondisi yang diberikan yang cocok, jalankan Runnable default.

Last updated