Bu kılavuz, LangChain'de varlık belleğini kullanma sürecini gösterecektir.
LangChain'de Varlık Belleği Nasıl Kullanılır?
Varlık, sorgular/istemler kullanılarak insan tarafından istendiğinde çıkarılacak anahtar gerçekleri bellekte saklamak için kullanılır. LangChain'de varlık belleğini kullanma sürecini öğrenmek için aşağıdaki kılavuzu ziyaret etmeniz yeterlidir:
Adım 1: Modülleri Kurun
İlk olarak, bağımlılıklarını almak için pip komutunu kullanarak LangChain modülünü kurun:
pip kurulumu langchain
Bundan sonra, Yüksek Lisans ve sohbet modelleri oluşturmaya yönelik kütüphanelerini almak için OpenAI modülünü yükleyin:
pip kurulumu openai
OpenAI ortamını kurun OpenAI hesabından alınabilecek API anahtarını kullanarak:
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ı:' )
Adım 2: Varlık Belleğini Kullanma
Varlık belleğini kullanmak için OpenAI() yöntemini kullanarak LLM'yi oluşturmak üzere gerekli kitaplıkları içe aktarın:
itibaren Langchain. lms içe aktarmak OpenAIitibaren Langchain. hafıza içe aktarmak KonuşmaVarlığıBellek
llm = OpenAI ( sıcaklık = 0 )
Bundan sonra, tanımlayın hafıza Giriş ve çıkış değişkenlerini kullanarak modeli eğitmek için ConversationEntityMemory() yöntemini kullanan değişken:
hafıza = KonuşmaVarlığıBellek ( llm = llm )_giriş = { 'giriş' : 'Joe Root bir proje yapıyor' }
hafıza. load_memory_variables ( _giriş )
hafıza. save_context (
_giriş ,
{ 'çıktı' : 'Harika! Bu nasıl bir proje?' }
)
Şimdi, sorguyu/istemi kullanarak belleği test edin. giriş load_memory_variables() yöntemini çağırarak değişkeni:
hafıza. load_memory_variables ( { 'giriş' : 'Kök kimdir' } )
Şimdi modelin belleğe birkaç varlık daha ekleyebilmesi için biraz daha bilgi verin:
hafıza = KonuşmaVarlığıBellek ( llm = llm , return_messages = Doğru )_giriş = { 'giriş' : 'Joe Root bir proje yapıyor' }
hafıza. load_memory_variables ( _giriş )
hafıza. save_context (
_giriş ,
{ 'çıktı' : 'Harika! Bu nasıl bir proje' }
)
Bellekte saklanan varlıkları kullanarak çıktıyı almak için aşağıdaki kodu yürütün. aracılığıyla mümkündür giriş istemi içeren:
hafıza. load_memory_variables ( { 'giriş' : 'Joe kimdir' } )
Adım 3: Varlık Belleğini Zincirde Kullanma
Bir zincir oluşturduktan sonra varlık belleğini kullanmak için aşağıdaki kod bloğunu kullanarak gerekli kitaplıkları içe aktarmanız yeterlidir:
itibaren Langchain. zincirler içe aktarmak Konuşma Zinciriitibaren Langchain. hafıza içe aktarmak KonuşmaVarlığıBellek
itibaren Langchain. hafıza . çabuk içe aktarmak ENTITY_MEMORY_CONVERSATION_TEMPLATE
itibaren pıdantik içe aktarmak Temel Model
itibaren yazıyor içe aktarmak Liste , Dikte , Herhangi
llm gibi bağımsız değişkenleri kullanarak ConversationChain() yöntemini kullanarak konuşma modelini oluşturun:
konuşma = Konuşma Zinciri (llm = llm ,
ayrıntılı = Doğru ,
çabuk = ENTITY_MEMORY_CONVERSATION_TEMPLATE ,
hafıza = KonuşmaVarlığıBellek ( llm = llm )
)
İstem veya sorguyla başlatılan girişle talk.predict() yöntemini çağırın:
konuşma. tahmin etmek ( giriş = 'Joe Root bir proje yapıyor' )
Şimdi, her varlık için kendisi hakkındaki bilgileri açıklayan ayrı çıktıyı alın:
konuşma. hafıza . varlık_store . mağaza
Modelin bu varlıklar hakkında daha fazla bilgi depolayabilmesi için girdiyi vermek üzere modelin çıktısını kullanın:
konuşma. tahmin etmek ( giriş = 'Langchain'e daha karmaşık hafıza yapıları eklemeye çalışıyorlar' )
Bellekte saklanan bilgiyi verdikten sonra, varlıklar hakkındaki belirli bilgileri çıkarmak için soruyu sormanız yeterlidir:
konuşma. tahmin etmek ( giriş = 'Joe ve Root hakkında ne biliyorsun?' )
4. Adım: Bellek Deposunu Test Etme
Kullanıcı aşağıdaki kodu kullanarak bellek depolarını doğrudan inceleyerek içlerinde saklanan bilgileri alabilir:
itibaren Yazdır içe aktarmak YazdırYazdır ( konuşma. hafıza . varlık_store . mağaza )
Daha fazla bilgi daha doğru sonuçlar vereceğinden, hafızada saklanacak daha fazla bilgi sağlayın:
konuşma. tahmin etmek ( giriş = 'Root HJRS adında bir İşletme kurdu' )
Varlıklar hakkında daha fazla bilgi ekledikten sonra bellek deposundan bilgi çıkarın:
itibaren Yazdır içe aktarmak YazdırYazdır ( konuşma. hafıza . varlık_store . mağaza )
Bellekte HJRS, Joe, LangChain ve Root gibi birden fazla varlık hakkında bilgi bulunur:
Şimdi giriş değişkeninde tanımlanan sorguyu veya bilgi istemini kullanarak belirli bir varlık hakkındaki bilgileri çıkarın:
konuşma. tahmin etmek ( giriş = 'Kök hakkında ne biliyorsun?' )
Bu tamamen LangChain çerçevesini kullanarak varlık hafızasını kullanmakla ilgilidir.
Çözüm
Varlık belleğini LangChain'de kullanmak için, OpenAI ortamını kurduktan sonra modeller oluşturmak için gereken kitaplıkları içe aktarmak üzere gerekli modülleri kurmanız yeterlidir. Bundan sonra LLM modelini oluşturun ve varlıklar hakkında bilgi sağlayarak varlıkları hafızada saklayın. Kullanıcı ayrıca bu varlıkları kullanarak bilgi çıkarabilir ve bu anıları, varlıklar hakkında karıştırılmış bilgilerle zincirler halinde oluşturabilir. Bu gönderide LangChain'deki varlık belleğini kullanma süreci ayrıntılı olarak ele alınmıştır.