LangChain'de VectorStoreRetrieverMemory Nasıl Kullanılır?

Langchain De Vectorstoreretrievermemory Nasil Kullanilir



Büyük Dil Modelleri veya LLM'ler, LangChain çerçevesi kullanılarak oluşturulan Doğal Dil İşleme sorunlarının çözümüdür. LangChain modülü, sohbet modellerini veya LLM'leri tasarlamak için gerekli tüm bağımlılıkları veya kitaplıkları sağlar. Kullanıcı ayrıca modelleri kullanarak vektör depolarından veya veritabanlarından veri çıkarmak için alıcıyı ayarlayabilir.

Bu kılavuz, LangChain çerçevesini kullanarak VectorStoreRetrieverMemory'nin nasıl kullanılacağını gösterecektir.

LangChain'de VectorStoreRetrieverMemory Nasıl Kullanılır?

VectorStoreRetrieverMemory, vektör depolarını kullanarak bellekten bilgi/veri çıkarmak için kullanılabilen LangChain kütüphanesidir. Bilgi istemine veya sorguya göre verimli bir şekilde çıkarmak amacıyla verileri depolamak ve yönetmek için vektör depoları kullanılabilir.







LangChain'de VectorStoreRetrieverMemory kullanma sürecini öğrenmek için aşağıdaki kılavuzu incelemeniz yeterlidir:



Adım 1: Modülleri Kurun

Pip komutunu kullanarak LangChain'i yükleyerek bellek alıcıyı kullanma işlemini başlatın:



pip kurulumu langchain





Anlamsal benzerlik aramasını kullanarak verileri elde etmek için FAISS modüllerini yükleyin:

pip kurulumu faiss-gpu



Chroma veritabanını kullanmak için chromadb modülünü yükleyin. Alıcının hafızasını oluşturmak için vektör deposu olarak çalışır:

pip install chromadb

Verileri daha küçük parçalara dönüştürerek token oluşturmak için kullanılabilecek başka bir tiktoken modülünün kurulması gerekir:

pip tiktoken kurulumu

Ortamını kullanarak yüksek lisans veya sohbet robotları oluşturmak amacıyla kütüphanelerini kullanmak için OpenAI modülünü yükleyin:

pip kurulumu openai

Ortamı ayarlayın OpenAI hesabındaki API anahtarını kullanarak Python IDE'de veya dizüstü bilgisayarda:

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ı:' )

2. Adım: Kitaplıkları İçe Aktarın

Bir sonraki adım, LangChain'deki hafıza alıcısını kullanmak için bu modüllerden kütüphaneleri almaktır:

itibaren Langchain. istemler içe aktarmak İstem Şablonu

itibaren tarihsaat içe aktarmak tarihsaat

itibaren Langchain. lms içe aktarmak OpenAI

itibaren Langchain. gömmeler . açık içe aktarmak OpenAIE Yerleştirmeleri

itibaren Langchain. zincirler içe aktarmak Konuşma Zinciri

itibaren Langchain. hafıza içe aktarmak VectorStoreRetrieverBellek

3. Adım: Vektör Mağazasını Başlatma

Bu kılavuz, FAISS kitaplığını içe aktardıktan sonra giriş komutunu kullanarak verileri çıkarmak için Chroma veritabanını kullanır:

içe aktarmak fais

itibaren Langchain. doküman mağazası içe aktarmak InMemoryDocstore
#veritabanlarını veya vektör depolarını yapılandırmak için kitaplıkları içe aktarma
itibaren Langchain. vektör mağazaları içe aktarmak FAISS

#vektör mağazalarında saklamak için yerleştirmeler ve metinler oluşturun
yerleştirme_boyutu = 1536
dizin = fais. DizinDüzL2 ( yerleştirme_boyutu )
yerleştirme_fn = OpenAIE Yerleştirmeleri ( ) . embed_query
vektör mağazası = FAISS ( yerleştirme_fn , dizin , InMemoryDocstore ( { } ) , { } )

Adım 4: Bir Vektör Mağazası Tarafından Desteklenen Retriever Oluşturma

