การจัดการไฟล์
นอกจากข้อมูลข้อความที่มีลักษณะข้อมูลที่ไม่ได้ประมวลผล คุณอาจต้องการดึงข้อมูลจากไฟล์ประเภทอื่น เช่นงานนำเสนอ PowerPoint หรือ PDF
คุณสามารถใช้ตัวโหลดเอกสาร LangChain เพื่อแยกไฟล์เป็นรูปแบบข้อความที่สามารถนำมาใช้กับ LLMs
การแยกตามประเภท MIME
ที่นี่ เราจะมองการแยกตามประเภท MIME ซึ่งมักจะมีประโยชน์สำหรับแอปพลิเคชันที่ใช้สำหรับการแยกรหัสลักษณะมีจุดประสงค์ในกรณีที่คุณเขียนโค้ดเซิร์ฟเวอร์ที่ยอมรับไฟล์ที่อัปโหลดจากผู้ใช้
ในกรณีนี้ ดีที่สุดคือ ที่จะถือว่านามสกุลของไฟล์ที่ผู้ใช้ให้มาไม่ถูกต้องและกลับทราบประเภท MIME จากเนื้อหาไบนารีของไฟล์แทน
ขอดาวน์โหลดเนื้อหาบางส่วน ของงานผลิตหมวดหมู่ต่าง ๆ ยังคงเป็นไฟล์ HTML แต่โค้ดด้านล่างนี้ยังทำงานได้กับประเภทไฟล์อื่น ๆ ด้วย
import requests
response = requests.get("https://en.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