LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML J
https://i-blog.csdnimg.cn/blog_migrate/bec3272acbb3390551bce3d9f820518d.png背景描述
LangChain 提供了多种文档加载器,包罗但不限于以下几种:
[*]TextLoader:用于从各种来源加载文本数据。
[*]CSVLoader:用于加载 CSV 文件并将其转换为 LangChain 可以处理的文档格式。
[*]UnstructuredFileLoader:可以或许主动检测并处理差异格式的文件。
[*]DirectoryLoader:用于加载指定文件夹中的文件。
[*]UnstructuredHTMLLoader:用于从 HTML 文件中提取故意义的内容。
[*]JSONLoader:用于加载和处理 JSON 文件。
[*]PyPDFLoader:用于加载 PDF 文件。
[*]ArxivLoader:专门用于加载来自 Arxiv 的文档。
安装依赖
pip install -qU langchain-core langchain-openai
加载Text
编写代码
from langchain_community.document_loaders import TextLoader
loader = TextLoader("./index.md")
data = loader.load()
print(data)
运行效果
➜ python3 test20.py
加载CSV
编写代码
from langchain_community.document_loaders.csv_loader import CSVLoader
loader = CSVLoader(file_path='./example_data/mlb_teams_2012.csv')
data = loader.load()
print(data)
运行效果
loader = CSVLoader(file_path='./example_data/mlb_teams_2012.csv', csv_args={
'delimiter': ',',
'quotechar': '"',
'fieldnames': ['MLB Team', 'Payroll in millions', 'Wins']
})
data = loader.load()
print(data)
加载目录
编写代码
from langchain_community.document_loaders import DirectoryLoader
loader = DirectoryLoader('../', glob="**/*.md")
docs = loader.load()
print(docs)
# 显示一个 进度条
loader = DirectoryLoader('../', glob="**/*.md", show_progress=True)
# 多线程加载
loader = DirectoryLoader('../', glob="**/*.md", use_multithreading=True)
# 自动检测编码
text_loader_kwargs={'autodetect_encoding': True}
loader = DirectoryLoader(path, glob="**/*.txt", loader_cls=TextLoader, loader_kwargs=text_loader_kwargs)
加载HTML
编写代码
from langchain_community.document_loaders import UnstructuredHTMLLoader
from langchain_community.document_loaders import BSHTMLLoader
loader = UnstructuredHTMLLoader("example_data/fake-content.html")
data = loader.load()
print(data)
# 如果你会用 BeautifulSoup4 的话,可以用它解析
loader = BSHTMLLoader("example_data/fake-content.html")
data = loader.load()
print(data)
加载JSON
编写代码
from langchain_community.document_loaders import JSONLoader
import json
from pathlib import Path
from pprint import pprint
# 普通的加载 json.loads
file_path='./example_data/facebook_chat.json'
data = json.loads(Path(file_path).read_text())
pprint(data)
# 使用 JSONLoader
loader = JSONLoader(
file_path='./example_data/facebook_chat.json',
jq_schema='.messages[].content',
text_content=False)
data = loader.load()
pprint(data)
加载JSON LINES
编写代码
from langchain_community.document_loaders import JSONLoader
import json
from pathlib import Path
from pprint import pprint
file_path = './example_data/facebook_chat_messages.jsonl'
pprint(Path(file_path).read_text())
loader = JSONLoader(
file_path='./example_data/facebook_chat_messages.jsonl',
jq_schema='.content',
text_content=False,
json_lines=True)
data = loader.load()
pprint(data)
加载Markdown
编写代码
from langchain_community.document_loaders import UnstructuredMarkdownLoader
markdown_path = "../../../../../README.md"
loader = UnstructuredMarkdownLoader(markdown_path)
data = loader.load()
加载PDF
安装依赖
pip install pypdf
pip install rapidocr-onnxruntime
编写代码
from langchain_community.document_loaders import PyPDFLoader
# 加载方式很多,不止这一个PDF的Loader
loader = PyPDFLoader("example_data/layout-parser-paper.pdf")
pages = loader.load_and_split()
print(pages)
# 可以将图片转化为文字
loader = PyPDFLoader("https://arxiv.org/pdf/2103.15348.pdf", extract_images=True)
pages = loader.load()
pages.page_content
向量化数据(简单例子 详细可看该系列的其他文章)
编写代码
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
faiss_index = FAISS.from_documents(pages, OpenAIEmbeddings())
docs = faiss_index.similarity_search("How will the community be engaged?", k=2)
for doc in docs:
print(str(doc.metadata["page"]) + ":", doc.page_content[:300])
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]