Konuşmadaki en son mesajları depolamak ve sohbetin içeriğini öğrenmek için hafızayı oluşturun:

av köpeği = vektör mağazası. as_retriever ( search_kwargs = dikte etmek ( k = 1 ) )
hafıza = VectorStoreRetrieverBellek ( av köpeği = av köpeği )

hafıza. save_context ( { 'giriş' : 'Pizza yemeyi severim' } , { 'çıktı' : 'fantastik' } )
hafıza. save_context ( { 'giriş' : 'Futbolda iyiyim' } , { 'çıktı' : 'Tamam' } )
hafıza. save_context ( { 'giriş' : 'Siyasetten hoşlanmıyorum' } , { 'çıktı' : 'Elbette' } )

Kullanıcının geçmişiyle birlikte sağladığı girişi kullanarak modelin hafızasını test edin:

Yazdır ( hafıza. load_memory_variables ( { 'çabuk' : 'Hangi sporu izlemeliyim?' } ) [ 'tarih' ] )

Adım 5: Retriever'ı Zincirde Kullanmak

Bir sonraki adım, OpenAI() yöntemini kullanarak LLM'yi oluşturarak ve bilgi istemi şablonunu yapılandırarak zincirlerle bir bellek alıcının kullanılmasıdır:

llm = OpenAI ( sıcaklık = 0 )
_VARSAYILAN ŞABLON = '''Bir insan ile bir makine arasındaki etkileşimdir
Sistem bağlamı kullanarak ayrıntılarla birlikte yararlı bilgiler üretir
Sistem sizin için bir yanıta sahip değilse, yalnızca yanıtın bende olmadığını söyler

Konuşmadan önemli bilgiler:
{tarih}
(metin konuyla ilgili değilse kullanmayın)

Mevcut sohbet:
İnsan: {giriş}
AI:'''

ÇABUK = İstem Şablonu (
girdi_değişkenleri = [ 'tarih' , 'giriş' ] , şablon = _VARSAYILAN ŞABLON
)
#ConversationChain()'i parametrelerinin değerlerini kullanarak yapılandırın
konuşma_with_summary = Konuşma Zinciri (
llm = llm ,
çabuk = ÇABUK ,
hafıza = hafıza ,
ayrıntılı = Doğru
)
konuşma_ile_özetle. tahmin etmek ( giriş = 'Merhaba, benim adım Perry, naber?' )

Çıktı

Komutun yürütülmesi zinciri çalıştırır ve model veya LLM tarafından sağlanan yanıtı görüntüler:

Vektör deposunda depolanan verileri temel alan istemi kullanarak konuşmaya devam edin:

konuşma_ile_özetle. tahmin etmek ( giriş = 'en sevdiğim spor hangisi?' )

Önceki mesajlar, modelin mesajın içeriğini anlamak için kullanabileceği modelin belleğinde saklanır:

konuşma_ile_özetle. tahmin etmek ( giriş = 'En sevdiğim yemek nedir' )

Bellek alıcının sohbet modeliyle nasıl çalıştığını kontrol etmek için önceki mesajlardan birinde modele verilen yanıtı alın:

konuşma_ile_özetle. tahmin etmek ( giriş = 'Benim adım ne?' )

Model, bellekte saklanan verilerden benzerlik aramasını kullanarak çıktıyı doğru bir şekilde görüntüledi:

Hepsi LangChain'deki vektör deposu alıcısını kullanmakla ilgili.

Çözüm

LangChain'deki bir vektör deposunu temel alan bellek alıcısını kullanmak için modülleri ve çerçeveleri kurmanız ve ortamı ayarlamanız yeterlidir. Bundan sonra, Chroma kullanarak veritabanını oluşturmak için modüllerden kitaplıkları içe aktarın ve ardından bilgi istemi şablonunu ayarlayın. Verileri hafızaya kaydettikten sonra konuşmayı başlatıp önceki mesajlarla ilgili sorular sorarak alıcıyı test edin. Bu kılavuzda LangChain'de VectorStoreRetrieverMemory kütüphanesinin kullanım süreci ayrıntılı olarak açıklanmıştır.