LangChain'de Aracı Kullanarak ReAct Mantığı Nasıl Uygulanır?

Langchain De Araci Kullanarak React Mantigi Nasil Uygulanir



LangChain, insan dilindeki metinleri anlayabilen ve üretebilen dil modelleri ve sohbet robotları oluşturmaya yönelik bir çerçevedir. Modelin performansı, sürecin eğitim aşamasında dilin anlaşılmasına ve karmaşıklıklarına dayanmaktadır. Bir sonraki aşama, verinin veya metnin doğal dilde, kolay okunabilir ve anlaşılır şekilde üretilmesidir. Bu aşamalara “ muhakeme ' Ve ' Oyunculuk ” Sırasıyla Doğal Dil İşleme alanında.

Hızlı Taslak

Bu gönderi şunları gösterecektir:

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 Sen

iç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_tools

itibaren 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_description

itibaren 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çıkAI

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

Aracı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.