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

本文涉及的产品
.cn 域名,1个 12个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 文档智能服务-文档解析

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

相关文章
文档智能服务功能评测
评测第二部分 文档解析(大模型版)服务体验评测
|
19天前
|
存储 算法 API
文档解析(大模型版)能力对比测评
文档解析(大模型版)能力对比测评
115 41
|
6天前
|
开发工具 Python
文档解析(大模型版)之初体验
该文档介绍如何使用阿里云文档智能解析服务,包括样式效果、在线文档和Python SDK调用方法。提供了处理本地及在线文件的具体示例代码,并指导如何安装依赖包、配置身份认证以及设置超时参数等关键步骤。
|
12天前
|
文字识别 算法 API
阿里云文档解析(大模型版)优化
阿里云文档解析(大模型版
|
18天前
|
JSON 达摩院 Java
大模型时代下的文档智能 | 文档解析(大模型版)
文档智能(Document Mind)是基于阿里巴巴达摩院技术打造的多模态文档识别与理解引擎,提供通用文档智能、行业文档智能和文档自学习能力,满足各类智能文档处理需求。尤其在企业中,它能有效处理文本、图片、扫描件等多种非结构化文档,释放数据价值。本文将介绍文档智能的应用场景、产品架构及其核心功能——文档解析(大模型版),并展示其在线体验与API接口调用方法。
|
17天前
|
自然语言处理 数据可视化 BI
文档解析(大模型版)服务体验评测
体验文档解析(大模型版)服务时,清晰的入门指南、操作手册和FAQ至关重要。若存在不足,需增加直观的操作流程说明(如动画演示)、深化高级功能文档,并提供实时在线支持,帮助用户快速解决问题。
|
17天前
|
人工智能 自然语言处理 API
文档智能服务评测
文档解析(大模型版)服务在多种场景下展现出强大功能。在RAG模型优化中,它将非结构化法律文档快速转换为结构化数据,提高信息检索效率。应用于企业知识库管理时,自动提取关键信息并映射至知识库,简化管理流程。在智能问答系统中,它增强了文档理解能力,提升了响应速度和复杂查询处理能力。该服务支持多种文档格式,提供丰富API和SDK,便于集成到现有业务流程中。性能测试显示其处理速度快且准确,具备良好的可扩展性。产品内有详细操作指南,但建议增加更多示例和教程。未来可与阿里云NLP等服务联动,进一步提升文档处理能力。
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
2月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
58 6
|
21天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面