Gérer les fichiers

En plus des données textuelles brutes, vous pouvez souhaiter extraire des informations d'autres types de fichiers tels que des présentations PowerPoint ou des PDF.

Vous pouvez utiliser les chargeurs de documents LangChain pour analyser les fichiers dans un format texte qui peut être alimenté dans des LLM.

Analyse basée sur le type MIME

Ici, nous verrons l'analyse basée sur le type MIME, qui est souvent utile pour les applications d'extraction si vous écrivez du code serveur qui accepte des fichiers téléchargés par l'utilisateur.

Dans ce cas, il est préférable de partir du principe que l'extension de fichier fournie par l'utilisateur est incorrecte et d'inférer plutôt le type MIME à partir du contenu binaire du fichier.

Téléchargeons un contenu. Il s'agira d'un fichier HTML, mais le code ci-dessous fonctionnera avec d'autres types de fichiers.

import requests

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

Configurer les analyseurs

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