发布日期:2025-03-18 04:02 点击次数:108 |
人人好,我是 同学小张高段位氣質御姐【功夫不好不要找我】姐妹花~連體絲襪~大奶晃動~絲襪騷腳,捏续学习C++进阶常识和AI大模子欺诈实战案例,捏续共享,接待人人点赞+和蔼,共同学习和逾越。
上篇著作咱们通过一个粗浅的例子,学习了LlamaIndex的安设和基本使用,使用 LlamaIndex 构建了一个粗浅的RAG问答系统。今天咱们初始系统化学习,领先看一下LlamaIndex的Load部分。Load部分提神文献数据贯穿。
0. 文献类型加载器:SimpleDirectoryReader上篇著作代码的一初始,咱们就使用了这个Reader:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader# 使用SimpleDirectoryReader从指定旅途加载数据documents = SimpleDirectoryReader("D:\GitHub\LEARN_LLM\LlamaIndex\data").load_data()
这是 LlamaIndex 中最容易使用的一个文献夹加载器。它会读取传入的文献夹旅途中的统统文献,不错读取各式体式,包括Markdown、PDF、Word、PowerPoint、图像、音频和视频等。
来看下其具体集成的类型:
参考:https://llamahub.ai/l/readers/llama-index-readers-file?from=
from llama_index.core import SimpleDirectoryReaderfrom llama_index.readers.file import ( DocxReader, HWPReader, PDFReader, EpubReader, FlatReader, HTMLTagReader, ImageCaptionReader, ImageReader, ImageVisionLLMReader, IPYNBReader, MarkdownReader, MboxReader, PptxReader, PandasCSVReader, VideoAudioReader, UnstructuredReader, PyMuPDFReader, ImageTabularChartReader, XMLReader, PagedCSVReader, CSVReader, RTFReader,)# PDF Reader with `SimpleDirectoryReader`parser = PDFReader()file_extractor = {".pdf": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Docx Reader exampleparser = DocxReader()file_extractor = {".docx": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# HWP Reader exampleparser = HWPReader()file_extractor = {".hwp": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Epub Reader exampleparser = EpubReader()file_extractor = {".epub": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Flat Reader exampleparser = FlatReader()file_extractor = {".txt": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# HTML Tag Reader exampleparser = HTMLTagReader()file_extractor = {".html": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Image Reader exampleparser = ImageReader()file_extractor = { ".jpg": parser, ".jpeg": parser, ".png": parser,} # Add other image formats as neededdocuments = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# IPYNB Reader exampleparser = IPYNBReader()file_extractor = {".ipynb": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Markdown Reader exampleparser = MarkdownReader()file_extractor = {".md": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Mbox Reader exampleparser = MboxReader()file_extractor = {".mbox": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Pptx Reader exampleparser = PptxReader()file_extractor = {".pptx": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Pandas CSV Reader exampleparser = PandasCSVReader()file_extractor = {".csv": parser} # Add other CSV formats as neededdocuments = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# PyMuPDF Reader exampleparser = PyMuPDFReader()file_extractor = {".pdf": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# XML Reader exampleparser = XMLReader()file_extractor = {".xml": parser}documents = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# Paged CSV Reader exampleparser = PagedCSVReader()file_extractor = {".csv": parser} # Add other CSV formats as neededdocuments = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()# CSV Reader exampleparser = CSVReader()file_extractor = {".csv": parser} # Add other CSV formats as neededdocuments = SimpleDirectoryReader( "./data", file_extractor=file_extractor).load_data()1. LlamaHub 中的加载器
除了上头的读取文献以外,本色活命中还有许多地点不错赢得数据,举例GitHub,网页,数据库等。这些数据加载器在 LlamaHub 中结束,不错按需使用。下图是 LlamaHub 中加载器列表:
图片高段位氣質御姐【功夫不好不要找我】姐妹花~連體絲襪~大奶晃動~絲襪騷腳
激情网站1.1 使用姿色领先得安设相应的包,举例使用DatabaseReader:
pip install llama-index-readers-google# 或者在使用之前加底下这一滑应该也行:# from llama_index.core import download_loader
不然会报错:高段位氣質御姐【功夫不好不要找我】姐妹花~連體絲襪~大奶晃動~絲襪騷腳
图片
然后就不错经常使用了:
from llama_index.core import download_loaderfrom llama_index.readers.database import DatabaseReaderreader = DatabaseReader( scheme=os.getenv("DB_SCHEME"), host=os.getenv("DB_HOST"), port=os.getenv("DB_PORT"), user=os.getenv("DB_USER"), password=os.getenv("DB_PASS"), dbname=os.getenv("DB_NAME"),)query = "SELECT * FROM users"documents = reader.load_data(query=query)2. 不错径直将笔墨更变成 LlamaIndex 需要的 Document 结构
from llama_index.core import Documentdoc = Document(text="text")3. 文档内容更变
加载数据后,下一步是将数据进行处分和更变。这些更变包括分块、索求元数据和对每个块进行向量化,从而确保大模子约略检索数据。
3.1 一步到位的粗浅体式其中最粗浅的更变作念法,是上篇著作中咱们使用的:from_documents体式。
from llama_index.core import VectorStoreIndexvector_index = VectorStoreIndex.from_documents(documents)vector_index.as_query_engine()
from_documents()体式,领受一个Document对象数组,并自动走漏和拆分它们。
3.2 自界说更变随机辰咱们需要我方截止分块等这些更变的逻辑。有以下两种姿色:
(1)使用 from_documents 的 transformations 参数,传入一个自界说的分块器。
from llama_index.core.node_parser import SentenceSplittertext_splitter = SentenceSplitter(chunk_size=512, chunk_overlap=10)# per-indexindex = VectorStoreIndex.from_documents( documents, transformations=[text_splitter])
(2)使用全局开采,开采默许的分块器。
from llama_index.core.node_parser import SentenceSplittertext_splitter = SentenceSplitter(chunk_size=512, chunk_overlap=10)# globalfrom llama_index.core import SettingsSettings.text_splitter = text_splitter# per-indexindex = VectorStoreIndex.from_documents(documents)4. 回来
本文咱们先容了 LlamaIndex 中加载器,以及怎么使用它们。LlamaIndex提供了内置的文献加载器,同期也撑捏 LlamHub 中提供的各式其它类型加载器。
著作临了,粗浅先容了下 LlamaIndex 中怎么将加载到的文档数据更变成索引。
5. 参考· https://docs.llamaindex.ai/en/stable/understanding/loading/loading/
· https://docs.llamaindex.ai/en/stable/understanding/loading/llamahub/
若是合计本文对你有匡助,清贫点个赞和和蔼呗 ~~~点击上方公众号,和蔼↑↑↑
· 人人好,我是 同学小张,日常共享AI常识和实战案例
· 接待 点赞 + 和蔼 👏,捏续学习,捏续干货输出。
公众号内著作一览
图片
本站仅提供存储就业,统统内容均由用户发布,如发现存害或侵权内容,请点击举报。