फ़ाइलों का हैंडल करें

रॉ टेक्स्ट डेटा के अलावा, आप पावरपॉइंट प्रस्तुतियों या पीडीएफ जैसे अन्य फ़ाइल प्रकारों से जानकारी निकालना चाहेंगे।

आप लैंगचेन दस्तावेज़ लोडर का उपयोग करके फ़ाइलों को पार्स करके टेक्स्ट प्रारूप में परिवर्तित कर सकते हैं जो LLMs में पाठ देने के लिए हो सकता है।

MIME प्रकार आधारित पार्सिंग

यहां, हम MIME प्रकार आधारित पार्सिंग पर ध्यान देंगे जो उपयोग में आता है, अगर आप उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलें स्वीकार करते सर्वर कोड लिख रहे हैं।

इस मामले में, सबसे अच्छा है कि उपयोगकर्ता द्वारा प्रदान की गई फ़ाइल का एक्सटेंशन गलत हो सकता है और इसके बजाय फ़ाइल के बाइनरी सामग्री से mimetype का अनुमान लगाया जाए।

आइए कुछ सामग्री डाउनलोड करें। यह HTML फ़ाइल होगी, लेकिन नीचे दिए गए कोड दूसरे फ़ाइल प्रकारों के साथ काम करेगा।

import requests

response = requests.get("https://hi.wikipedia.org/wiki/Car")
data = response.content
data[:20]
b'<!DOCTYPE html>\n<htm'

पार्सर कॉन्फ़िगर करें

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(),
}

MIMETYPE_BASED_PARSER = 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,
)

parser = HANDLERS[mime_type]
documents = parser.parse(blob=blob)
print(documents[0].page_content[:30].strip())
Car - Wikipedia