首页 >科技周边 >人工智能 >使用LlamainDex的多模式财务报告生成

使用LlamainDex的多模式财务报告生成

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原创
2025-03-09 12:45:12152浏览

在许多现实世界应用中,数据并不纯粹是文本的,其中可能包括图像,表和图表,这些图表和图表有助于加强叙述。多模式报告生成器允许您将文本和图像同时合并到最终输出中,从而使您的报告更具动态性和视觉上的丰富。

本文概述了如何使用以下方式构建这样的管道

    > llamaindex
  • 用于编排文档解析和查询引擎,
  • openai
  • 文本分析的语言模型,
  • llamaparse
  • 从pdf文档中提取文本和图像, >使用
  • a arize phoenix的可观察性设置(通过llamaTrace)
  • 进行记录和调试。
  • 最终结果是可以处理整个PDF幻灯片甲板(包括文本和视觉效果)的管道,并生成包含文本和图像的结构化报告。
>

学习目标

了解如何使用多模式管道整合有效的财务报告生成文本和视觉效果。
  • 学习利用Llamaindex和Llamaparse来增强结构化产出的财务报告。
  • 探索llamaparse,以有效地从PDF文档中提取文本和图像。
  • >使用Arize Phoenix(通过LlamaTrace)来设置可观察性,以记录和调试复杂管道。
  • 创建一个结构化查询引擎,以生成与视觉元素相互交织的报告。
  • >本文是

> > data Science Blogathon的一部分。 目录的>>

