Garis Besar Singkat
Posting ini akan menunjukkan:
- Bagaimana Menerapkan Logika ReAct Menggunakan Agen di LangChain
- Menginstal Kerangka
- Memuat Model Bahasa
- Metode 1: Menggunakan Bahasa Ekspresi LandChain
- Agen Bangunan
- Metode 2: Menggunakan ZeroShotReactAgent
- Metode 3: Menggunakan Model Obrolan
- Membangun Agen
- Metode 4: Menggunakan ChatZeroShotReactAgent
- Kesimpulan
Bagaimana Mengimplementasikan Logika ReAct Menggunakan Agen di LangChain?
“ Reaksi ” adalah kombinasi fase Alasan dan Tindakan untuk meningkatkan kinerja model bahasa sebagai “ Ulang ” mengacu pada alasan dan “ Bertindak ” untuk bertindak. Logika ReAct sering dianggap paling optimal untuk membangun LLM atau chatbots untuk memahami dan menghasilkan teks. Agen adalah pengambil keputusan yang memutuskan tindakan mana yang harus dilakukan dan urutan apa yang akan dilakukan.
Untuk mempelajari proses penerapan logika ReAct menggunakan agen di LangChain, cukup ikuti panduan berikut:
Langkah 1: Menginstal Kerangka
Pertama-tama, instal LangChain untuk memulai proses penerapan logika ReAct:
pip instal langchain
Instal modul hasil pencarian google untuk mendapatkan dependensi untuk membangun agen yang bisa mendapatkan hasil pencarian dari google:
pip install openai hasil pencarian google
Setelah itu, instal modul OpenAI yang dapat digunakan untuk memuat Model Bahasa Besar atau LLM untuk mengimplementasikan logika ReAct:
pip instal openai
Setelah mendapatkan semua modul yang diperlukan, cukup atur lingkungan OpenAI untuk membangun LLM dan Lingkungan SerpAPI untuk menggunakan agen dalam model:
impor Andaimpor dapatkan pass
Anda . sekitar [ 'OPENAI_API_KEY' ] = dapatkan pass . dapatkan pass ( 'Kunci API OpenAI:' )
Anda . sekitar [ 'SERPAPI_API_KEY' ] = dapatkan pass . dapatkan pass ( 'Kunci API Serpapi:' )
Langkah 2: Memuat Model Bahasa
Langkah selanjutnya adalah memuat model bahasa dengan mengimpor perpustakaan yang diperlukan menggunakan kerangka LangChain:
dari rantailang. agen impor memuat_alatdari rantailang. agen impor inisialisasi_agent
dari rantailang. agen impor Tipe Agen
dari rantailang. llms impor OpenAI
Gunakan metode OpenAI() untuk membuat Model Bahasa (llm) lalu konfigurasikan alat untuk agen menggunakan SerpAPI:
llm = OpenAI ( suhu = 0 )peralatan = memuat_alat ( [ 'serpapi' , 'llm-matematika' ] , llm = llm )
Metode 1: Menggunakan Bahasa Ekspresi LandChain
LCEL adalah proses mengintegrasikan atau menyusun rantai bersama-sama sambil membangun model bahasa di LangChain. Mulai proses dengan menginstal LangChainHub untuk mendapatkan dependensinya untuk membangun dan menggunakan logika ReAct dengan agen di LangChain:
pip instal langchainhub
Mengimpor perpustakaan dari LangChain seperti ReActSingleInputOutputParser untuk membangun model yang dapat menggunakan model ReAct:
dari rantailang. peralatan . memberikan impor render_teks_deskripsidari rantailang. agen . keluaran_parser impor ReActSingleInputOutputParser
dari rantailang. agen . format_scratchpad impor format_log_to_str
dari rantailang impor pusat
Muat model bahasa untuk mendesain logika ReAct menggunakan metode pull() dan simpan dalam variabel prompt. Tentukan beberapa alat yang dapat digunakan untuk mengimplementasikan logika pada kumpulan data yang dimuat untuk mengimplementasikan cara kerjanya dengan agen:
mengingatkan = pusat. menarik ( 'hwchase17/reaksi' )mengingatkan = mengingatkan. sebagian (
peralatan = render_teks_deskripsi ( peralatan ) ,
nama_alat = ', ' . bergabung ( [ T. nama untuk T di dalam peralatan ] ) ,
)
Agen Bangunan
Sekarang, konfigurasikan agen dan alatnya dengan mengintegrasikannya dengan model bahasa yang dimuat di langkah 2 panduan ini:
akan_dengan_berhenti = llm. mengikat ( berhenti = [ ' \N Pengamatan' ] )Tentukan variabel agen untuk memberikan argumen dan alat untuk mengonfigurasi agen yang menjelaskan cara kerjanya. Bagian yang dikonfigurasi sebelumnya seperti metode llm_with_stop dan ReActSingleInputOutputParser() sedang diintegrasikan dengan agen:
agen = {'memasukkan' : lambda x: x [ 'memasukkan' ] ,
'agen_scratchpad' : lambda x: format_log_to_str ( X [ 'langkah_menengah' ] )
} | cepat | llm_with_stop | ReActSingleInputOutputParser ( )
Dapatkan pustaka AgentExecutor dan konfigurasikan metodenya menggunakan argumen seperti agen, alat, dan verbose untuk mendapatkan keluaran yang lebih mudah dibaca:
dari rantailang. agen impor Agen Pelaksanaagen_pelaksana = Agen Pelaksana ( agen = agen , peralatan = peralatan , bertele-tele = BENAR )
Panggil metode agent_executor() dengan kueri string sebagai masukan yang akan memicu agen untuk mengekstrak keluaran:
agen_pelaksana. memohon ( { 'memasukkan' : 'Siapa pacar Leo DiCaprio' } )Keluaran
Tangkapan layar berikut menunjukkan bahwa agen telah mengekstrak informasi menggunakan logika ReAct dan menghasilkan teks dalam bahasa alami:
Metode 2: Menggunakan ZeroShotReactAgent
Logika ReAct juga dapat diimplementasikan dengan menggunakan agen lain seperti ZeroShotReactAgent saat mengonfigurasi variabel agent_executor. Setelah itu, cukup panggil variabel agent_executor dengan pertanyaan sebagai masukan untuk memanggil agen:
agen_pelaksana = inisialisasi_agent ( peralatan , llm , agen = Tipe Agen. NOL_SHOT_REACT_DESCRIPTION , bertele-tele = BENAR )agen_pelaksana. memohon ( { 'memasukkan' : 'Berapa umur pacar Leo DiCaprio yang dipangkatkan 0,21' } )
Keluaran
Agen telah mengekstrak informasi berdasarkan masukan yang diminta saat memanggil agent_executor:
Metode 3: Menggunakan Model Obrolan
Proses lain yang dapat digunakan untuk mengimplementasikan logika ReAct dengan menggunakan model chat setelah mengimpor perpustakaan ChatOpenAI:
dari rantailang. obrolan_model impor ObrolanOpenAIBangun model chat menggunakan metode ChatOpenAI() dengan nilai temperatur sama dengan 0 yang dapat mengontrol keacakan pada hasil model:
obrolan_model = ObrolanOpenAI ( suhu = 0 )Muat model di mana pengguna dapat mengimplementasikan logika ReAct untuk menyimpannya dalam variabel prompt dan konfigurasikan alat yang akan digunakan dalam proses:
mengingatkan = pusat. menarik ( 'hwchase17/reaksi-json' )mengingatkan = mengingatkan. sebagian (
peralatan = render_teks_deskripsi ( peralatan ) ,
nama_alat = ', ' . bergabung ( [ T. nama untuk T di dalam peralatan ] ) ,
)
Membangun Agen
Gunakan model obrolan untuk menyimpan pengamatan atau pesan terbaru ketika model berhenti menghasilkan teks:
obrolan_model_dengan_berhenti = obrolan_model. mengikat ( berhenti = [ ' \N Pengamatan' ] )Dapatkan pustaka ReActJsonSingleInputOutputParser untuk mengimplementasikan logika ReAct dan menghasilkan hasilnya dalam format JSON:
dari rantailang. agen . keluaran_parser impor ReActJsonSingleInputOutputParserBangun dan konfigurasikan agen menggunakan variabel dan metode chat_model untuk memberikan hasil dengan memanggil agen:
agen = {'memasukkan' : lambda x: x [ 'memasukkan' ] ,
'agen_scratchpad' : lambda x: format_log_to_str ( X [ 'langkah_menengah' ] )
} | cepat | obrolan_model_dengan_berhenti | ReActJsonSingleInputOutputParser ( )
Konfigurasikan agent_executor dan jalankan untuk mendapatkan hasil berdasarkan kueri yang diberikan dalam variabel input:
agen_pelaksana = Agen Pelaksana ( agen = agen , peralatan = peralatan , bertele-tele = BENAR )agen_pelaksana. memohon ( { 'memasukkan' : 'Berapa umur pacar Leo DiCaprio yang dipangkatkan 0,21' } )
Keluaran
Agen telah mengekstrak output seperti yang ditampilkan pada tangkapan layar berikut:
Metode 4: Menggunakan ChatZeroShotReactAgent
Mengubah nilai agen juga dapat digunakan untuk mengimplementasikan logika ReAct dengan kerangka LangChain:
agen = inisialisasi_agent ( peralatan , obrolan_model , agen = Tipe Agen. CHAT_ZERO_SHOT_REACT_DESCRIPTION , bertele-tele = BENAR )agen. berlari ( 'Berapa umur pacar Leo DiCaprio yang dipangkatkan 0,21' )
Keluaran
Struktur keluaran berisi informasi rinci tentang cara kerja agen dari token dan model yang digunakan untuk mengekstrak informasi:
Sekian tentang proses penerapan logika ReAct menggunakan agen di LangChain.
Kesimpulan
Untuk mengimplementasikan logika ReAct dengan agen menggunakan kerangka LangChain, instal modul seperti hasil pencarian google untuk mengonfigurasi agen. Setelah itu, siapkan lingkungan menggunakan kredensial OpenAI dan SerpAPI dari akun mereka untuk mulai menggunakan model tersebut. Logika ReAct dapat diimplementasikan menggunakan model LCEL dan obrolan dengan banyak agen yang ditawarkan oleh modul LangChain. Panduan ini telah menguraikan penerapan logika ReAct menggunakan agen di LangChain.