开发者评测|文档智能服务-文档解析(大模型版)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 文档智能服务-文档解析

文档智能(Document Mind)基于多年技术积累打造的多模态文档识别与理解引擎,依托文档智能预训练技术,将非结构化文档解析为结构化数据。目前已上线的文档解析-大模型版对各类版式的文档(电子版和扫描版)进行解析,从文档中提取出层级树和版面信息。可作为大模型预训练、RAG的文档预处理链路,提供高质量、高精度的文档解析服务,能够帮助企业高效地进行大模型应用的场景建设。

您可以在产品控制台可视化页面上传文档进行试用,也可以通过API接口进行调用
(1)实际使用的大模型文档处理场景落地实践
image.png

在我的实际工作中,我使用了阿里云的文档解析(大模型版)服务来支持多个文档处理场景。以下是实践案例:

RAG场景:在处理大量文档时,RAG技术能够帮助我们更有效地从文档中检索信息并生成相关文本。文档解析(大模型版),我们能够更精确地提取文档中的关键信息,进而提升RAG系统的性能。具体来说,通过文档解析服务提取的结构化信息,我们为RAG系统提供了更丰富、更准确的输入,从而提高了生成文本的相关性和质量。

步骤一:调用文档解析(大模型版)异步提交服务

调用submitDocStructureJobAdvance接口,通过fileUrlObject参数实现本地文档上传。

from alibabacloud_docmind_api20220711.client import Client as docmind_api20220711Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220711 import models as docmind_api20220711_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_tea_util import models as util_models
from alibabacloud_credentials.client import Client as CredClient

def submit_file():
      # 使用默认凭证初始化Credentials Client。
    cred=CredClient()
    config = open_api_models.Config(
        # 通过credentials获取配置中的AccessKey ID
        access_key_id=cred.get_access_key_id(),
        # 通过credentials获取配置中的AccessKey Secret
        access_key_secret=cred.get_access_key_secret()
    )
    # 访问的域名
    config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
    client = docmind_api20220711Client(config)
    request = docmind_api20220711_models.SubmitDocParserJobAdvanceRequest(
        # file_url_object : 本地文件流
        file_url_object=open("./example.pdf", "rb"),
        # file_name :文件名称。名称必须包含文件类型
        file_name='123.pdf',
        # file_name_extension : 文件后缀格式。与文件名二选一
        file_name_extension='pdf'
    )
    runtime = util_models.RuntimeOptions()
    try:
        # 复制代码运行请自行打印 API 的返回值
        response = client.submit_doc_parser_job_advance(request, runtime)
        # API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。如下示例为打印返回的业务id格式
        # 获取属性值均以小写开头,
        print(response.body.data.id)
    except Exception as error:
        # 如有需要,请打印 error
        UtilClient.assert_as_string(error.message)

传入文档URL调用方式的请求示例代码如下,调用SubmitDocParserJob接口,通过fileUrl参数实现传入文档URL。请注意,您传入的文档URL必须为公网可访问下载的公网URL地址,无跨域限制,URL不带特殊转义字符。

from alibabacloud_docmind_api20220711.client import Client as docmind_api20220711Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220711 import models as docmind_api20220711_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient

def submit_url():
      # 使用默认凭证初始化Credentials Client。
    cred=CredClient()
    config = open_api_models.Config(
        # 通过credentials获取配置中的AccessKey ID
        access_key_id=cred.get_access_key_id(),
        # 通过credentials获取配置中的AccessKey Secret
        access_key_secret=cred.get_access_key_secret()
    )
    # 访问的域名
    config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
    client = docmind_api20220711Client(config)
    request = docmind_api20220711_models.SubmitDocParserJobRequest(
        # file_url : 文件url地址
        file_url='https://example.com/example.pdf',
        # file_name :文件名称。名称必须包含文件类型
        file_name='123.pdf',
        # file_name_extension : 文件后缀格式。与文件名二选一
        file_name_extension='pdf'
    )
    try:
        # 复制代码运行请自行打印 API 的返回值
        response = client.submit_doc_parser_job(request)
        # API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。如下示例为打印返回的业务id格式
        # 获取属性值均以小写开头,
        print(response.body.data.id)     
    except Exception as error:
        # 如有需要,请打印 error
        UtilClient.assert_as_string(error.message)

正常返回示例

{
   
  "RequestId": "43A29C77-405E-4DC0-BC55-EE694AD0****",
  "Data": {
   
    "Id": "docmind-20240712-b15f****"
  }  
}

步骤二:调用文档解析(大模型版)状态查询服务QueryDocParserStatus接口

调用查询接口的入参ID就是前面异步任务提交接口返回的出参ID,查询结果有status状态和numberOfSuccessfulParsing已处理块。status状态有队列中、处理中、处理成功、处理失败三种情况。

image.png
调用文档解析接口的结果查询类API示例代码如下,调用 接口,通过ID参数传入查询流水号。

from typing import List
from alibabacloud_docmind_api20220711.client import Client as docmind_api20220711Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220711 import models as docmind_api20220711_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient

def query():
      # 使用默认凭证初始化Credentials Client。
    cred=CredClient()
    config = open_api_models.Config(
        # 通过credentials获取配置中的AccessKey ID
        access_key_id=cred.get_access_key_id(),
        # 通过credentials获取配置中的AccessKey Secret
        access_key_secret=cred.get_access_key_secret()
    )
    # 访问的域名
    config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
    client = docmind_api20220711Client(config)
    request = docmind_api20220711_models.QueryDocParserStatusRequest(
        # id :  任务提交接口返回的id
        id='docmind-20220902-824b****'
    )
    try:
        # 复制代码运行请自行打印 API 的返回值
        response = client.query_doc_parser_status(request)
        # API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。获取属性值均以小写开头
        # 获取返回结果。建议先把response.body.data转成json,然后再从json里面取具体需要的值。
        print(response.body.data)
    except Exception as error:
        # 如有需要,请打印 error
        UtilClient.assert_as_string(error.message)

正常返回示例

{
   
  "RequestId": "43A29C77-405E-4DC0-BC55-EE694AD0****",
  "Data": {
   
    "Status": "success",
    "NumberOfSuccessfulParsing": 166
  }  
}

步骤三:调用文档解析(大模型版)结果获取服务GetDocParserResult接口

image.png
调用文档解析接口的结果查询类API示例代码如下。

from typing import List
from alibabacloud_docmind_api20220711.client import Client as docmind_api20220711Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220711 import models as docmind_api20220711_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient

def query():
      # 使用默认凭证初始化Credentials Client。
    cred=CredClient()
    config = open_api_models.Config(
        # 通过credentials获取配置中的AccessKey ID
        access_key_id=cred.get_access_key_id(),
        # 通过credentials获取配置中的AccessKey Secret
        access_key_secret=cred.get_access_key_secret()
    )
    # 访问的域名
    config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
    client = docmind_api20220711Client(config)
    request = docmind_api20220711_models.GetDocParserResultRequest(
        # id :  任务提交接口返回的id
        id='docmind-20220902-824b****',
        layout_step_size=10,
        layout_num=0
    )
    try:
        # 复制代码运行请自行打印 API 的返回值
        response = client.get_doc_parser_result(request)
        # API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。获取属性值均以小写开头
        # 获取返回结果。建议先把response.body.data转成json,然后再从json里面取具体需要的值。
        print(response.body.data)
    except Exception as error:
        # 如有需要,请打印 error
        UtilClient.assert_as_string(error.message)

处理成功的返回结果如下所示

