Xử lý tệp

Ngoài dữ liệu văn bản thô, bạn có thể muốn trích xuất thông tin từ các loại tệp khác như bài thuyết trình PowerPoint hoặc PDF.

Bạn có thể sử dụng trình tải tài liệu LangChain để phân tích các tệp thành định dạng văn bản có thể đưa vào mô hình ngôn ngữ.

Phân tích dựa trên loại MIME

Ở đây, chúng ta sẽ xem xét việc phân tích dựa trên loại MIME, điều này thường hữu ích cho các ứng dụng trích xuất nếu bạn đang viết mã máy chủ chấp nhận tệp được tải lên bởi người dùng.

Trong trường hợp này, tốt nhất là giả định rằng phần mở rộng của tệp do người dùng cung cấp là sai và thay vào đó suy luận ra loại MIME từ nội dung nhị phân của tệp.

Hãy tải xuống một số nội dung. Đây sẽ là một tệp HTML, nhưng mã dưới đây sẽ hoạt động với các loại tệp khác.

import requests

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

Cấu hình các bộ phân tích

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