LangChain'de Ana Belge Alıcısı Nasıl Kullanılır?

Langchain De Ana Belge Alicisi Nasil Kullanilir



LangChain çerçevesi, geliştiricilerin doğal dilde metin anlayabilen ve üretebilen Büyük Dil Modelleri oluşturmasına olanak tanır. LangChain modelleri çok büyük miktarda veri üzerinde eğitilir, böylece model, verileri vektör depolarında depolayarak dili anlayabilir. Ayrıca kullanıcının, model için depolanan tüm verilerle birlikte veritabanından veya vektör depolarından veri çıkarabilen alıcılar oluşturmasına da olanak tanır.

Bu gönderi, LangChain'de ana belge alıcısını kullanma sürecini gösterecektir.

LangChain'de Ana Belge Alıcısı Nasıl Kullanılır?

LangChain'deki ana belge alıcısı, belgeleri daha küçük parçalara bölerek kullanılabilir, böylece yerleştirme anlarında anlamlarını kaybetmezler. Ana belgenin, belgenin tamamı veya daha küçük parçaların çıkarıldığı daha büyük parça olduğu söylenebilir.







LangChain'de ana belge alıcıyı kullanma sürecini öğrenmek için bu kılavuza göz atmanız yeterlidir:



Adım 1: Modülleri Kurun



Öncelikle pip komutunu kullanarak LangChain çerçevesini yükleyerek ana belge alıcısını kullanmaya başlayın:





pip kurulumu langchain

Belgenin yerleştirmelerini kaydetmek ve belgeden veri almak için Chroma veritabanı modülünü yükleyin:



pip install chromadb

Küçük parçalar oluşturarak belgenin jetonlarını alan bir tokenizer olan tiktoken'i yüklemek için:

pip tiktoken kurulumu

Bağımlılıklarını ve kitaplıklarını almak için Python not defterinde aşağıdaki komutu yürüterek OpenAI modülünü edinin:

pip kurulumu openai

Adım 2: Ortamın Kurulumu ve Verilerin Yüklenmesi

Bir sonraki adım ise ortamı kurmak OpenAI hesabındaki 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ı:' )

Şimdi, dosya kitaplığını içe aktardıktan sonra belgeleri yerel sistemden yükleyin ve ardından upload() yöntemini çağırın:

itibaren google. ve diğerleri içe aktarmak Dosyalar
yüklendi = Dosyalar. yüklemek ( )

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

Bir sonraki adım, LangChain çerçevesini kullanarak ana belge alıcılarını kullanmak için gerekli kitaplıkları içe aktarma kodunu içerir:

itibaren Langchain. avcılar içe aktarmak EbeveynDocumentRetriever
itibaren Langchain. vektör mağazaları içe aktarmak Renk
itibaren Langchain. gömmeler içe aktarmak OpenAIE Yerleştirmeleri
itibaren Langchain. metin_splitter içe aktarmak ÖzyinelemeliKarakterMetin Bölücü
itibaren Langchain. depolamak içe aktarmak InMemoryStore
itibaren Langchain. document_loaders içe aktarmak Metin Yükleyici

Dosya yolunu içeren TextLoader() yöntemlerini kullanarak alıcıyı oluşturmak için belgeyi yükleyin:

yükleyiciler = [
Metin Yükleyici ( 'Veri.txt' ) ,
Metin Yükleyici ( 'birliğin_durumu.txt' ) ,
]
dokümanlar = [ ]
için ben içinde yükleyiciler:

Adım 4: Tam Belgeleri Alma

Belgeler/dosyalar modele yüklendikten sonra, belgelerin yerleştirmelerini oluşturmanız ve bunları vektör depolarında saklamanız yeterlidir:

çocuk_splitter = ÖzyinelemeliKarakterMetin Bölücü ( Parça boyutu = 400 )

vektör mağazası = Renk (
koleksiyon_adı = 'tam_belgeler' ,
gömme_işlevi = OpenAIE Yerleştirmeleri ( )
)

mağaza = InMemoryStore ( )
av köpeği = EbeveynDocumentRetriever (
vektör mağazası = vektör mağazası ,
doküman deposu = mağaza ,
çocuk_splitter = çocuk_splitter ,
)

Şimdi, alıcıyı belgelere ulaştırmak için alıcıyı kullanarak add_documents() yöntemini çağırın:

av köpeği. add_documents ( dokümanlar , kimlikler = Hiçbiri )