{
   
      "requestId": "4B207147-016E-1F36-A379-4B08F80E6361",
    "data": {
   
        "layouts": [{
   
            "markdownContent": "# KV结构模板-用户白皮书\n",
            "index": 0,
            "subType": "none",
            "text": "KV结构模板-用户白皮书",
            "alignment": "left",
            "type": "title",
            "pageNum": 0,
            "uniqueId": "d69ad26e76859ed45bd75e3c3cc74ff2"
        }, {
   
            "markdownContent": "![cc0451f2018b31ca3e2c2e4cf6579b17.jpeg](http://docmind-api-pre-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicDocStreamStructure/docmind-PRE-20240708-7d12091ced01454689a2d3c81050d5d0/0.png?Expires=1721035172&OSSAccessKeyId=xxxxxxxxx&Signature=Vo9fghzlnmDYYAqB66%2FAlIpTuA4%3D&x-oss-process=image%2Fcrop%2Cx_108%2Cy_211%2Cw_1269%2Ch_7)",
            "index": 1,
            "subType": "none",
            "text": "",
            "alignment": "left",
            "type": "split_line",
            "pageNum": 0,
            "uniqueId": "cc0451f2018b31ca3e2c2e4cf6579b17"
        }, {
   
            "markdownContent": "产品介绍\n",
            "index": 2,
            "subType": "none",
            "text": "产品介绍",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "2a544c4c31da7ad3db1ffd8360209a20"
        }, {
   
            "markdownContent": "产品范围\n",
            "index": 3,
            "subType": "none",
            "text": "产品范围",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "527a96a970ddd98e584999926d7a3a4b"
        }, {
   
            "markdownContent": "产品亮点\n",
            "index": 4,
            "subType": "none",
            "text": "产品亮点",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "7d664615a2cb182e66ad316cc7ea02e3"
        }, {
   
            "markdownContent": "产品步骤\n",
            "index": 5,
            "subType": "none",
            "text": "产品步骤",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "4dc284608402a363e40106a27d1c4a76"
        }, {
   
            "markdownContent": "名词解释\n",
            "index": 6,
            "subType": "none",
            "text": "名词解释",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "f77ae26e9a729c42e2c657bb22780c32"
        }, {
   
            "markdownContent": "具体操作\n",
            "index": 7,
            "subType": "none",
            "text": "具体操作",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "82c733baee90d27978151c0d490d3a55"
        }, {
   
            "markdownContent": "1.模板配置\n",
            "index": 8,
            "subType": "none",
            "text": "1.模板配置",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "79e7218df384d7e5ed3611df2025b494"
        }, {
   
            "markdownContent": "2.数据集与数据标注\n",
            "index": 9,
            "subType": "none",
            "text": "2.数据集与数据标注",
            "alignment": "left",
            "type": "text",
            "pageNum": 0,
            "uniqueId": "d43f8e2bb4138a66ecadc8890a044448"
        }]
    }
}

(2)文档解析(大模型版)服务与其他可视化工具的比较
image.png

应用场景支撑:相比一些仅支持特定格式或类型的可视化工具,文档解析(大模型版)广泛支持市面上几乎全部文档格式
1.包括扫描文档,适应更多样化的业务场景需求。其提供的版面分析、层级树信息等,为构建复杂应用如RAG系统提供了坚实基础。

2.业务流程接入:该服务通过异步API设计,支持灵活的集成方式,无论是URL还是本地文件上传,都能方便快捷地接入现有业务流程。异步处理机制保证了高并发场景下的系统稳定性,避免了同步处理可能带来的延迟问题。

3.性能与可扩展性:文档解析(大模型版)在处理速度上表现出色,尤其电子文档解析速度最快而文档智能解析虽速度较慢,但提供了最全面的解析结果。服务的免费额度和按量付费模式,以及24小时内可查询处理结果的机制,既满足了初期测试需求,也保障了大规模应用时的扩展性和成本控制。

3.可扩展性方面,由于其基于大模型的技术架构,随着模型的持续迭代和优化,文档解析的准确度和效率预期将持续提升,为未来更复杂的文档理解和处理需求预留了发展空间。

综上所述,文档解析(大模型版)以其全面的格式支持、灵活的接入方式、良好的性能表现以及面向未来的可扩展性,在文档处理领域展现了显著优势,特别是在与大模型应用结合的场景下,其价值尤为突出。

image.png

同产品对比:

之前有使用百度智能云的文档解析,以下是阿里云相对于百度智能云的对比:

  1. 大模型技术的应用
    • 阿里云:阿里云的文档解析(大模型版)采用了大模型技术,这使得它在处理复杂文档结构,如图表、公式等元素时,具有更高的解析能力和准确性。
    • 百度智能云:虽然百度智能云的文档解析技术也相当先进,但在大模型技术的应用方面,阿里云可能更具优势。
  2. 处理速度和可扩展性
    • 阿里云:阿里云的服务支持弹性计算资源,可以根据需求快速扩展,处理大量文档时效率更高。
    • 百度智能云:百度智能云的文档解析技术也很高效,但在大规模文档处理和快速扩展方面,阿里云可能表现更佳。
  3. 集成和定制化能力
    • 阿里云:阿里云提供灵活的API接口,更容易与用户现有的系统和服务集成,支持更高级的定制化需求。
    • 百度智能云:虽然百度智能云也提供API接口,但阿里云在集成和定制化方面的灵活性可能更强。
  4. 行业应用广度
    • 阿里云:阿里云的文档解析服务适用于多种行业和场景,如大模型数据训练、智能问答、知识库管理等,应用范围更广。
    • 百度智能云:百度智能云的文档解析技术主要聚焦于特定行业,如法律和医疗健康,虽然在这些领域表现优异,但在其他行业的应用可能不如阿里云广泛。
  5. 平台支持和服务稳定性
    • 阿里云:作为阿里云平台的一部分,文档解析(大模型版)服务享有阿里云强大的技术背景和稳定性保障。
    • 百度智能云:百度智能云同样提供稳定的服务,但阿里云在平台支持和整体服务稳定性方面可能更具优势。

