当前位置: 首页 > news >正文

49.llama_index-文档加载(LLamaParse高精度文档解析)

内容参考于:图灵AI大模型全栈

LLamaindex提供了一个叫LLamaParse东西,它是一个在线的收费的,每个月有免费额度,它上一章里写的是本地加载文档(PDFReader、DocxReader 等),本地加载文档它有缺陷不是很智能,LLamaParse就比较智能

LLamaParse官网地址:https://cloud.llamaindex.ai/

如下图登录后(账号如果不会申请,可以去某宝、某鱼去买)

如下图红框免费使用的额度

申请一个key,如下图红框,官网也提供了Python调用的代码示例

它的库安装地址:https://developers.llamaindex.ai/llamaparse/?gl=1

pip install llama-cloud>=2.1

代码效果图:

代码

# 导入操作系统标准模块,用于读取环境变量、处理文件路径 import os # 导入 Python 标准异步IO库,用于管理异步事件循环、运行异步函数 import asyncio # 从 llama_cloud 包导入异步版 LlamaCloud 客户端 # 模块说明:LlamaCloud 是 LlamaIndex 官方推出的云端文档解析服务(核心能力为 LlamaParse) # 主打高精度 PDF/文档解析,可智能识别表格、版式、目录、公式、跨页内容,解析效果远优于本地解析工具 # AsyncLlamaCloud 是异步版本的客户端,适合批量处理、高并发场景;对应还有同步版 LlamaCloud from llama_cloud import AsyncLlamaCloud # 导入环境变量加载函数,用于读取 .env 文件中的配置,避免 API 密钥等敏感信息硬编码在代码中 from dotenv import load_dotenv # 执行加载 .env 配置文件,将文件内的键值对写入系统环境变量 # 执行后 os.getenv() 才可读取到 LLamaParseKey 等自定义配置项 load_dotenv() # 初始化异步 LlamaCloud 客户端实例 # 必填入参: # api_key:LlamaCloud 服务的 API 密钥,需从 LlamaCloud 官网申请获取 # 此处从环境变量 LLamaParseKey 中读取,对应 .env 文件里的同名配置项 client = AsyncLlamaCloud(api_key=os.getenv("LLamaParseKey")) # 定义异步主函数,包含完整的「文件上传 → 云端解析 → 结果处理 → 本地保存」全流程 async def main(): # ========== 第一步:上传本地文件到 LlamaCloud 云端 ========== # 方法名:client.files.create # 作用:将本地文档文件上传到 LlamaCloud 服务器,返回文件对象;后续解析任务基于返回的文件 ID 执行 # 必填入参: # file:str 类型,本地待解析文件的路径(支持相对路径/绝对路径) # purpose:str 类型,文件用途标识,固定传 "parse" 表示该文件用于文档解析 # 返回值:文件对象,包含 id(文件唯一标识)、文件名、文件大小等元数据属性 file_obj = await client.files.create(file="./data_file/财务管理文档.pdf", purpose="parse") # 打印文件唯一 ID,可用于任务追溯、问题排查 print(file_obj.id) # ========== 第二步:发起文档解析请求,等待解析完成 ========== # 方法名:client.parsing.parse # 作用:根据文件 ID 发起云端解析任务,await 会阻塞等待解析完成后返回完整结果 # 必填入参: # file_id:str 类型,上传文件得到的唯一 ID,指定本次要解析的目标文件 # 常用可选入参: # tier:str 类型,解析等级模式 # - "standard":标准模式,速度快、成本低,适合版式简单的普通文字版 PDF # - "agentic":智能模式,调用 Agent 能力处理复杂版式、嵌套表格、跨页内容、扫描件,解析质量更高,成本也更高 # version:str 类型,解析引擎版本,"latest" 表示使用最新稳定版,也可指定具体版本号保证一致性 # expand:list[str] 类型,指定需要返回的解析结果格式,支持多选 # - "markdown":返回分页的 Markdown 内容,结果包含 pages 数组,每页独立对应一段 Markdown # - "markdown_full":返回完整拼接好的全文 Markdown,直接得到单段完整文本,无需手动拼接 # - "text":返回纯文本内容 # - "json":返回结构化 JSON 结果,包含段落、表格、标题层级等详细语义结构 # 返回值:解析结果对象,包含 expand 指定的对应内容属性 result = await client.parsing.parse( file_id=file_obj.id, tier="agentic", version="latest", # 此处指定返回分页 Markdown,后续需手动遍历每页拼接全文 expand=["markdown"], ) # 打印 Markdown 结果的完整结构对象,调试时可用于校验返回格式 print(result.markdown) # ========== 第三步:遍历分页结果,逐页写入本地 Markdown 文件 ========== # 以追加模式打开本地文件,指定 utf-8 编码,避免中文乱码 # 注意:使用 'a' 追加模式,多次运行代码会重复追加内容;若只需单次生成,建议改为 'w' 覆盖模式 with open('财务管理文档.md', 'a', encoding='utf-8')as f: # 遍历分页 Markdown 列表,enumerate 同时获取索引和单页对象 # result.markdown.pages 是列表类型,每个元素对应一页的解析结果 for i, page in enumerate(result.markdown.pages): # 打印分页分隔线与页码,索引 i 从 0 开始,+1 后符合人类阅读的页码习惯 print(f"========== 第 {i+1} 页 ==========") # 以 repr 形式打印当前页的 Markdown 内容,可看到换行符、特殊字符等原始格式,用于调试校验 print(repr(page.markdown)) # 将当前页的 Markdown 内容写入本地文件,逐页拼接成完整文档 f.write(page.markdown) # 脚本入口保护:仅直接运行该脚本时执行逻辑,被其他文件导入时不执行 if __name__ == "__main__": # 启动异步事件循环,运行 main 异步函数 # asyncio.run() 是 Python 3.7+ 提供的标准异步入口,会自动创建、管理、关闭事件循环 asyncio.run(main())

上面的是异步的方式,下方是同步的

# 导入操作系统标准模块,用于读取环境变量、处理文件路径 import os # 导入环境变量加载函数,用于读取 .env 配置文件,避免密钥硬编码 from dotenv import load_dotenv # 导入 LlamaCloud 同步客户端类 # 模块说明:LlamaCloud 是 LlamaIndex 官方的云端文档解析服务(核心能力为 LlamaParse) # 主打高精度 PDF 解析,可智能还原表格、版式、目录、公式、跨页内容,效果远优于本地开源解析工具 # 本类为同步版本客户端,调用方式简单直观,适合单文件处理、简单脚本场景;对应还有 AsyncLlamaCloud 异步版 from llama_cloud import LlamaCloud # 加载 .env 文件中的配置到系统环境变量 # 执行后 os.getenv() 可读取到 LLamaParseKey 等自定义配置项 load_dotenv() # 初始化 LlamaCloud 同步客户端实例 # 必填入参: # api_key:LlamaCloud 服务的 API 密钥,需在 LlamaCloud 官网申请获取 # 此处从环境变量 LLamaParseKey 读取,对应 .env 文件中的同名配置 client = LlamaCloud(api_key=os.getenv('LLamaParseKey')) # ====================== 第一步:上传本地文件到云端 ====================== # 方法:client.files.create # 作用:将本地文档文件上传至 LlamaCloud 服务器,生成唯一文件 ID,后续解析基于该 ID 执行 # 必填入参: # file:字符串类型,本地待解析文件的相对路径或绝对路径 # purpose:字符串类型,文件用途标识,解析场景固定传 "parse" # 返回值:文件对象,包含 id(文件唯一标识)、文件名、文件大小等元数据属性 file = client.files.create( file="./data/财务管理文档.pdf", # 本地文件路径 purpose="parse", # 固定写法,表示用于解析 ) print(f"文件上传成功,file_id: {file.id}") # ====================== 第二步:发起云端解析并获取结果 ====================== # 方法:client.parsing.parse # 作用:根据文件 ID 发起文档解析任务,同步阻塞等待解析完成后返回完整结果 # 必填入参: # file_id:字符串类型,上传文件返回的唯一 ID,指定本次解析的目标文件 # 常用可选入参: # tier:字符串类型,解析精度等级 # - standard:标准模式,速度快、成本低,适合版式简单的普通文字版 PDF # - agentic:智能增强模式,通过 Agent 能力处理复杂版式、嵌套表格、跨页内容、扫描件,解析准确率更高,成本也更高 # version:字符串类型,解析引擎版本,"latest" 表示使用最新稳定版;也可指定具体版本号保证结果一致性 # expand:列表类型,指定需要返回的解析结果格式,支持多选 # - "markdown":返回分页 Markdown,结果包含 pages 数组,每页对应独立 Markdown 内容,粒度灵活 # - "markdown_full":返回完整拼接好的全文 Markdown,直接得到单段完整文本,无需手动拼接 # - "text":返回纯文本内容 # - "json":返回结构化 JSON,包含段落、表格、标题层级、版式信息等详细语义结构 # 返回值:解析结果对象,包含 expand 指定的对应内容属性 result = client.parsing.parse( file_id=file.id, tier="agentic", # 解析层级(推荐 agentic,最高精度) version="latest", # 使用最新版本的解析引擎 expand=["markdown"], # 返回 Markdown 格式 ) # print(result) # 调试时可打开,查看完整结果对象结构 # ====================== 第三步:分页写入本地 Markdown 文件 ====================== # 以追加模式打开本地文件,指定 utf-8 编码避免中文乱码 # 注意:'a' 为追加模式,多次运行脚本会向文件尾部重复追加内容;若只需单次生成,建议改为 'w' 覆盖模式 with open('财务管理文档.md', 'a', encoding='utf-8')as f: # 遍历分页 Markdown 列表,enumerate 同时获取页索引和单页对象 # result.markdown.pages 为列表类型,每个元素对应一页的解析结果 for i, page in enumerate(result.markdown.pages): # 打印分页分隔线与页码,索引从 0 开始,+1 后符合人类阅读的页码习惯 print(f"========== 第 {i+1} 页 ==========") # 以 repr 形式打印单页 Markdown 内容,可直观看到换行符、特殊字符等原始格式,用于调试校验 print(repr(page.markdown)) # 将当前页的 Markdown 内容写入本地文件,逐页拼接成完整文档 f.write(page.markdown) # print()

