AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


打造自己的RAG解析大模型:(可商用)智能文档服务上线部署
发布日期:2024-10-27 06:47:12 浏览次数: 1679 来源:真聊技术



在上一篇文章中,我们体验了百度智能文档解析方案,并使用PaddleX低代码工具实现了表格识别模块的应用集成体验。本篇将深入探讨如何发布智能文档解析服务,以及如何构建API集成。我们以通用版面分析服务为例,介绍从模型发布到API集成的完整流程。这个过程不仅展示了文档服务的部署方法,还体现了飞桨平台在简化AI应用开发方面的便捷性,为开发人员提供了快速创建商用级文档解析服务的途径

通用版面分析介绍

版面解析是一种将文档图像转化为机器可读数据格式的技术,广泛应用于文档管理和信息提取等领域。通过结合OCR、图像处理和机器学习,版面解析能够识别文档中的文本块、图片、表格等版面元素,最终生成结构化数据,大大提高了数据处理的效率和准确性。典型的通用版面解析流程包括表格识别、版面区域分析、文本检测、公式识别等模块,帮助实现从简单文本到复杂文档的全面信息提取。这种技术为企业和数据密集型行业带来了显著的效益,提升了自动化文档处理的能力。

服务化部署

服务化部署是生产环境中高效、灵活的部署方式,通过将推理模型打包为独立服务,客户端可以通过网络请求访问,获取实时推理结果。这种方式不仅减少了部署难度,还使得模型的扩展和更新更加便捷,适合需求多变的业务场景。PaddleX 支持低成本地实现产线级服务化部署,用户可快速集成模型推理服务,从而满足多种应用需求。这种方式特别适合需要高可用性和可扩展性的场景,如智能客服、图像分析等。

服务化部署示例图:

用户可以灵活选择要发布的模型模块,这些模型会通过 HTTP 协议作为接口发布,实现服务化部署,便于应用端直接调用,完成文档识别和解析。这样不仅简化了模型集成的流程,还提升了系统的可扩展性。无论是文本识别、表格解析,还是版面分析等功能,都能以标准化的服务形式供前端调用,为业务系统提供更稳定、高效的文档处理能力。

服务发布具体步骤

1、安装服务化部署插件

执行如下指令,安装服务化部署插件:

paddlex --install serving
2、启动服务

通过 PaddleX CLI 启动服务,指令格式为:

paddlex --serve --pipeline {产线名称或产线配置文件路径} [{其他命令行选项}]

以通用版面解析产线为例:

paddlex --serve --pipeline layout_parsing

服务启动成功后,可以看到类似如下展示的信息:

INFO: Started server process [63108]INFO: Waiting for application startup.INFO: Application startup complete.INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
--pipeline可指定为官方产线名称或本地产线配置文件路径。PaddleX 以此构建产线并部署为服务。 与服务化部署相关的命令行选项如下:
名称说明
--pipeline产线名称或产线配置文件路径。
--device产线部署设备。默认为 cpu(如 GPU 不可用)或 gpu(如 GPU 可用)。
--host服务器绑定的主机名或 IP 地址。默认为0.0.0.0。
--port服务器监听的端口号。默认为8080。
--use_hpip如果指定,则启用高性能推理插件。
--serial_number高性能推理插件使用的序列号。只在启用高性能推理插件时生效。请注意,并非所有产线、模型都支持使用高性能推理插件,详细的支持情况请参考PaddleX 高性能推理指南。
--update_license如果指定,则进行联网激活。只在启用高性能推理插件时生效。
至此通用版面解析的服务发布成功,发布URL如下:
http://localhost:8080/layout-parsing
应用集成

在成功发布模型服务后,接下来的关键任务是构建自定义的解析应用层。这个层级可以根据具体的业务需求,进一步处理模型返回的解析结果。通过应用级别的操作,我们可以更灵活地对文字和表格数据进行拆分、聚合等操作,特别是针对 RAG(检索增强生成)场景的需求,将数据转化为向量化存储格式。这种设计不仅提升了文档解析的精度和效率,还为业务场景提供了可扩展的、个性化的数据处理能力。

以下是Python语言实现的应用基础代码示例:

import base64import requests
API_URL = "http://localhost:8080/layout-parsing" # 服务URL
# 对本地图像进行Base64编码with open(image_path, "rb") as file:image_bytes = file.read()image_data = base64.b64encode(image_bytes).decode("ascii")
payload = {"file": image_data, # Base64编码的文件内容或者文件URL"fileType": 1,"useImgOrientationCls": True,"useImgUnwrapping": True,"useSealTextDet": True,}
# 调用APIresponse = requests.post(API_URL, json=payload)
# 处理接口返回数据assert response.status_code == 200result = response.json()["result"]print("\nDetected layout elements:")for res in result["layoutParsingResults"]:for ele in res["layoutElements"]:print("===============================")print("bbox:", ele["bbox"])print("label:", ele["label"])print("text:", repr(ele["text"]))

这是一个简单的模型服务调用示例,而在实际的 RAG 系统中,我们会进一步优化这种服务调用方式。通常会设计一个独立的类来处理模型调用和结果解析,以实现解耦和模块化。这种封装方式不仅使代码更具可读性和可维护性,也更便于扩展多样化的业务场景。通过这样的架构设计,应用端可以灵活调用服务,适应更复杂的文档解析需求,并在业务逻辑上实现更高的自定义和优化。

总结

通过PaddleX快速发布模型,并构建集成系统,为RAG系统提供一套智能文档识别平台,是一个具有商业潜力的应用模式。这种模式不仅能提高信息处理效率,还能为不同行业提供个性化支持。然而,百度飞桨提供的通用模型可能无法覆盖各行各业的独特需求,因此企业可以利用飞桨平台的训练功能,基于自有数据进行模型微调或重训,以确保模型准确适配特定业务场景,实现更高的识别精度和服务价值。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询