概述该过程的概述

    >
  • >逐步实现
    • 步骤1:安装和导入依赖关系
    • 步骤2:设置可观察性>
    • 步骤3:加载数据 - 加载您的slide can 设置🎜 5:用Llamaparse
    • 进行解析,步骤6:关联文本和图像
    • >
    • >步骤7:构建摘要索引索引
    • 步骤8:定义结构化的输出架构
    >该过程的概述
  • 构建多模式报告生成器涉及创建一条管道,该管道无缝地集成了来自PDF等复杂文档的文本和视觉元素。该过程始于安装必要的库,例如用于文档解析和查询编排的LlamainDex,以及用于提取文本和图像的Llamaparse。使用Arize Phoenix(通过Llamatrace)来监视和调试管道。

    >设置完成后,管道将处理PDF文档,将其内容解析到结构化文本中,并渲染诸如表和图表之类的视觉元素。然后关联了这些解析的元素,创建一个统一的数据集。构建了一个摘要,以启用高级见解,并开发了结构化的查询引擎,以生成将文本分析与相关视觉效果融合的报告。结果是一个动态和交互式报告生成器,该生成器将静态文档转换为用于用户查询的丰富的多模式输出。

    >

    >逐步实现

    >按照本详细指南构建多模式报告生成器,从设置依赖项到使用集成的文本和图像生成结构化输出。每个步骤都确保Llamaindex,Llamaparse和Arize Phoenix的无缝整合,以进行有效而动态的管道。

    步骤1:安装和导入依赖项

    >

    您需要在Python 3.9.9上运行的以下库:>

    • llama-index
    • llama-parse (用于文本图像解析)>
    • llama-index-callbacks-arize-phoenix(用于可观察性/登录)
    • > nest_asyncio(处理笔记本中的异步事件循环)
    !pip install -U llama-index-callbacks-arize-phoenix
    
    import nest_asyncio
    
    nest_asyncio.apply()
    >步骤2:设置可观察性

    我们与LlamaTrace - Llamacloud API(Arize Phoenix)集成。首先,从llamatrace.com获取API键,然后设置环境变量以将痕迹发送到凤凰。 可以通过在此处注册Llamatrace,然后导航到左下面板,然后单击“键”,在此处找到API键。

    例如:

    步骤3:加载数据 - 获取幻灯片甲板

    PHOENIX_API_KEY = "<PHOENIX_API_KEY>"
    os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
    llama_index.core.set_global_handler(
        "arize_phoenix", endpoint="https://llamatrace.com/v1/traces"
    )
    进行示范,我们使用Conocophillips的2023年投资者会议幻灯片。我们下载了PDF:

    >检查PDF幻灯片是否在数据文件夹中,如果不将其放在数据文件夹中并按照您的要求命名。

    import os
    import requests
    
    # Create the directories (ignore errors if they already exist)
    os.makedirs("data", exist_ok=True)
    os.makedirs("data_images", exist_ok=True)
    
    # URL of the PDF
    url = "https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf"
    
    # Download and save to data/conocophillips.pdf
    response = requests.get(url)
    with open("data/conocophillips.pdf", "wb") as f:
        f.write(response.content)
    
    print("PDF downloaded to data/conocophillips.pdf")
    >步骤4:设置模型

    >您需要嵌入模型和LLM。在此示例中:

    接下来,您将其注册为LlamainDex的默认值:>

    from llama_index.llms.openai import OpenAI
    from llama_index.embeddings.openai import OpenAIEmbedding
    embed_model = OpenAIEmbedding(model="text-embedding-3-large")
    llm = OpenAI(model="gpt-4o")
    步骤5:用llamaparse

    解析文件 Llamaparse可以提取文本和图像(通过多模式大型模型)提取文本和图像。对于每个PDF页面,它返回:

    from llama_index.core import Settings
    Settings.embed_model = embed_model
    Settings.llm = llm

    markdown Text

    (带表,标题,子弹点等)

      渲染图像
    • (本地保存)>
    print(f"Parsing slide deck...")
    md_json_objs = parser.get_json_result("data/conocophillips.pdf")
    md_json_list = md_json_objs[0]["pages"]

    使用LlamainDex的多模式财务报告生成

    print(md_json_list[10]["md"])

    !pip install -U llama-index-callbacks-arize-phoenix
    
    import nest_asyncio
    
    nest_asyncio.apply()

    使用LlamainDex的多模式财务报告生成

    >步骤6:关联文本和图像

    >

    我们为每个页面创建一个>> textnode 对象的列表(LlamainDex的数据结构)。每个节点都有有关页码和相应图像文件路径的元数据:

    PHOENIX_API_KEY = "<PHOENIX_API_KEY>"
    os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
    llama_index.core.set_global_handler(
        "arize_phoenix", endpoint="https://llamatrace.com/v1/traces"
    )

    使用LlamainDex的多模式财务报告生成

    >步骤7:构建摘要索引

    手里拿着这些文本节点,您可以创建一个摘要:

    摘要确保您可以轻松地检索或生成整个文档上的高级摘要。
    import os
    import requests
    
    # Create the directories (ignore errors if they already exist)
    os.makedirs("data", exist_ok=True)
    os.makedirs("data_images", exist_ok=True)
    
    # URL of the PDF
    url = "https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf"
    
    # Download and save to data/conocophillips.pdf
    response = requests.get(url)
    with open("data/conocophillips.pdf", "wb") as f:
        f.write(response.content)
    
    print("PDF downloaded to data/conocophillips.pdf")
    >步骤8:定义结构化输出模式

    我们的管道旨在产生带有交织的文本块和图像块的最终输出。为此,我们创建了一种自定义的pydantic模型(使用Pydantic V2或确保兼容性),具有两种块类型-e

    textblock

    > imageBlock - 和一个父母模型 关键点:

    reportOutput from llama_index.llms.openai import OpenAI from llama_index.embeddings.openai import OpenAIEmbedding embed_model = OpenAIEmbedding(model="text-embedding-3-large") llm = OpenAI(model="gpt-4o")

    需要至少一个图像块,确保最终答案是多模式的。> >步骤9:创建一个结构化查询引擎 LlamainDex llamaindex允许您使用“结构化的LLM”(即,将输出自动解析为特定模式的LLM)。以下是:

    from llama_index.core import Settings
    Settings.embed_model = embed_model
    Settings.llm = llm

    使用LlamainDex的多模式财务报告生成

    print(f"Parsing slide deck...")
    md_json_objs = parser.get_json_result("data/conocophillips.pdf")
    md_json_list = md_json_objs[0]["pages"]

    使用LlamainDex的多模式财务报告生成

    print(md_json_list[10]["md"])

    使用LlamainDex的多模式财务报告生成结论

    通过将LlamainDex,Llamaparse和OpenAI结合使用,您可以构建一个多模式报告生成器,该报表生成器将整个PDF(带有文本,表格和图像)处理到结构化输出中。这种方法可提供更丰富,更具视觉上信息的结果,这是利益相关者需要从复杂的公司或技术文档中获得关键见解的哪些。

    >可以随意将此管道适应您自己的文档,为大型档案添加检索步骤,或集成特定领域的模型以分析基础图像。在这里铺设的基础,您可以创建动态,互动和视觉上丰富的报告,这些报告远远超出了简单的基于文本的查询。 使用LlamainDex的多模式财务报告生成非常感谢Llamaindex的Jerry Liu开发了这款惊人的管道。

    钥匙要点

    • >使用文本和视觉效果将PDF转换为结构化格式,同时使用Llamaparse和Llamaindex保留原始内容的完整性。
    • 生成视觉丰富的报告,这些报告与文本摘要和图像相互交织,以更好地理解。
    • 通过整合文本和视觉元素以获得更具洞察力和动态的输出,可以增强财务报告的生成。> 利用Llamaindex和Llamaparse的利用,简化了财务报告的过程,确保了准确且结构化的结果。
    • 在处理之前检索相关文档,以优化大型档案的报告生成。
    • 改善视觉解析,结合特定图表的分析,并结合文本和图像处理的模型,以进行更深入的见解。
    • 常见问题
    • > Q1。什么是“多模式报告生成器”?多模式报告生成器是一个系统,该系统在一个有凝聚力的输出中生成包含多种类型的内容(主要文本和图像)的报告。在此管道中,您将PDF解析为文本和视觉元素,然后将它们组合成一个最终报告。为什么我需要安装Llama-index-callbacks-arize-phoenix并设置可观察性?诸如Arize Phoenix(通过Llamatrace)之类的可观察性工具可让您监视和调试模型行为,跟踪查询和响应,并实时确定问题。在处理大型或复杂文档和多个基于LLM的步骤时,这一点尤其有用。为什么要使用Llamaparse而不是标准的PDF文本提取器? 大多数PDF文本提取器仅处理原始文本,通常会丢失格式,图像和表格。 Llamaparse能够提取文本和图像(渲染的页面图像),这对于构建多模式管道至关重要,您需要在其中引用表,图表或其他视觉效果。使用summaryIndex的优点是什么? SummaryIndex是LlamainDex抽象,它组织您的内容(例如PDF的页面),因此它可以快速生成全面的摘要。它有助于从长文档中收集高级见解,而无需手动块或为每个数据运行检索查询。我如何确保最终报告至少包含一个图像块?
    • a。在ReportOutput Pydantic模型中,强制执行块列表至少需要一个ImageBlock。这在您的系统提示和架构中说明了这一点。 LLM必须遵循这些规则,或者不会产生有效的结构化输出。

    >本文所示的媒体不归Analytics Vidhya拥有,并由作者的酌情决定使用。

以上是使用LlamainDex的多模式财务报告生成的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn