解析¶
在本节中,我们将介绍如何解析原始文档。
解析原始文档是一个关键步骤。 因为如果原始文档解析不好,RAG就无法得到良好优化。
仅需使用YAML文件,您就能轻松调用各类文档加载器。 解析结果将按照AutoRAG使用的数据格式进行保存。
概述¶
示例解析流程如下所示。
from autorag.parser import Parser
parser = Parser(data_path_glob="your/data/path/*")
parser.start_parsing("your/path/to/parse_config.yaml")
YAML文件设置指南¶
1. 使用所有文件¶
可用的解析模块如下所示。
Langchain_parse (parse_method: directory)
Langchain解析 (解析方法: unstructured)
Langchain解析 (解析方法: upstagedocumentparse)
Llama解析
Clova
这是一个关于完整模块的YAML文件示例,其中file_type: all_files表示所有文件类型。
modules:
- module_type: langchain_parse
file_type: all_files
parse_method: [ directory, unstructured, upstagedocumentparse ]
- module_type: clova
file_type: all_files
table_detection: true
- module_type: llamaparse
file_type: all_files
result_type: markdown
language: ko
use_vendor_multimodal_model: true
vendor_multimodal_model_name: openai-gpt-4o-mini
2. 使用特定文件¶
六种文件类型可以指定直接解析方法。 每种文件类型只能指定一个解析方法。
如果您位于源文档文件夹中且未指定解析方法,系统将根据文件扩展名使用默认方法。 例如,当文件夹中存在csv文件且未指定parse_method时,该csv文件将按默认方法以csv格式进行解析。
默认解析方法¶
PDF: pdfminer
CSV: csv
Markdown格式:非结构化markdown
HTML: bshtml
XML: 非结构化xml
📌JSON 不会默认生效,因为您必须将 jq_schema 指定为内容的关键值。
这是一个关于特定文件类型的完整模块的YAML文件示例。
modules:
# PDF
- module_type: langchain_parse
file_type: pdf
parse_method: pdfminer
# CSV
- module_type: langchain_parse
file_type: csv
parse_method: csv
# JSON
- module_type: langchain_parse
file_type: json
parse_method: json
jq_schema: .content
# Markdown
- module_type: langchain_parse
file_type: md
parse_method: unstructuredmarkdown
# HTML
- module_type: langchain_parse
file_type: html
parse_method: bshtml
# XML
- module_type: langchain_parse
file_type: xml
parse_method: unstructuredxml
运行解析管道¶
1. 设置解析器实例¶
from autorag.parser import Parser
parser = Parser(data_path_glob="your/data/path/*")
📌 参数: data_path_glob¶
解析器实例需要data_path_glob参数。
该参数用于指定待解析文档的路径。
仅支持通配符模式。
您可以使用通配符 * 来指定多个文件。
您可以指定文件扩展名如*.pdf来限定特定文件类型。
想要指定项目文件夹吗?
您可以通过--project_dir选项或project_dir参数指定项目目录。
2. 设置YAML文件¶
以下是使用langchain_parse模块的示例。
modules:
- module_type: langchain_parse
file_type: pdf
parse_method: pdfminer
3. 开始解析¶
使用start_parsing函数开始解析。
parser.start_parsing("your/path/to/parse_config.yaml")
4. 查看结果¶
如果设置了project_dir参数,您可以在项目目录中查看结果。
如果未设置,则可以在当前目录中查看结果。
如果解析成功完成,将在project_dir目录中创建以下三种类型的文件。
解析结果
使用的YAML文件
摘要文件
使用所有文件¶
每次只能使用一种解析方法。
解析结果将保存为parsed_result.parquet。
如需使用两种all_files解析方法,您需要使用两个不同的YAML文件分别运行两次解析流程。
最后,在summary.csv文件中,您可以查看解析结果的相关信息,例如使用了哪种解析方法进行处理。
使用特定文件类型¶
例如,如果您需要解析的文件类型是PDF、XML和JSON,
您的项目目录中将会包含pdf.parquet、xml.parquet和json.parquet文件。
所有这些文件合并后的结果将生成parsed_result.parquet。
输出列¶
texts: 从文档中解析出的文本内容。path: 文档路径。pages: 文档中的页数。如果按页解析则包含页码,否则为-1。按页面解析的模块:[
clova,table_hybrid_parse]不按页面解析的模块:[
langchain_parse,llama_parse]
last_modified_datetime: 文档的最后修改时间。
支持的解析模块¶
📌 您可以在此处查看我们所有的解析模块 here