Dosyaları İşleme
Ham metin verilerinin yanı sıra PowerPoint sunumları veya PDF'ler gibi diğer dosya türlerinden bilgi çıkarmak isteyebilirsiniz.
LangChain belge yükleyicilerini kullanarak dosyaları LLM'ye beslenebilecek bir metin formatına ayrıştırabilirsiniz.
MIME türüne göre ayrıştırma
Burada, genellikle kullanıcı tarafından yüklenmiş dosyaları kabul eden sunucu kodu yazıyorsanız çıkarma tabanlı uygulamalar için oldukça yararlı olan MIME türüne göre ayrıştırmayı ele alacağız.
Bu durumda, en iyi yaklaşım, kullanıcı tarafından sağlanan dosyanın dosya uzantısının yanlış olduğunu varsaymak ve bunun yerine dosyanın ikili içeriğinden mimetype'ı çıkarmaktır.
Biraz içerik indirelim. Bu bir HTML dosyası olacak, ancak aşağıdaki kod diğer dosya türleriyle de çalışacaktır.
import requests
response = requests.get("https://en.wikipedia.org/wiki/Car")
data = response.content
data[:20]
b'<!DOCTYPE html>\n<htm'
Ayrıştırıcıları yapılandırın
import magic
from langchain.document_loaders.parsers import BS4HTMLParser, PDFMinerParser
from langchain.document_loaders.parsers.generic import MimeTypeBasedParser
from langchain.document_loaders.parsers.txt import TextParser
from langchain_community.document_loaders import Blob
HANDLERS = {
"application/pdf": PDFMinerParser(),
"text/plain": TextParser(),
"text/html": BS4HTMLParser(),
}
MIME_TÜRÜNE_GÖRE_AYRIŞTIRICI = MimeTypeBasedParser(
handlers=HANDLERS,
fallback_parser=None,
)
mime = magic.Magic(mime=True)
mime_type = mime.from_buffer(data)
blob = Blob.from_data(
data=data,
mime_type=mime_type,
)
ayrıştırıcı = HANDLERS[mime_type]
belgeler = ayrıştırıcı.parse(blob=blob)
print(belgeler[0].page_content[:30].strip())
Car - Vikipedi