Hızlı Taslak
Bu yazı aşağıdaki bölümleri içerir:
- LangChain'de Eşzamansız API Aracısı Nasıl Kullanılır
- Yöntem 1: Seri Yürütmeyi Kullanma
- Yöntem 2: Eşzamanlı Yürütmeyi Kullanma
- Çözüm
LangChain'de Eşzamansız API Aracısı Nasıl Kullanılır?
Sohbet modelleri, istemin yapısını, karmaşıklığını anlamak, bilgi çıkarmak ve çok daha fazlası gibi birden fazla görevi aynı anda gerçekleştirir. LangChain'de Async API aracısını kullanmak, kullanıcının aynı anda birden fazla soruyu yanıtlayabilen verimli sohbet modelleri oluşturmasına olanak tanır. LangChain'de Async API aracısını kullanma sürecini öğrenmek için bu kılavuzu takip etmeniz yeterlidir:
Adım 1: Çerçeveleri Yükleme
Her şeyden önce, bağımlılıklarını Python paket yöneticisinden almak için LangChain çerçevesini yükleyin:
pip kurulumu langchain
Bundan sonra, llm gibi dil modelini oluşturmak ve ortamını ayarlamak için OpenAI modülünü yükleyin:
pip kurulumu openai
Adım 2: OpenAI Ortamı
Modüllerin kurulumundan sonraki adım çevreyi ayarlama OpenAI'nin API anahtarını kullanarak ve Serper API'si Google'dan veri aramak 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 [ 'SERPER_API_KEY' ] = geçiş izni . geçiş izni ( 'Serper API Anahtarı:' )
3. Adım: Kitaplıkları İçe Aktarma
Artık ortam ayarlandığına göre, asyncio gibi gerekli kitaplıkları ve LangChain bağımlılıklarını kullanarak diğer kitaplıkları içe aktarmanız yeterlidir:
itibaren Langchain. ajanlar içe aktarmak başlat_agent , load_toolsiçe aktarmak zaman
içe aktarmak uyumsuz
itibaren Langchain. ajanlar içe aktarmak Temsilci Türü
itibaren Langchain. lms içe aktarmak OpenAI
itibaren Langchain. geri aramalar . stdout içe aktarmak StdOutCallbackİşleyicisi
itibaren Langchain. geri aramalar . izleyiciler içe aktarmak LangChainTracer
itibaren aiohttp içe aktarmak İstemciOturumu
Adım 4: Kurulum Soruları
İnternette (Google) aranabilecek farklı alan adları veya konularla ilgili birden fazla sorgu içeren bir soru veri kümesi ayarlayın:
sorular = ['2021'de ABD Açık şampiyonluğunu kim kazandı?' ,
'Olivia Wilde'ın erkek arkadaşının yaşı kaç?' ,
'Formula 1 dünya şampiyonluğunu kim kazandı?' ,
'2021'de ABD Açık kadınlar finalini kim kazandı?' ,
'Beyonce'nin kocası kim ve yaşı kaç?' ,
]
Yöntem 1: Seri Yürütmeyi Kullanma
Tüm adımlar tamamlandıktan sonra, seri yürütmeyi kullanarak tüm yanıtları almak için soruları yürütmeniz yeterlidir. Bu, aynı anda bir sorunun yürütüleceği/görüntüleneceği ve ayrıca bu soruların yürütülmesi için gereken sürenin tamamının döndürüleceği anlamına gelir:
llm = OpenAI ( sıcaklık = 0 )aletler = load_tools ( [ 'google başlığı' , 'llm-matematik' ] , llm = llm )
ajan = başlat_agent (
aletler , llm , ajan = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru
)
S = zaman . perf_counter ( )
#işlemin tamamı için kullanılan süreyi elde etmek için zaman sayacını yapılandırma
için Q içinde sorular:
ajan. koşmak ( Q )
geçti = zaman . perf_counter ( ) - S
#temsilcinin yanıtları almak için kullandığı toplam süreyi yazdır
Yazdır ( F 'Seri dizi {elapsed:0.2f} saniyede yürütüldü.' )
Çıktı
Aşağıdaki ekran görüntüsünde her sorunun ayrı bir zincirde yanıtlandığı ve ilk zincirin bitiminden sonra ikinci zincirin aktif hale geldiği görülmektedir. Seri yürütmenin tüm yanıtları tek tek alması daha fazla zaman alır:
Yöntem 2: Eşzamanlı Yürütmeyi Kullanma
Eşzamanlı yürütme yöntemi, tüm soruları alır ve cevaplarını eş zamanlı olarak alır.
llm = OpenAI ( sıcaklık = 0 )aletler = load_tools ( [ 'google başlığı' , 'llm-matematik' ] , llm = llm )
#Aynı anda yanıt almak için yukarıdaki araçları kullanarak aracıyı yapılandırma
ajan = başlat_agent (
aletler , llm , ajan = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru
)
#işlemin tamamı için kullanılan süreyi elde etmek için zaman sayacını yapılandırma
S = zaman . perf_counter ( )
görevler = [ ajan. hastalık ( Q ) için Q içinde sorular ]
asyncio'yu bekliyoruz. toplamak ( *görevler )
geçti = zaman . perf_counter ( ) - S
#temsilcinin yanıtları almak için kullandığı toplam süreyi yazdır
Yazdır ( F 'Eşzamanlı olarak {elapsed:0,2f} saniye içinde yürütüldü' )
Çıktı
Eşzamanlı yürütme, tüm verileri aynı anda çıkarır ve seri yürütmeden çok daha az zaman alır:
Hepsi LangChain'de Async API aracısını kullanmakla ilgili.
Çözüm
LangChain'de Async API aracısını kullanmak için, asyncio kitaplığını almak amacıyla kitaplıkları bağımlılıklarından içe aktarmak üzere modülleri yüklemeniz yeterlidir. Bundan sonra ilgili hesaplarda oturum açarak OpenAI ve Serper API anahtarlarını kullanarak ortamları ayarlayın. Farklı konularla ilgili soru setini yapılandırın ve yürütme sürelerini öğrenmek için zincirleri seri ve eşzamanlı olarak yürütün. Bu kılavuz, LangChain'de Async API aracısını kullanma sürecini ayrıntılı olarak açıklamaktadır.