Rangka Pantas
Siaran ini akan menunjukkan:
- Cara Melaksanakan Logik ReAct Menggunakan Ejen dalam LangChain
- Memasang Rangka Kerja
- Memuatkan Model Bahasa
- Kaedah 1: Menggunakan Bahasa Ekspresi LandChain
- Ejen Bangunan
- Kaedah 2: Menggunakan ZeroShotReactAgent
- Kaedah 3: Menggunakan Model Sembang
- Membina Ejen
- Kaedah 4: Menggunakan ChatZeroShotReactAgent
- Kesimpulan
Bagaimana untuk Melaksanakan Logik ReAct Menggunakan Ejen dalam LangChain?
' Bertindak ” ialah gabungan fasa Sebab dan Tindakan untuk meningkatkan prestasi model bahasa sebagai “ Re ' merujuk kepada sebab dan ' Bertindak ” untuk bertindak. Logik ReAct sering dianggap paling dioptimumkan untuk membina LLM atau chatbot untuk memahami dan menjana teks. Ejen ialah pembuat keputusan yang memutuskan tindakan mana yang perlu dilakukan dan mengikut susunan yang akan dilakukan.
Untuk mempelajari proses melaksanakan logik ReAct menggunakan ejen dalam LangChain, hanya melalui panduan berikut:
Langkah 1: Memasang Rangka Kerja
Pertama sekali, pasang LangChain untuk memulakan proses melaksanakan logik ReAct:
pip pasang langchain
Pasang modul google-search-results untuk mendapatkan kebergantungan untuk membina ejen yang boleh mendapatkan hasil carian daripada google:
pip pasang openai google-search-results
Selepas itu, pasang modul OpenAI yang boleh digunakan untuk memuatkan Model Bahasa Besar atau LLM untuk melaksanakan logik ReAct:
pip pasang openai
Selepas mendapat semua modul yang diperlukan, sediakan sahaja Persekitaran OpenAI untuk membina LLM dan Persekitaran SerpAPI untuk menggunakan ejen dalam model:
import awakimport getpass
awak . lebih kurang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
awak . lebih kurang [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Kunci API Serpapi:' )
Langkah 2: Memuatkan Model Bahasa
Langkah seterusnya ialah memuatkan model bahasa dengan mengimport perpustakaan yang diperlukan menggunakan rangka kerja LangChain:
daripada langchain. ejen import load_toolsdaripada langchain. ejen import initialize_agent
daripada langchain. ejen import Jenis Agen
daripada langchain. llms import OpenAI
Gunakan kaedah OpenAI() untuk membina Model Bahasa (llm) dan kemudian konfigurasikan alatan untuk ejen menggunakan SerpAPI:
llm = OpenAI ( suhu = 0 )alatan = load_tools ( [ 'serpapi' , 'llm-math' ] , llm = llm )
Kaedah 1: Menggunakan Bahasa Ekspresi LandChain
LCEL ialah proses menyepadukan atau mengarang rantai bersama-sama sambil membina model bahasa dalam LangChain. Mulakan proses dengan memasang LangChainHub untuk mendapatkan kebergantungannya untuk membina dan menggunakan logik ReAct dengan ejen dalam LangChain:
pip pasang langchainhub
Mengimport perpustakaan daripada LangChain seperti ReActSingleInputOutputParser untuk membina model yang boleh menggunakan model ReAct:
daripada langchain. alatan . render import render_text_descriptiondaripada langchain. ejen . output_parser import ReActSingleInputOutputParser
daripada langchain. ejen . format_scratchpad import format_log_to_str
daripada langchain import hab
Muatkan model bahasa untuk mereka bentuk logik ReAct menggunakan kaedah pull() dan simpannya dalam pembolehubah segera. Tentukan beberapa alatan yang boleh digunakan untuk melaksanakan logik pada set data yang dimuatkan untuk melaksanakan kerjanya dengan ejen:
segera = hab. tarik ( 'hwchase17/react' )segera = segera. separa (
alatan = render_text_description ( alatan ) ,
nama_alat = ',' . sertai ( [ t. nama untuk t dalam alatan ] ) ,
)
Ejen Bangunan
Sekarang, konfigurasikan ejen dan alatannya dengan menyepadukannya dengan model bahasa yang dimuatkan dalam langkah 2 panduan ini:
llm_with_stop = llm. mengikat ( berhenti = [ ' \n Pemerhatian' ] )Tentukan pembolehubah ejen untuk menyediakan hujah dan alat untuk mengkonfigurasi ejen yang menerangkan kerjanya. Bahagian yang dikonfigurasikan sebelum ini seperti kaedah llm_with_stop dan ReActSingleInputOutputParser() sedang disepadukan dengan ejen:
ejen = {'input' : lambda x: x [ 'input' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'langkah_perantaraan' ] )
} | segera | llm_with_stop | ReActSingleInputOutputParser ( )
Dapatkan pustaka AgentExecutor dan konfigurasikan kaedahnya menggunakan hujah seperti ejen, alatan dan verbose untuk mendapatkan output yang lebih mudah dibaca:
daripada langchain. ejen import AgenPelaksanaejen_pelaksana = AgenPelaksana ( ejen = ejen , alatan = alatan , bertele-tele = betul )
Guna kaedah agent_executor() dengan pertanyaan rentetan sebagai input yang akan mencetuskan ejen untuk mengekstrak output:
ejen_pelaksana. menyeru ( { 'input' : 'Siapa teman wanita Leo DiCaprio' } )Pengeluaran
Tangkapan skrin berikut memaparkan bahawa ejen telah mengekstrak maklumat menggunakan logik ReAct dan menghasilkan teks dalam bahasa semula jadi:
Kaedah 2: Menggunakan ZeroShotReactAgent
Logik ReAct juga boleh dilaksanakan dengan menggunakan ejen lain seperti ZeroShotReactAgent semasa mengkonfigurasi pembolehubah agent_executor. Selepas itu, hanya panggil pembolehubah agent_executor dengan soalan sebagai input untuk memanggil ejen:
ejen_pelaksana = initialize_agent ( alatan , llm , ejen = Jenis Agen. ZERO_SHOT_REACT_DESCRIPTION , bertele-tele = betul )ejen_pelaksana. menyeru ( { 'input' : 'Berapakah umur teman wanita Leo DiCaprio dinaikkan kepada kuasa 0.21' } )
Pengeluaran
Ejen telah mengekstrak maklumat berdasarkan input yang ditanya semasa menggunakan agent_executor:
Kaedah 3: Menggunakan Model Sembang
Proses lain yang boleh digunakan untuk melaksanakan logik ReAct dengan menggunakan model sembang selepas mengimport perpustakaan ChatOpenAI:
daripada langchain. chat_models import ChatOpenAIBina model sembang menggunakan kaedah ChatOpenAI() dengan nilai suhu bersamaan dengan 0 yang boleh mengawal rawak dalam keputusan model:
chat_model = ChatOpenAI ( suhu = 0 )Muatkan model di mana pengguna boleh melaksanakan logik ReAct untuk menyimpannya dalam pembolehubah segera dan konfigurasikan alat untuk digunakan dalam proses:
segera = hab. tarik ( 'hwchase17/react-json' )segera = segera. separa (
alatan = render_text_description ( alatan ) ,
nama_alat = ',' . sertai ( [ t. nama untuk t dalam alatan ] ) ,
)
Membina Ejen
Gunakan model sembang untuk menyimpan pemerhatian atau mesej terbaharu apabila model berhenti menjana teks:
chat_model_with_stop = chat_model. mengikat ( berhenti = [ ' \n Pemerhatian' ] )Dapatkan pustaka ReActJsonSingleInputOutputParser untuk melaksanakan logik ReAct dan menghasilkan keputusan dalam format JSON:
daripada langchain. ejen . output_parser import ReActJsonSingleInputOutputParserBina dan konfigurasikan ejen menggunakan pembolehubah dan kaedah chat_model untuk menghasilkan hasil dengan memanggil ejen:
ejen = {'input' : lambda x: x [ 'input' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( x [ 'langkah_perantaraan' ] )
} | segera | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )
Konfigurasikan agent_executor dan jalankannya untuk mendapatkan hasil berdasarkan pertanyaan yang disediakan dalam pembolehubah input:
ejen_pelaksana = AgenPelaksana ( ejen = ejen , alatan = alatan , bertele-tele = betul )ejen_pelaksana. menyeru ( { 'input' : 'Berapakah umur teman wanita Leo DiCaprio dinaikkan kepada kuasa 0.21' } )
Pengeluaran
Ejen telah mengekstrak output seperti yang dipaparkan dalam tangkapan skrin berikut:
Kaedah 4: Menggunakan ChatZeroShotReactAgent
Menukar nilai ejen juga boleh digunakan untuk melaksanakan logik ReAct dengan rangka kerja LangChain:
ejen = initialize_agent ( alatan , chat_model , ejen = Jenis Agen. CHAT_ZERO_SHOT_REACT_DESCRIPTION , bertele-tele = betul )ejen. lari ( 'Berapakah umur teman wanita Leo DiCaprio dinaikkan kepada kuasa 0.21' )
Pengeluaran
Struktur output mengandungi maklumat terperinci tentang kerja ejen daripada token dan model yang digunakan untuk mengekstrak maklumat:
Itu sahaja tentang proses melaksanakan logik ReAct menggunakan ejen dalam LangChain.
Kesimpulan
Untuk melaksanakan logik ReAct dengan ejen menggunakan rangka kerja LangChain, pasang modul seperti google-search-results untuk mengkonfigurasi ejen. Selepas itu, sediakan persekitaran menggunakan bukti kelayakan OpenAI dan SerpAPI daripada akaun mereka untuk mula menggunakan model. Logik ReAct boleh dilaksanakan menggunakan model LCEL dan sembang dengan berbilang ejen yang ditawarkan oleh modul LangChain. Panduan ini telah menghuraikan tentang pelaksanaan logik ReAct menggunakan ejen dalam LangChain.