03
2025
07

男同 按摩 【LlamaIndex教程】1. 数据谀媚模块教程(附代码)

发布日期:2025-07-03 14:04    点击次数:192

男同 按摩 【LlamaIndex教程】1. 数据谀媚模块教程(附代码)

人人好,我是 同学小张男同 按摩,捏续学习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学问和实战案例

· 迎接 点赞 + 追究 👏,捏续学习,捏续干货输出。

公众号内著述一览

图片

本站仅提供存储工作,扫数内容均由用户发布,如发现存害或侵权内容,请点击举报。

相关资讯
热点资讯


Powered by 少妇 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024