综上所述,阿里云文档解析(大模型版)在应用大模型技术、处理速度和可扩展性、集成和定制化能力、行业应用广度以及平台支持和服务稳定性等方面相对于百度智能云展现出更明显的优势。这些优势使得阿里云成为处理大规模、复杂文档解析任务的优选服务。

待改进之处:

1.成本与资源消耗:虽然按需付费模式灵活,但对于处理大量文档或频繁调用的场景,成本可能会成为考虑因素。优化成本效益比,提供更经济的批量处理方案可能是改进方向。

2.处理速度与实时性:尽管电子文档解析速度快,但复杂文档的智能解析可能较为耗时,对于需要即时反馈的应用场景,如何进一步提升处理速度是一个挑战。
针对成本敏感型客户、实时处理需求、用户友好性及定制化需求方面,仍有提升空间。

相关文章
|
1天前
|
存储 算法 API
文档解析(大模型版)能力对比测评
文档解析(大模型版)能力对比测评
|
4天前
|
机器学习/深度学习 Java API
阿里云文档智能解析——大模型版能力最佳实践与体验评测
阿里云文档智能解析(大模型版)在处理非结构化数据方面表现优异,尤其是在性能和可扩展性上具有明显优势。虽然存在一些待完善之处,但其强大的基础能力和广泛的适用场景使其成为企业数字转型过程中的有力助手。随着技术的不断进步和完善,相信它会在更多领域展现出更大的价值。
25 5
阿里云文档智能解析——大模型版能力最佳实践与体验评测
|
4天前
|
文字识别 算法 API
文档解析(大模型版)能力测评
文档解析(大模型版)能力测评
24 8
|
4天前
|
人工智能 自然语言处理 监控
文档解析(大模型版)能力最佳实践测评
文档解析(大模型版)能力最佳实践测评
22 7
|
14天前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
|
14天前
|
域名解析 网络协议
DNS服务工作原理
文章详细介绍了DNS服务的工作原理,包括FQDN的概念、名称解析过程、DNS域名分级策略、根服务器的作用、DNS解析流程中的递归查询和迭代查询,以及为何有时基于IP能访问而基于域名不能访问的原因。
30 2
|
17天前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
41 0
|
17天前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
24 0
|
17天前
|
数据处理 开发者
深入解析Angular服务:构建可重用业务逻辑的最佳实践与模式——从基础创建到高级异步处理的全面指南
【8月更文挑战第31天】在Angular开发中,服务用于封装可重用的业务逻辑,有助于保持代码的DRY原则。本文详细介绍如何创建和使用服务,包括基础设置、逻辑封装及高级应用,如HTTP请求和异步数据处理,帮助你构建模块化、易维护的应用。通过示例展示,你将学会如何充分利用服务提升开发效率。
21 0
|
17天前
|
JSON API 数据库
探索FastAPI:不仅仅是一个Python Web框架,更是助力开发者高效构建现代化RESTful API服务的神器——从环境搭建到CRUD应用实战全面解析
【8月更文挑战第31天】FastAPI 是一个基于 Python 3.6+ 类型提示标准的现代 Web 框架,以其高性能、易用性和现代化设计而备受青睐。本文通过示例介绍了 FastAPI 的优势及其在构建高效 Web 应用中的强大功能。首先,通过安装 FastAPI 和 Uvicorn 并创建简单的“Hello, World!”应用入门;接着展示了如何处理路径参数和查询参数,并利用类型提示进行数据验证和转换。
32 0

热门文章

最新文章

推荐镜像

更多