Bagaimana Mengimplementasikan Logika ReAct Menggunakan Agen di LangChain?

Bagaimana Mengimplementasikan Logika React Menggunakan Agen Di Langchain



LangChain adalah kerangka kerja untuk membangun model bahasa dan chatbots yang dapat memahami dan menghasilkan teks dalam bahasa manusia. Kinerja model didasarkan pada pemahaman bahasa dan kompleksitasnya selama tahap proses pelatihan. Tahap selanjutnya adalah menghasilkan data atau teks dalam bahasa alami yang mudah dibaca dan dipahami. Fase-fase ini disebut sebagai “ Pemikiran ' Dan ' Akting ” masing-masing dalam domain Pemrosesan Bahasa Alami.

Garis Besar Singkat

Posting ini akan menunjukkan:

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 Anda

impor 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_alat

dari 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_deskripsi

dari 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 Pelaksana

agen_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 ObrolanOpenAI

Bangun 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 ReActJsonSingleInputOutputParser

Bangun 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.