Hızlı Taslak
Bu gönderi şunları gösterecektir:
- LangChain'de Bir Aracı Kullanarak ReAct Mantığı Nasıl Uygulanır?
- Çerçeveleri Yükleme
- Dil Modeli Yükleniyor
- Yöntem 1: LandChain İfade Dilini Kullanma
- İnşaat Temsilcisi
- Yöntem 2: ZeroShotReactAgent'ı kullanma
- Yöntem 3: Sohbet Modellerini Kullanma
- Temsilciyi Oluşturmak
- Yöntem 4: ChatZeroShotReactAgent'ı kullanma
- Çözüm
LangChain'de Aracı Kullanarak ReAct Mantığı Nasıl Uygulanır?
“ Tepki ', dil modelinin performansını artırmak için Sebep ve Eylem aşamalarının birleşimidir' Tekrar ” mantığa atıfta bulunur ve “ Davranmak ' Harekete geçmek. ReAct mantığı genellikle metni anlamak ve oluşturmak için LLM'ler veya sohbet robotları oluşturmak için en optimize edilmiş olarak kabul edilir. Temsilci, hangi eylemlerin hangi sırayla gerçekleştirileceğine karar veren karar vericidir.
LangChain'de bir aracı kullanarak ReAct mantığını uygulama sürecini öğrenmek için aşağıdaki kılavuzu incelemeniz yeterlidir:
Adım 1: Çerçeveleri Yükleme
ReAct mantığını uygulama sürecine başlamak için öncelikle LangChain'i kurun:
pip kurulumu langchain
Google'dan arama sonuçlarını alabilecek aracıyı oluşturmaya yönelik bağımlılıkları almak için google-search-results modülünü yükleyin:
pip install openai google arama sonuçları
Bundan sonra, ReAct mantığını uygulamak için Büyük Dil Modellerini veya LLM'leri yüklemek için kullanılabilecek OpenAI modüllerini yükleyin:
pip kurulumu openai
Gerekli tüm modülleri aldıktan sonra kurulumu yapmanız yeterlidir. OpenAI ortamı LLM oluşturmak için ve SerpAPI ortamı aracıyı modelde kullanmak için:
içe aktarmak Seniçe aktarmak geçiş izni
Sen . yaklaşık olarak [ 'OPENAI_API_KEY' ] = geçiş izni . geçiş izni ( 'OpenAI API Anahtarı:' )
Sen . yaklaşık olarak [ 'SERPAPI_API_KEY' ] = geçiş izni . geçiş izni ( 'Serpapi API Anahtarı:' )
Adım 2: Dil Modelini Yükleme
Bir sonraki adım, LangChain çerçevesini kullanarak gerekli kütüphaneleri içe aktararak dil modellerini yüklemektir:
itibaren Langchain. ajanlar içe aktarmak load_toolsitibaren Langchain. ajanlar içe aktarmak başlat_agent
itibaren Langchain. ajanlar içe aktarmak Temsilci Türü
itibaren Langchain. lms içe aktarmak OpenAI
Dil Modelini (llm) oluşturmak için OpenAI() yöntemini kullanın ve ardından SerpAPI kullanan aracılara yönelik araçları yapılandırın:
llm = OpenAI ( sıcaklık = 0 )aletler = load_tools ( [ 'serpapi' , 'llm-matematik' ] , llm = llm )
Yöntem 1: LandChain İfade Dilini Kullanma
LCEL, LangChain'de dil modellerini oluştururken zincirleri bir araya getirme veya birleştirme sürecidir. LangChain'deki aracılarla ReAct mantığını oluşturmak ve kullanmak için bağımlılıklarını almak üzere LangChainHub'ı yükleyerek süreci başlatın:
pip kurulumu langchainhub
ReAct modelini kullanabilen modeli oluşturmak için kütüphaneleri LangChain'den ReActSingleInputOutputParser gibi içe aktarma:
itibaren Langchain. aletler . oluşturmak içe aktarmak render_text_descriptionitibaren Langchain. ajanlar . çıktı_ayrıştırıcıları içe aktarmak ReActSingleInputOutputParser
itibaren Langchain. ajanlar . format_scratchpad içe aktarmak format_log_to_str
itibaren uzun zincir içe aktarmak merkez
pull() yöntemini kullanarak ReAct mantığını tasarlamak için dil modelini yükleyin ve bunu istem değişkeninde saklayın. Yüklenen veri kümesinin bir aracıyla çalışmasını sağlamak için mantığı uygulamak için kullanılabilecek bazı araçları tanımlayın:
çabuk = merkez. çekmek ( 'hwchase17/tepki' )çabuk = çabuk. kısmi (
aletler = render_text_description ( aletler ) ,
araç_adları = ', ' . katılmak ( [ T. isim için T içinde aletler ] ) ,
)
İnşaat Temsilcisi
Şimdi aracıyı ve araçlarını bu kılavuzun 2. adımında yüklenen dil modeliyle entegre ederek yapılandırın:
llm_with_stop = llm. bağlamak ( durmak = [ ' \N Gözlem' ] )Aracının çalışmasını açıklayan bağımsız değişkenleri ve araçları yapılandırmak için bir aracı değişkeni tanımlayın. llm_with_stop ve ReActSingleInputOutputParser() yöntemi gibi önceden yapılandırılmış parçalar aracıyla entegre ediliyor:
ajan = {'giriş' : lambda x: x [ 'giriş' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( X [ 'ara_adımlar' ] )
} | bilgi istemi | llm_with_stop | ReActSingleInputOutputParser ( )
AgentExecutor kitaplığını edinin ve daha okunabilir bir çıktı elde etmek için aracı, araçlar ve ayrıntılı gibi bağımsız değişkenleri kullanarak yöntemini yapılandırın:
itibaren Langchain. ajanlar içe aktarmak AjanYürütücüajan_yürütücü = AjanYürütücü ( ajan = ajan , aletler = aletler , ayrıntılı = Doğru )
Agent_executor() yöntemini, aracının çıktıyı çıkarması için tetikleyecek girdi olarak dize sorgusu ile çağırın:
ajan_yürütücü. çağırmak ( { 'giriş' : 'Leo DiCaprio'nun kız arkadaşı kim?' } )Çıktı
Aşağıdaki ekran görüntüsü, aracının ReAct mantığını kullanarak bilgileri çıkardığını ve metni doğal dilde oluşturduğunu gösterir:
Yöntem 2: ZeroShotReactAgent'ı kullanma
ReAct mantığı, Agent_executor değişkeni yapılandırılırken ZeroShotReactAgent gibi başka bir aracı kullanılarak da uygulanabilir. Bundan sonra, aracıyı çağırmak için girdi olarak soruyla birlikte Agent_executor değişkenini çağırmanız yeterlidir:
ajan_yürütücü = başlat_agent ( aletler , llm , ajan = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru )ajan_yürütücü. çağırmak ( { 'giriş' : 'Leo DiCaprio'nun kız arkadaşının yaşı 0,21'in kuvvetine yükseltilmiştir' } )
Çıktı
Aracı, aracı_yürütücüyü çağırırken sorulan girdiye dayanarak bilgileri çıkardı:
Yöntem 3: Sohbet Modellerini Kullanma
ChatOpenAI kütüphanesini içe aktardıktan sonra sohbet modellerini kullanarak ReAct mantığını uygulamak için kullanılabilecek diğer bir işlem:
itibaren Langchain. chat_models içe aktarmak SohbetAçıkAIModel sonuçlarındaki rastgeleliği kontrol edebilen sıcaklık değeri 0'a eşit olan ChatOpenAI() yöntemini kullanarak sohbet modelini oluşturun:
sohbet_modeli = SohbetAçıkAI ( sıcaklık = 0 )Kullanıcının, Prompt değişkeninde depolamak için ReAct mantığını uygulayabileceği modeli yükleyin ve süreçte kullanılacak araçları yapılandırın:
çabuk = merkez. çekmek ( 'hwchase17/tepki-json' )çabuk = çabuk. kısmi (
aletler = render_text_description ( aletler ) ,
araç_adları = ', ' . katılmak ( [ T. isim için T içinde aletler ] ) ,
)
Temsilciyi Oluşturmak
Model metni oluşturmayı bıraktığında gözlemleri veya son mesajları depolamak için sohbet modelini kullanın:
chat_model_with_stop = chat_model. bağlamak ( durmak = [ ' \N Gözlem' ] )ReAct mantığını uygulamak ve sonuçları JSON formatında üretmek için ReActJsonSingleInputOutputParser kitaplığını edinin:
itibaren Langchain. ajanlar . çıktı_ayrıştırıcıları içe aktarmak ReActJsonSingleInputOutputParserAracıyı çağırarak sonuç üretmek için chat_model değişkenini ve yöntemini kullanarak aracıyı oluşturun ve yapılandırın:
ajan = {'giriş' : lambda x: x [ 'giriş' ] ,
'agent_scratchpad' : lambda x: format_log_to_str ( X [ 'ara_adımlar' ] )
} | bilgi istemi | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )
Agent_executor'u yapılandırın ve giriş değişkeninde sağlanan sorguya göre sonuçları almak için çalıştırın:
ajan_yürütücü = AjanYürütücü ( ajan = ajan , aletler = aletler , ayrıntılı = Doğru )ajan_yürütücü. çağırmak ( { 'giriş' : 'Leo DiCaprio'nun kız arkadaşının yaşı 0,21'in kuvvetine yükseltilmiştir' } )
Çıktı
Aracı, çıktıyı aşağıdaki ekran görüntüsünde gösterildiği gibi çıkardı:
Yöntem 4: ChatZeroShotReactAgent'ı kullanma
Aracının değerinin değiştirilmesi, ReAct mantığını LangChain çerçevesiyle uygulamak için de kullanılabilir:
ajan = başlat_agent ( aletler , sohbet_modeli , ajan = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru )ajan. koşmak ( 'Leo DiCaprio'nun kız arkadaşının yaşı 0,21'in kuvvetine yükseltilmiştir' )
Çıktı
Çıktı yapısı, bilgiyi çıkarmak için kullanılan belirteçlerden ve modelden aracının çalışması hakkında ayrıntılı bilgi içerir:
Bunların hepsi LangChain'deki bir aracı kullanarak ReAct mantığını uygulama süreciyle ilgilidir.
Çözüm
ReAct mantığını LangChain çerçevesini kullanan bir aracıyla uygulamak için, aracıyı yapılandırmak üzere google-search-results gibi modüller yükleyin. Bundan sonra modeli kullanmaya başlamak için hesaplarındaki OpenAI ve SerpAPI kimlik bilgilerini kullanarak ortamı ayarlayın. ReAct mantığı, LangChain modülünün sunduğu çoklu aracılarla LCEL ve sohbet modelleri kullanılarak uygulanabilir. Bu kılavuz, LangChain'deki aracıyı kullanarak ReAct mantığının uygulanmasını ayrıntılı olarak açıklamaktadır.