Aşağıdaki kod, yüklenen dosyalar için veritabanında saklanan belgelerin yerleştirmelerini çıkarır:

liste ( mağaza. verim_anahtarları ( ) )

Belgelerin yerleştirmelerini aldıktan sonra, belgeden küçük parçaları almak için sorguyla benzerlik_search() yöntemini çağırın:

alt_docs = vektör mağazası. benzerlik_araması ( 'Adalet Breyer' )

Sorguya dayalı olarak önceki kodda çağrılan parçaları görüntülemek için print() yöntemini çağırın:

Yazdır ( alt_docs [ 0 ] . sayfa içeriği )

Aşağıdaki kodu kullanarak veritabanında depolanan tüm belirteçleri almak için Complete the Retriever() işlevini çağırın:

alınan_docs = av köpeği. get_relevant_documents ( 'Adalet Breyer' )

Tüm belgelerin yazdırılması çok fazla zaman ve işlem gücü gerektireceğinden, önceden alınan belgelerin uzunluğunu almanız yeterlidir:

sadece ( alınan_docs [ 0 ] . sayfa içeriği )

Adım 5: Daha Büyük Parçaların Alınması

Bu adım belgenin tamamını kapsamayacaktır; ancak belgeden daha büyük bir sincap alır ve ondan daha küçük bir parça alır:

ebeveyn_splitter = ÖzyinelemeliKarakterMetin Bölücü ( Parça boyutu = 2000 )
çocuk_splitter = ÖzyinelemeliKarakterMetin Bölücü ( Parça boyutu = 400 )
vektör mağazası = Renk ( koleksiyon_adı = 'bölünmüş_ebeveynler' , gömme_işlevi = OpenAIE Yerleştirmeleri ( ) )
mağaza = InMemoryStore ( )

Alıcıyı, '' alanında depolanan devasa veri havuzundan daha küçük jetonu alacak şekilde yapılandırın. vektör mağazası ” değişken:

av köpeği = EbeveynDocumentRetriever (
vektör mağazası = vektör mağazası ,
doküman deposu = mağaza ,
çocuk_splitter = çocuk_splitter ,
ebeveyn_splitter = ebeveyn_splitter ,
)

Vektör mağazalarından daha büyük parçaları almak için alıcıyı arayın. dokümanlar fonksiyonun argümanındaki değişken:

av köpeği. add_documents ( dokümanlar )

Bu belgelerin uzunluğunu şu adresten öğrenin: dokümanlar aşağıdaki komutla değişken:

sadece ( liste ( mağaza. verim_anahtarları ( ) ) )

Önceki ekran görüntüsü vektör deposunda 23 belgenin saklandığını gösterdiğinden, daha büyük bir parçadan daha küçük bir parça almanız yeterlidir. Sorgu, ilgili verileri elde etmek için kullanılır. benzerlik_arama() vektör deposundan veri alma yöntemi:

alt_docs = vektör mağazası. benzerlik_araması ( 'Adalet Breyer' )

Ekranda görüntülemek için önceki kodda belirtilen sorguyu kullanarak daha küçük parçaları yazdırın:

Yazdır ( alt_docs [ 0 ] . sayfa içeriği )

Şimdi, işlevin argümanı olarak sorguyu kullanarak veritabanında depolanan tüm veri kümesinde alıcıyı kullanın:

alınan_docs = av köpeği. get_relevant_documents ( 'Adalet Breyer' )

Veritabanında oluşturulan ve saklanan tüm parçaların uzunluğunu alın:

sadece ( alınan_docs [ 0 ] . sayfa içeriği )

Tüm parçaları görüntüleyemiyoruz ancak indeks numarası 0 olan ilk parça aşağıdaki kod kullanılarak görüntülenir:

Yazdır ( alınan_docs [ 0 ] . sayfa içeriği

LangChain'de ana belge alıcısını kullanma süreci bu kadar.

Çözüm

LangChain'de ana belge alıcıyı kullanmak için modülleri kurmanız ve API anahtarını kullanarak OpenAI ortamını kurmanız yeterlidir. Bundan sonra, ana belge alıcıyı kullanmak için gerekli kitaplıkları LangChain'den içe aktarın ve ardından model için belgeleri yükleyin. Kullanıcı ana belgeleri belgenin tamamı veya büyük kısmı olarak kullanabilir ve sorguyu kullanarak daha küçük bir parça elde edebilir. Bu gönderide LangChain'de ana belge alıcının kullanılması süreci ayrıntılı olarak açıklanmıştır.