Hızlı Taslak
Bu gönderi aşağıdakileri gösterecektir:
Arama Zinciri ile Kendi Kendine Sor Nasıl Uygulanır?
- Çerçeveleri Yükleme
- Bina Çevresi
- Kütüphaneleri İçe Aktarma
- Dil Modelleri Oluşturma
- LangChain İfade Dilini Kullanma
- Agent Executor'u Yapılandırma
- Aracıyı Çalıştırma
- Kendi Kendine Sor Aracısını Kullanma
Arama Zinciri ile Kendi Kendine Sor Nasıl Uygulanır?
Self-Ask, komutları iyice anladığı için zincirleme sürecini iyileştirme sürecidir. Zincirler, veri kümesinden tüm önemli terimlerle ilgili verileri çıkararak soruyu anlar. Model eğitilip sorguyu anladıktan sonra kullanıcı tarafından sorulan sorguya yanıt üretir.
LangChain'deki arama zincirleriyle kendi kendine sormayı uygulama sürecini öğrenmek için aşağıdaki kılavuzu incelemeniz yeterlidir:
Adım 1: Çerçeveleri Yükleme
Öncelikle aşağıdaki kodu kullanarak LangChain sürecini yükleyerek süreci başlatın ve sürece ilişkin tüm bağımlılıkları edinin:
pip kurulumu langchain
LangChain'i kurduktan sonra “ google-arama-sonuçları ” OpenAI ortamını kullanarak Google'dan arama sonuçlarını almak için:
pip install openai google arama sonuçları
Adım 2: Bina Ortamı
Modüller ve çerçeveler yüklendikten sonra ortamı ayarlayın. OpenAI Ve SerpAPi aşağıdaki kodu kullanarak API'lerini kullanarak. İlgili hesaplardan API anahtarlarını girmek için kullanılabilecek os ve getpass kitaplıklarını içe aktarın:
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ı:' )
3. Adım: Kitaplıkları İçe Aktarma
Ortamı kurduktan sonra gerekli kitaplıkları yardımcı programlar, aracılar, llm ve diğerleri gibi LangChain bağımlılıklarından içe aktarmanız yeterlidir:
itibaren Langchain. lms içe aktarmak OpenAIitibaren Langchain. araçlar içe aktarmak SerpAPIWrapper
itibaren Langchain. ajanlar . çıktı_ayrıştırıcıları içe aktarmak SelfAskOutputParser
itibaren Langchain. ajanlar . format_scratchpad içe aktarmak format_log_to_str
itibaren uzun zincir içe aktarmak merkez
itibaren Langchain. ajanlar içe aktarmak başlat_agent , Alet
itibaren Langchain. ajanlar içe aktarmak Temsilci Türü
Adım 4: Dil Modellerinin Oluşturulması
Dil modelini yapılandırmak için OpenAI() kullanıldığından, süreç boyunca yukarıdaki kitaplıkların alınması gerekir. Arama değişkenini yapılandırmak ve aracının tüm görevleri gerçekleştirmesi için gereken araçları ayarlamak için SerpAPIWrapper() yöntemini kullanın:
llm = OpenAI ( sıcaklık = 0 )aramak = SerpAPIWrapper ( )
aletler = [
Alet (
isim = 'Orta Cevap' ,
işlev = aramak. koşmak ,
Tanım = 'aramayla sormanız gerektiğinde kullanışlıdır' ,
)
]
Adım 5: LangChain İfade Dilini Kullanma
Modeli istem değişkenine yükleyerek aracıyı LangChain İfade Dili (LCEL) kullanarak yapılandırmaya başlarken:
çabuk = merkez. çekmek ( 'hwchase17/aramayla kendi kendine sor' )Metin oluşturmayı durdurmak ve yanıtların uzunluğunu kontrol etmek için yürütülebilecek başka bir değişken tanımlayın:
llm_with_stop = llm. bağlamak ( durmak = [ ' \N Ara cevap:' ] )Şimdi soruların yanıtlarını oluşturmak için aracıları olay odaklı sunucusuz bir platform olan Lambda'yı kullanarak yapılandırın. Ayrıca, daha önce yapılandırılan bileşenleri kullanarak optimize edilmiş sonuçları elde etmek amacıyla modeli eğitmek ve test etmek için gereken adımları da yapılandırın:
ajan = {'giriş' : lambda x: x [ 'giriş' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
X [ 'ara_adımlar' ] ,
gözlem_prefix = ' \N Ara cevap: ' ,
llm_prefix = '' ,
) ,
} | bilgi istemi | llm_with_stop | SelfAskOutputParser ( )
Adım 6: Agent Executor'u Yapılandırma
Yöntemi test etmeden önce, aracının duyarlı olmasını sağlamak için AgentExecutor kitaplığını LangChain'den içe aktarmanız yeterlidir:
itibaren Langchain. ajanlar içe aktarmak AjanYürütücüAgentExecutor() yöntemini çağırarak ve bileşenleri bağımsız değişken olarak kullanarak Agent_executor değişkenini tanımlayın:
ajan_yürütücü = AjanYürütücü ( ajan = ajan , aletler = aletler , ayrıntılı = Doğru )Adım 7: Aracıyı Çalıştırma
Aracı yürütücüsü yapılandırıldıktan sonra, giriş değişkeninde soruyu/istemi sağlayarak aracı test etmeniz yeterlidir:
ajan_yürütücü. çağırmak ( { 'giriş' : 'Erkekler ABD Açık şampiyonu kim?' } )Yukarıdaki kodun çalıştırılması, çıktıda ABD Açık Şampiyonunun adıyla yanıt verdi, yani Dominic Thiem:
Adım 8: Kendi Kendine Sor Aracısını Kullanma
Temsilciden yanıt aldıktan sonra, SELF_ASK_WITH_SEARCH run() yöntemindeki sorguyla aracı:
self_ask_with_search = başlat_agent (aletler , llm , ajan = AgentType. SELF_ASK_WITH_SEARCH , ayrıntılı = Doğru
)
self_ask_with_search. koşmak (
'ABD Açık Dünya Şampiyonu Dominic Thiem'in memleketi neresidir?'
)
Aşağıdaki ekran görüntüsü, kendi kendine sorma aracısının veri kümesinden her önemli terim hakkındaki bilgileri çıkardığını göstermektedir. Sorguyla ilgili tüm bilgileri toplayıp soruları anladıktan sonra yanıtı üretir. Temsilcinin kendisine sorduğu sorular şunlardır:
- Dominic Thiem kimdir?
- Dominic Thiem'in memleketi neresidir?
Temsilci bu soruların cevaplarını aldıktan sonra asıl sorunun cevabını oluşturmuştur: “ Wiener Neustadt, Avusturya ”:
Tamamen LangChain çerçevesini kullanan bir arama zinciriyle kendi kendine sormayı uygulama süreciyle ilgilidir.
Çözüm
LangChain'de arama ile kendi kendine sormayı uygulamak için, aracıdan sonuçları almak üzere google-search-results gibi gerekli modülleri kurmanız yeterlidir. Bundan sonra sürece başlamak için OpenAI ve SerpAPi hesaplarındaki API anahtarlarını kullanarak ortamı ayarlayın. Aracıyı yapılandırın ve AgentExecutor() yöntemini kullanarak test etmek için kendi kendine sorma modeliyle modeli oluşturun.