http://www.jsqmd.com/news/1151941/

相关文章:

  • 支持二次开发的国产AI Agent平台有哪些?企业级开发底座与工作流引擎横评
  • Hinge Loss 与 Cross-Entropy Loss 对比:5 个维度解析二分类任务中的选择策略
  • NeurIPS 2025 投稿规划:基于近3年25%录用率与5月DDL的3阶段时间表
  • ITU-T G.8273.2 边界时钟测试解决方案
  • Dell 服务器 BMC 报 PSU 冗余丢失完整排错方案,电源线与电源模块排查全流程
  • Shell-GPT(sgpt)—— Kali Linux 2026.2 中的 AI 命令行效率工具
  • 深圳职高学校校企合作
  • 006-目标检测指标解读-Precision-Recall-mAP50与mAP50-95
  • 量子计算:未来真的来了?
  • 联想威6 Pro-13IWL指纹修复:BIOS开启SGX与3款官方驱动安装指南
  • 农业系统职称考试好用的刷题app有哪些?
  • AMAT 0190-32401 通讯模块
  • 系统包管理器和语言级包管理器的区别,及其源配置
  • OpenAI元老约书亚·阿希亚姆离职,上市与重组下安全岗位责任待解
  • 2026年二本统计学专业学习数据分析的实用价值分析
  • gitee私有库不能保存不用于训练AI
  • AI网页信息提取实战:Page Agent原理、调优与工程化落地
  • 物联网卡、流量卡、SIM 卡有什么区别?企业采购前先搞清楚这几点
  • 终局判断:从ERP记录业务到AI Agent参与业务
  • Apache Solr <= 8.8.1 任意文件读取漏洞:3步手工复现与流量特征分析
  • 004 认识网络设备
  • Vyrex-9K 正式发布:新一代智能学习引擎刷新行业性能天花板
  • 宁德时代参投的易控智驾港交所上市,矿区无人驾驶规模化正加速袭来!
  • 局域网传文件还要先下载?ZmLan V1.22S更新:支持在线预览+后台管理,内网沟通效率翻倍
  • 仅限前500名技术负责人开放:ChatGPT+Claude交叉验证效能白皮书(含LLM一致性评估指标LCA-2.0及实测基准数据集)
  • GTP-Image生图怎么描述风格更准?主流 AI 画面控制教程与参数对比
  • 图片Base64本地缓存优化:localStorage方案与3大性能陷阱规避
  • 读懂预训练: 一颗心是怎么长成的
  • 大语言模型创意写作能力评测与优化策略分析
  • AIGC Agent:从单点智能到流程智能的结构性机会