06. Menentukan properti dinamis (configurable_fields, configurable_alternatives)
Mengonfigurasi internal Chain pada saat runtime
Dalam tutorial ini, Anda akan mempelajari cara mengatur berbagai opsi secara dinamis saat memanggil Chain.
Ada dua cara untuk mencapai konfigurasi dinamis.
Pertama, metode
configurable_fields, yang memungkinkan Anda mengonfigurasi bidang tertentu dari objek yang dapat dieksekusi.Kedua, metode
configurable_alternatives, metode ini memungkinkan Anda untuk membuat daftar alternatif untuk objek yang dapat dieksekusi tertentu yang dapat diatur pada saat runtime.
configurable_fields
configurable_fields mengacu pada bidang yang mendefinisikan nilai yang ditetapkan untuk sistem.
Menentukan properti dinamis
Ketika menggunakan ChatOpenAI, kita dapat menyesuaikan pengaturan seperti model_name.
model_name adalah atribut yang digunakan untuk menentukan versi GPT. Sebagai contoh, Anda dapat memilih model dengan mengatur gpt-4o, gpt-4o-mini, dll.
Jika Anda ingin menentukan model secara dinamis daripada model_name yang tetap, Anda dapat menggunakan ConfigurableField untuk mengubahnya menjadi nilai properti yang dapat diatur secara dinamis, seperti ini.
# Configuration file for managing API keys as environment variables
from dotenv import load_dotenv
# Load API key information
load_dotenv()Gunakan metode configurable_fields untuk menentukan properti model_name sebagai bidang yang dapat dikonfigurasi secara dinamis.
Saat memanggil model.invoke(), config = {“configurable”: {“key”: “value"}} format, yang dapat ditentukan secara dinamis.
Kali ini, mari kita gunakan model gpt-4o-mini. Perhatikan perubahan pada output
Anda juga dapat mengatur parameter yang configurable menggunakan metode with_config() pada objek model. Perilakunya sama seperti sebelumnya.
Anda juga dapat memanfaatkan fungsi ini dengan cara yang sama ketika menggunakannya sebagai bagian dari rantai.
HubRunnable: Mengubah pengaturan di Hub LangChain
HubRunnable memfasilitasi pengalihan prompt yang terdaftar di Hub.
Jika Anda memanggil metode prompt.invoke() tanpa menentukan with_config yang terpisah, metode ini akan menarik prompt yang terdaftar di hub “rlm/rag-prompt” yang telah Anda siapkan pada awalnya.
Configurable Alternatives: Mengatur alternatif untuk objek yang dapat dijalankan itu sendiri
Konfigurasikan alternatif untuk Runnable yang dapat diatur pada saat runtime.
Alternatif yang dapat dikonfigurasi
Model bahasa ChatAnthropic yang dapat dikonfigurasi memberi Anda fleksibilitas untuk menyesuaikannya dengan tugas dan konteks yang berbeda.
Parameter yang Anda tetapkan pada model ditetapkan sebagai objek ConfigurableField untuk mengubah nilai Config secara dinamis.
model: Menentukan model bahasa default yang akan digunakan.temperature: Nilai antara 0 dan 1, yang mengontrol keacakan pengambilan sampel: nilai yang lebih rendah menghasilkan output yang lebih deterministik dan berulang, sementara nilai yang lebih tinggi menghasilkan output yang lebih bervariasi dan kreatif.
Cara mengatur alternatif untuk objek LLM
Mari kita lihat bagaimana cara melakukannya dengan memanfaatkan Large Language Model (LLM).
[Catatan]
Untuk menggunakan model
ChatAnthropic, Anda perlu mendapatkan dan menyiapkan API KEY.Tautan: https://console.anthropic.com/dashboard
Hapus komentar di bawah ini dan atur API KEY, atau atur di file
.envAnda. Tetapkan variabel lingkungan ANTHROPIC_API_KEY.
Panggil metode chain.invoke() dengan LLM default, ChatAnthropic.
Anda dapat menentukan model yang berbeda sebagai llm yang akan digunakan dengan menggunakan chain.with_config(configurable={“llm”: “model”}).
Ubah pengaturan dalam chain untuk menentukan model bahasa yang akan digunakan sebagai gpt4o.
Ubah pengaturan dalam rantai untuk menentukan anthropic sebagai model bahasa yang akan digunakan.
Cara mengatur alternatif untuk prompt
Perintah-perintah tersebut dapat melakukan hal yang serupa dengan metode sebelumnya dalam menyiapkan alternatif LLM.
Jika tidak ada pengaturan yang diubah, prompt default akan ditampilkan.
with_config untuk memanggil prompt lain.
Kali ini, kita akan menggunakan prompt eng untuk meminta terjemahan. Variabel input yang akan diberikan kali ini adalah input.
Mengubah prompt & LLM
Anda dapat menggunakan prompt dan LLM untuk mengonfigurasi sejumlah hal.
Berikut ini adalah contoh cara melakukan hal ini dengan menggunakan prompt dan LLM.
Menyimpan pengaturan
Anda dapat dengan mudah menyimpan rantai yang telah dikonfigurasi sebagai objek terpisah. Misalnya, Anda dapat mengonfigurasi rantai khusus untuk tugas tertentu dan kemudian menyimpannya sebagai objek yang dapat digunakan kembali, sehingga mudah digunakan dalam tugas serupa di masa mendatang.
Last updated