Hızlı Taslak
Bu gönderi şunları gösterecek:
LangChain'e Özel Bellek Türü Nasıl Eklenir?
- Çerçeveleri Yükleme
- Kütüphaneleri İçe Aktarma
- Özel Bellek Oluşturma
- Bilgi İstemi Şablonunu Yapılandırma
- Modelin Test Edilmesi
LangChain'e Özel Bellek Türü Nasıl Eklenir?
LangChain'e özelleştirilmiş bir bellek türü eklemek, kullanıcının bellek olarak en fazla performansı elde etmesini sağlar. Kullanıcı, bellek tipini gereksinimlerine göre yapılandırabilir. LangChain'e özel bir bellek türü eklemek için aşağıdaki adımları uygulamanız yeterlidir:
Adım 1: Çerçeveleri Yükleme
Öncelikle, özel bir bellek türü ekleme işlemine başlamak için LangChain çerçevesini yükleyin:
pip kurulumu langchainYukarıdaki komutu Python Notebook'ta çalıştırmak, aşağıdaki kod parçasında görüntülendiği gibi LangChain bağımlılıklarını yükleyecektir:
Yüksek Lisans'ları yapılandırmak için kullanılabilecek kitaplıklarını almak için OpenAI modülünü yükleyin:
pip kurulumu openai
Bu kılavuz, LangChain'deki özel bellek tipini tasarlamak için spaCy çerçevesini kullanacak ve modülü kurmak için aşağıdaki kod kullanılacaktır:
pip kurulum alanı
SpaCy modeli, önceki sohbet mesajları gibi bilgileri gözlem olarak saklamak için karma tablosunu kullanır. Gelişmiş bir NLP modeli oluşturmak amacıyla Büyük Dil Modeli'ni veya LLM'yi spaCy kütüphanesinden indirmek için aşağıdaki kod kullanılır:
! python -m spacy indirme tr_core_web_lg
İçe aktarılıyor “ Sen ' Ve ' geçiş izni ” kitaplıklar OpenAI hesabından API anahtarını girmek içindir ortamını kurdu :
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ı:' )
Adım 2: Kitaplıkları İçe Aktarma
Bir sonraki adım, bellek türünü sohbet modeline göre özelleştirmek için gerekli kitaplıkları içe aktarmaktır:
itibaren Langchain. şema içe aktarmak Temel Bellekitibaren Langchain. zincirler içe aktarmak Konuşma Zinciri
itibaren pıdantik içe aktarmak Temel Model
itibaren Langchain. lms içe aktarmak OpenAI
itibaren yazıyor içe aktarmak Liste , Dikte , Herhangi
“İçe aktarılıyor uzay “ kütüphanesini yüklemek için tr_core_web_lg ” modelini seçin ve onu “ nlp ” değişkeni Doğal Dil İşleme modeli olduğu için:
içe aktarmak ferahnlp = ferah. yük ( 'tr_core_web_lg' )
3. Adım: Özel Bellek Oluşturma
Bundan sonra, Memory sınıfındaki BaseMemory ve BaseModel bağımsız değişkenlerini kullanarak özel belleği oluşturmanız yeterlidir. Ardından, tam bilgi olarak veya tek bir birim olarak bellekte saklanabilecek varlıkları (verilerden toplanan/saklanan) yapılandırın. Bellek, belleğin ve modelin performansını optimize etmek için belgedeki tüm varlıkları içerecek şekilde yapılandırılmıştır:
sınıf SpacyEntityMemory ( Temel Bellek , Temel Model ) :''' Varlıklar hakkında bilgi depolamak için hafıza sınıfı'''
varlıklar: dikte etmek = { }
hafıza_anahtarı: cadde = 'varlıklar'
kesinlikle temizlemek ( öz ) :
öz . varlıklar = { }
@ mülk
kesinlikle hafıza_değişkenleri ( öz ) - > Liste [ cadde ] :
''' Sorguya sağlanan değişkenleri başlat'''
geri dönmek [ öz . hafıza_anahtarı ]
#bağımsız değişkenleri kullanarak bellek değişkenlerini tanımlayın
kesinlikle load_memory_variables ( öz , girişler: Dikte [ cadde , Herhangi ] ) - > Dikte [ cadde , cadde ] :
''' Bellek için değişkenleri, yani varlık anahtarını çağırın'''
doktor = nlp ( girişler [ liste ( girişler. anahtarlar ( ) ) [ 0 ] ] )
#bir birimin hafızasında saklanacak varlıkları yapılandırma
varlıklar = [
öz . varlıklar [ cadde ( ent ) ] için ent içinde doktor. entler eğer cadde ( ent ) içinde öz . varlıklar
]
geri dönmek { öz . hafıza_anahtarı : ' \N ' . katılmak ( varlıklar ) }
#belleği kullanmak için save_context() yöntemini tanımlayın
kesinlikle save_context ( öz , girişler: Dikte [ cadde , Herhangi ] , çıktılar: Dikte [ cadde , cadde ] ) - > Hiçbiri :
'''Bu sohbetteki gözlemleri hafızaya kaydet'''
metin = girişler [ liste ( girişler. anahtarlar ( ) ) [ 0 ] ]
doktor = nlp ( metin )
için ent içinde doktor. entler :
ent_str = cadde ( ent )
eğer ent_str içinde öz . varlıklar :
öz . varlıklar [ ent_str ] + = F ' \N {metin}'
başka :
öz . varlıklar [ ent_str ] = metin
Adım 4: Bilgi İstemi Şablonunu Yapılandırma
Bundan sonra, kullanıcı/insan tarafından sağlanan girdinin yapısını açıklayan bilgi istemi şablonunu yapılandırmanız yeterlidir:
itibaren Langchain. istemler . çabuk içe aktarmak İstem Şablonuşablon = '''Aşağıdaki bir makine ile insan arasındaki etkileşimdir Bilmiyor diyor Makine cevabı bilmiyorsa Makine (AI) kendi bağlamından ayrıntılar sağlar ve herhangi bir sorunun cevabını anlamazsa cevap verir sadece üzgünüm diyor
Varlık bilgisi:
{varlıklar}
İletişim:
İnsan: {giriş}
AI:'''
çabuk = İstem Şablonu ( girdi_değişkenleri = [ 'varlıklar' , 'giriş' ] , şablon = şablon )
Adım 5: Modelin Test Edilmesi
Modeli test etmeden önce, LLM'yi OpenAI() yöntemini kullanarak yapılandırmanız ve ConversationChain() işlevini argümanlarla ayarlamanız yeterlidir:
llm = OpenAI ( sıcaklık = 0 )konuşma = Konuşma Zinciri (
llm = llm , çabuk = çabuk , ayrıntılı = Doğru , hafıza = SpacyEntityMemory ( )
)
Konuşma değişkeniyle tahmin() yöntemini çağırırken giriş bağımsız değişkenini kullanarak modele bilgi verin:
konuşma. tahmin etmek ( giriş = 'Harrison makine öğrenimini seviyor' )Çıktı
Model, bilgiyi özümseyerek hafızasında sakladı ve ayrıca konuşmaya devam etmek için bilgiyle ilgili soruyu sordu:
Kullanıcı, belleğe daha fazla bilgi eklemek için modelden soruya yanıt verebilir veya bilgilerle ilgili soruyu sorarak belleği test edebilir:
konuşma. tahmin etmek (giriş = 'Harrison'un en sevdiği konu nedir?'
)
Model, önceki bilgilere dayanarak çıktıyı verir ve bunu aşağıdaki kod parçasında gösterildiği gibi ekranda görüntüler:
Hepsi LangChain'e özel bir bellek türü eklemekle ilgili.
Çözüm
LangChain'e özel bir bellek türü eklemek için, özel belleği oluşturmak üzere kitaplıkları içe aktarmak için gerekli modülleri kurmanız yeterlidir. spaCy, bu kılavuzda NLP modelini kullanarak özel bir bellek eklemek için kullanılan önemli kitaplıktır. Bundan sonra, sohbet arayüzünün yapısını vermek için özel belleği ve bilgi istemi şablonunu yapılandırın. Yapılandırma tamamlandıktan sonra, depolanan verilerle ilgili bilgileri sorarak modelin belleğini test etmeniz yeterlidir.