合合信息DocFlow产品解析与体验:人人可搭建的AI自动化单据处理工作流 ...

打印 上一主题 下一主题

主题 815|帖子 815|积分 2445

在信息化与全球化迅速发展的本日,企业面临着海量文档的管理与处理寻衅。无论是传统的纸质文档,还是图片、PDF等多种新型文件格式,在举行数据汇总时都必要投入大量人力。传统的手工录入与管理方式不仅效率低下,且轻易出错,难以满足现代企业对高效、精准和智能化办公的需求。于是,OCR技术应运而生。基于深度学习算法的文本识别,大大提升了录入职员的工作效率。
作为国内OCR领域深耕多年的企业,合合信息推出的TextIn平台堪称神奇,识别准确率接近百分之百。我本人也经常利用TextIn平台处理各类文件。然而,尽管市面上已有很多成熟的OCR技术帮助提取文档信息,处理大量文件时仍旧令人头疼。因为很多单子、合同、试卷等常见文本并没有统一的格式,利用OCR识别后每每会得到大量冗余文本,而这些内容并非全部必要。
在这种情况下,大家可能会希望有一款能够一键识别并分析、选择性提取所需信息的文本工具。幸运的是,TextIn平台近日推出了一款革命性的文档自动化工具——合合信息DocFlow,完善满足了这些需求。
产品官网:https://cc.co/16YSNS
Docflow内测体验官招募中,通过链接注册,享有免费权益噢!
内测体验入口:https://cc.co/16YSNT

一、DocFlow产品简介

DocFlow,顾名思义,是一款文本处理的工作流系统,传统的OCR识别只有文本录入和返回结果这两个环节,而DocFlow则是将一切能够提升我们实践效果的功能全部集合了起来,让我们能够更省心的得到我们想要的结果。
好比,下面是一张机动车销售发票的照片:

在DocFlow出现之前,通常我们会选择先对这个车票照片举行OCR识别,进而得出上面所有的文本信息。但是得到的信息除了识别精度很低以外,本身的排序也是非常混乱,险些无法利用,好比下面这种效果:

这种效果是我们完全不能接受的,我们很必要一款能够精准识别,并且按照具体对应的条目返回给我们的OCR神器,也许在不久前这种想法会被嘲笑痴人说梦,但如今DocFlow帮助我们轻松实现了。
我们访问DocFlow的产品体验界面,将发票照片上传,可以看到右面显示出了精准识别出的且一一对应的明细内容,不仅没有遗漏,而且也没有识别错误,这种识别精度真的是强的可怕!

放大点,给大伙看看~

(已对敏感信息举行隐蔽处理)
然后这还只是DocFlow的其中一小段功能,DocFlow可不仅仅是OCR,而是一个成熟的一站式工作流产品。
DocFlow 是 TextIn 旗下的一款先进的文档自动化处理工具,专为企业提供文档分类与关键要素提取的一站式解决方案。依托于 TextIn 行业领先的文档解析与理解能力,DocFlow 能够轻松处理全球范围内各类文档类型与复杂版式,无论是单子、卡证,还是合同、文件,均可实现高精度的分类与关键要素提取,并快速整合至业务流程中。
DocFlow 通过五个焦点环节构建一个统一的 ”采、管、算、审、用” 影像布局化能力服务体系:
环节
步骤
描述
采(采集)
影像采集
通过多渠道集成,统一归集企业影像数据。
管(管理)
影像分类
基于用户、影像类型、安全级别等维度举行影像分级分类。
算(计算)
影像识别
利用AI技术实现影像布局化信息的识别与抽取。
审(检察)
影像考核
通过元数据、文本内容等建立深层次影像关联,提升数据的可用性。
用(应用)
影像应用
为报账、CMS、资产管理等业务系统提供影像采集、搜刮、调阅服务。


二、DocFlow操作流程

下面,我们具体讲述一下DocFlow操作流程的六个阶段:

1. 输入文档

DocFlow支持多种方式导入文档,满足不同企业的需求:
功能名称功能描述扫描上传通过扫描设备批量导入纸质单据,支持多种文件格式(如OFD、PNG、JPG、JPEG、DOC、DOCX、XLSX、XLS等)。邮箱收取通过邮箱助手自动导入邮件中的附件,简化邮件文档的管理流程。API调用通过开放的API接口,实现与企业业务系统的无缝对接,自动化数据采集。SFTP定时、SMB共享、OneDrive、SharePoint等支持多种数据采集方式,确保数据获取的机动性和全面性。RPA接入对于无法开通接口的业务系统,支持通过RPA工具获取影像数据,与DocFlow实现接口对接。

2. 文件质量优化

在文档采集过程中,DocFlow通过先进的图像处理技术,优化文档图像质量,提升后续识别的准确性和效率:


  • 边沿检测与切边压缩:自动裁剪文档边沿,减少无关信息,提高图像质量。
  • 增强锐化与曲面矫正:提升图像清楚度,纠正文档倾斜,确保笔墨的可读性。
  • 阴影消除与去摩尔纹:去除文档中的阴影和干扰线条,优化图像背景。
  • 多图切分与水印去除:支持将多页文档拆分为单页图像,自动去除水印,保证数据的完整性。

3. 文档分类

DocFlow内置强大的文档分类功能,支持自动将文档归类到相应的种别中,减少手工分类的工作量:


  • 自动分类:系统根据预设的分类模型自动识别文档类型,支持国内票、海外票等多种单子类型的自动分类。
  • 机动设置:用户可通过上传样本文件或设置分类关键字,自定义分类模型,满足不同业务需求。
  • 无定义分类处理:对于无法自动分类的文档,系统将其归类到“undefined”或“other”种别,用户可手工调整分类规则,提高分类准确性。

4. 数据导出应用

DocFlow支持将布局化的数据导出到指定的业务系统中,支持多种数据格式和接口:好比XML、JSON、EXCEL等格式。
5. 人工确认验证

在必要时,DocFlow提供人工考核功能,确保数据的准确性和完整性:


  • 详情页面展示:提供文件列表、内容预览窗口、KV字段抽取内容和表格信息抽取内容四部分,便于用户检察和核对。
  • 分类信息核对:用户可核对文档分类是否正确,必要时可手动更正分类。
  • 抽取信息核对:支持内容定位与核对、展示隐蔽信息、内容快速选择、自定义添加字段等功能,确保数据的准确性。
  • 业务考核操作:用户可对文件举行确认、拒绝或推迟处理,支持多级考核流程,确保数据的正当性和合规性。

6. 抽取定位显示

DocFlow通过直观的方式展示抽取的关键字段,支持用户自定义字段和调整抽取结果:


  • 字段定位:系统自动框选出字段地点位置,用户可直观检察和编辑。
  • 自定义字段:用户可根据业务需求添加或修改字段,系统基于语义理解自动抽取数据。
  • 多页文档支持:支持跨页字段的抽取,确保数据的完整性和准确性。

三、DocFlow在线体验

为了帮助用户更好地体验DocFlow的强大功能,TextIn现在招募内测用户,添加TextIn福利官,免费领取1000次试用名额!(名额有限,先加先得)
报名入口:https://cc.co/16YSNT
下面,我们开始实际体验一下,以某广告合同为例。
1. 上传文件

上传合同图片,利用通用合同的模板,可以看到右侧出现了DocFlow解析出来的信息。

细致观察信息我们不难发现,由于通用合同模板的范围性,我们没有分别读取甲方和乙方各自的信息。这时间,就必要我们去创建一个新的针对性的模板。
2. 新增种别

创建新种别:甲乙双方合同

点击右侧自动填充,一键识别关键字段,基本上可以做到全覆盖,如果尚有必要添加的可以手动点击文本处添加,字段添加后效果如图。

完成后点击保存。首页在我们创建的新种别里重写上传合同。

3. 利用新种别识别

可以看到识别结果的针对性增强了很多。

如果有些我们必要但是没有出现在模板里的字段,我们可以点击新增字段来举行框选。

当我们认为识别无误了,我们点击确认。这篇文档的核对状态会更新为已确认。

除了确认之外,也可以推迟处理大概驳回。

四、API调用DocFlow

DocFlow提供了丰富的API接口,支持开发者通过编程方式与DocFlow举行集成,实现自动化的数据采集和处理。
现在提供的三个接口如下:


  • 上传文件POST
  • 获取文件处理结果列表GET
  • 更新文件处理结果POST
调用接口必要设置利用TextIn账号。请在TextIn上注册后,在TextIn首页-账户与充值-账号与开发者信息页面获取 x-ti-app-idx-ti-secret-code,用于请求认证。
1. DocFlow API综合案例

我们结合现有的接口,实现一个从上传文件到获取识别结果的综合案例。
  1. from requests_toolbelt.multipart.encoder import MultipartEncoder
  2. import hashlib
  3. import hmac
  4. import time
  5. import requests
  6. import os
  7. import json
  8. # 配置您的认证信息
  9. ti_app_id = "97135787*****************ef0f5c"
  10. ti_secret_code = "2d5b5b************************dde26a0"
  11. # 配置参数
  12. FILE_PATH = "sample.pdf"  # 要上传的文件路径
  13. WORKSPACE_ID = "1851520358480039936"  # 替换为实际的workspace_id
  14. CATEGORY = "采购订单"  # 替换为实际的category
  15. def generate_signature(http_method, url, params, payload_raw, ti_secret_code, epoch_time):
  16.     """
  17.     生成签名的函数
  18.     """
  19.     # 生成签名密钥
  20.     signing_key = hmac.new(ti_secret_code.encode('utf-8'), str(epoch_time).encode('utf-8'), hashlib.sha256).digest()
  21.    
  22.     # 计算payload的哈希值
  23.     if payload_raw:
  24.         payload_hash = hashlib.sha256(payload_raw).hexdigest()
  25.     else:
  26.         payload_hash = hashlib.sha256(b'').hexdigest()
  27.    
  28.     # 构建字符串以进行签名
  29.     sorted_params = '&'.join(f'{k}={v}' for k, v in sorted(params.items()))
  30.     string_to_sign = f"{http_method}\n{url}\n{sorted_params}\n{payload_hash}"
  31.    
  32.     # 生成签名
  33.     signature = hmac.new(signing_key, string_to_sign.encode('utf-8'), hashlib.sha256).hexdigest()
  34.    
  35.     return signature
  36. def upload_file(ti_app_id, ti_secret_code, file_path, workspace_id, category):
  37.     """
  38.     上传文件到DocFlow接口,并返回file_id
  39.     """
  40.     # API 端点
  41.     url = "/api/app-api/sip/platform/v2/file/upload"
  42.    
  43.     # 查询参数
  44.     params = {
  45.         "workspace_id": workspace_id,
  46.         "category": category
  47.     }
  48.    
  49.     # 当前时间戳
  50.     epoch_time = int(time.time())
  51.    
  52.     # 构建multipart/form-data的payload
  53.     payload = MultipartEncoder(
  54.         fields={
  55.             "file": (os.path.basename(file_path), open(file_path, "rb"), "application/pdf"),
  56.         }
  57.     )
  58.    
  59.     payload_raw = payload.to_string()
  60.    
  61.     # 生成签名
  62.     signature = generate_signature(
  63.         http_method="POST",
  64.         url=url,
  65.         params=params,
  66.         payload_raw=payload_raw,
  67.         ti_secret_code=ti_secret_code,
  68.         epoch_time=epoch_time
  69.     )
  70.    
  71.     # 打印调试信息
  72.     print("=== 文件上传签名信息 ===")
  73.     print(f"epoch_time: {epoch_time}")
  74.     print(f"http_method: POST")
  75.     print(f"string_to_sign: POST\n{url}\n{'&'.join(f'{k}={v}' for k, v in sorted(params.items()))}\n{hashlib.sha256(payload_raw).hexdigest()}")
  76.     print(f"signature: {signature}\n")
  77.    
  78.     # 设置请求头
  79.     headers = {
  80.         "Content-Type": payload.content_type,
  81.         "x-ti-app-id": ti_app_id,
  82.         "x-ti-timestamp": str(epoch_time),
  83.         "x-ti-signature": signature
  84.     }
  85.    
  86.     # 发送POST请求上传文件
  87.     try:
  88.         response = requests.post(
  89.             url=f"https://docflow.textin.com{url}",
  90.             params=params,
  91.             data=payload_raw,
  92.             headers=headers
  93.         )
  94.         response.raise_for_status()  # 检查是否有HTTP错误
  95.         print("上传成功!响应内容:")
  96.         response_json = response.json()  # 假设返回的是JSON格式
  97.         print(response_json)
  98.         
  99.         # 提取file_id
  100.         if response_json.get('code') == 200:
  101.             files = response_json.get('result', {}).get('files', [])
  102.             batch_number = response_json.get('result', {}).get('batch_number')
  103.             if batch_number:
  104.                 print(f"提取到的batch_number: {batch_number}")
  105.                 return batch_number
  106.             else:
  107.                 print("响应中未找到文件信息。")
  108.                 return None
  109.         else:
  110.             print(f"上传失败,消息: {response_json.get('msg')}")
  111.             return None
  112.     except requests.exceptions.HTTPError as http_err:
  113.         print(f"HTTP错误发生: {http_err}")
  114.         print(f"响应内容: {response.text}")
  115.         return None
  116.     except Exception as err:
  117.         print(f"其他错误发生: {err}")
  118.         return None
  119. def fetch_results(ti_app_id, ti_secret_code, workspace_id, batch_number):
  120.     """
  121.     获取上传文件的查询结果
  122.     """
  123.     # API 端点
  124.     url = "/api/app-api/sip/platform/v2/file/fetch"
  125.    
  126.     # 查询参数
  127.     params = {
  128.         "workspace_id": workspace_id,
  129.         "batch_number": batch_number
  130.     }
  131.    
  132.     # 当前时间戳
  133.     epoch_time = int(time.time())
  134.    
  135.     # GET请求通常没有payload
  136.     payload_raw = b''
  137.    
  138.     # 生成签名
  139.     signature = generate_signature(
  140.         http_method="GET",
  141.         url=url,
  142.         params=params,
  143.         payload_raw=payload_raw,
  144.         ti_secret_code=ti_secret_code,
  145.         epoch_time=epoch_time
  146.     )
  147.    
  148.     # 设置请求头
  149.     headers = {
  150.         "x-ti-app-id": ti_app_id,
  151.         "x-ti-timestamp": str(epoch_time),
  152.         "x-ti-signature": signature
  153.     }
  154.         
  155.     # 发送GET请求获取结果
  156.     try:
  157.         response = requests.get(
  158.             url=f"https://docflow.textin.com{url}",
  159.             params=params,
  160.             headers=headers
  161.         )
  162.         response.raise_for_status()  # 检查是否有HTTP错误
  163.         response_json = response.json()  # 假设返回的是JSON格式
  164.         return response_json
  165.     except requests.exceptions.HTTPError as http_err:
  166.         print(f"HTTP错误发生: {http_err}")
  167.         print(f"响应内容: {response.text}")
  168.         return None
  169.     except Exception as err:
  170.         print(f"其他错误发生: {err}")
  171.         return None
  172. if __name__ == "__main__":
  173.    
  174.     # 检查文件是否存在
  175.     if not os.path.isfile(FILE_PATH):
  176.         print(f"文件 {FILE_PATH} 不存在。请确保文件路径正确。")
  177.     else:
  178.         # 上传文件并获取batch_number
  179.         batch_number = upload_file(
  180.             ti_app_id=ti_app_id,
  181.             ti_secret_code=ti_secret_code,
  182.             file_path=FILE_PATH,
  183.             workspace_id=WORKSPACE_ID,
  184.             category=CATEGORY
  185.         )
  186.         
  187.         # 如果成功获取到batch_number,则进行查询
  188.         if batch_number:
  189.             print("=== 查询识别结果 ===")
  190.             waited_seconds = 0
  191.             while True:
  192.                 result = fetch_results(
  193.                     ti_app_id=ti_app_id,
  194.                     ti_secret_code=ti_secret_code,
  195.                     workspace_id=WORKSPACE_ID,
  196.                     batch_number=batch_number
  197.                 )
  198.                 if result and result.get('code') == 200:
  199.                     files = result.get('result', {}).get('files', [])
  200.                     if files:
  201.                         file_info = files[0]
  202.                         recognition_status = file_info.get('recognition_status', 0)
  203.                         data = file_info.get('data', 0)
  204.                         if data != {}:
  205.                             print("识别完成!结果如下:")
  206.                             print(file_info.get('data', {}))
  207.                             break
  208.                         else:
  209.                             waited_seconds += 5
  210.                             print(f"正在识别中,已等待{waited_seconds}秒,请耐心等待...")
  211.                     else:
  212.                         print("未找到文件信息,继续等待...")
  213.                 else:
  214.                     print("获取结果失败或响应异常,继续等待...")
  215.                
  216.                 time.sleep(5)  # 等待5秒后再次查询
复制代码
返回值如下:

  1. {'fields': [{'key': 'Order Number', 'value': '3201276954'}, {'key': 'Due Date', 'value': '2023.08.30'}, {'key': 'Vendor Order ID', 'value': '3201276954'}, {'key': 'Supplier Name', 'value': 'CHIPONE (HONG KONG) CO., LIMITED'}, {'key': 'Place of Supply', 'value': 'Hefei, Anhui, China'}, {'key': 'Supplier Address', 'value': 'FLAT/RM 826, OCEAN CENTER HARBOUR C'}, {'key': 'Supplier Email', 'value': 'yzhang@chiponeic.com'}, {'key': 'Customer ID', 'value': '1009749'}, {'key': 'Customer Name', 'value': 'CHIPONE (HONG KONG) CO., LIMITED'}, {'key': 'Account Number', 'value': ''}, {'key': 'IBAN', 'value': ''}, {'key': 'Terms', 'value': 'TT After Arrival of the goods monthly settlement 90 days'}, {'key': 'Total Amount', 'value': '0.00'}, {'key': 'Total Tax', 'value': '0.00'}, {'key': 'Amount Rounding', 'value': ''}, {'key': 'Amount Paid', 'value': '0.00'}, {'key': 'VAT Rate', 'value': ''}, {'key': 'VAT Base', 'value': '0.00'}, {'key': 'VAT Amount', 'value': '0.00'}, {'key': 'VAT Total', 'value': '0.00'}], 'items': [[{'key': 'Item Code', 'value': '00010'}, {'key': 'Description', 'value': 'SD_COF_ICNL9309_1026_6_48'}, {'key': 'Quantity', 'value': '400'}, {'key': 'UOM', 'value': 'EA'}, {'key': 'Unit Price Base', 'value': '0.00'}, {'key': 'Unit Price', 'value': '0.00'}, {'key': 'Tax Rate', 'value': ''}, {'key': 'Tax', 'value': ''}, {'key': 'Total Amount', 'value': '0.00'}]]}
复制代码
可以看到,通过调用DocFlow的API接口,我们可以快速提取出图像的数据。
2. DocFlow API优势



  • 安全性高:通过签名认证方式,确保数据传输的安全性和请求的正当性。
  • 机动性强:丰富的API接口,支持多种数据采集和处理需求,满足不同业务场景。
  • 易于集成:提供具体的API文档和示例代码,帮助开发者快速集成DocFlow功能。

五、丰富的DocFlow插件生态

DocFlow不仅具备强大的焦点功能,还通过丰富的插件生态,进一步拓展了其应用范围和功能深度,满足不同企业的多样化需求。
1. 插件扩展

DocFlow提供多种插件,增强其影像采集与处理能力:
功能名称功能描述邮箱助手自动导入邮件中的附件,简化邮件文档的管理流程,提升工作效率。扫描插件支持批量快速采集单据,提升扫描效率,减少手工操作。文件导入自动导入邮件中的文件附件,确保数据的同等性和完整性。数据库导入支持从数据库批量采集数据,确保数据的统一性和准确性。接口导入通过设置接口自动导入数据,提升数据采集的自动化水平,减少手工干预。 2. 功能插件

除了根本的影像采集插件,DocFlow还提供多种功能插件,满足不同业务场景的需求:


  • 边沿检测与切边压缩:自动裁剪文档边沿,减少无关信息,提高图像质量。
  • 增强锐化与曲面矫正:提升图像清楚度,纠正文档倾斜,确保笔墨的可读性。
  • 阴影消除与去摩尔纹:去除文档中的阴影和干扰线条,优化图像背景。
  • 多图切分与水印去除:支持将多页文档拆分为单页图像,自动去除水印,保证数据的完整性。

3. 定制化插件

针对特定行业和业务需求,DocFlow还支持定制化插件开发:


  • 行业特定插件:如金融、物流、制造等行业的专用插件,满足行业特定的文档处理需求。
  • 自定义功能插件:企业可根据自身需求,开发自定义功能插件,扩展DocFlow的应用范围和功能深度。
通过丰富的插件生态,DocFlow能够机动顺应不同企业和行业的多样化需求,提供全面的文档自动化解决方案。

六、DocFlow行业案例

DocFlow凭借其强大的功能和机动的设置,已在多个行业乐成应用,显著提升了企业的办公效率和管理水平。以下是两个典型的行业案例:
1. 单子自动化

某国产新能源汽车企业在应用DocFlow后,乐成冲破了单子处理过程中语言和版式的障碍,实现了从传统手工录入到全流程自动化管理的变化。通过DocFlow的高效识别与抽取,企业在全球化“深海”市场中得到了深度赋能,持续提升了业务处理效率。

应用成果


  • 效率提升:单子处理时间从传统的小时级别缩短至分钟级别,显著提高了处理速率。
  • 准确率提升:自动化识别错误率趋近于零,确保数据的准确性和可靠性。
  • 资本低沉:减少了大量的人工录入和管理资本,提升了企业的运营效率。
  • 全球化支持:支持多语言和多版式单子,满足企业全球化业务的需求。
2. 物流集散

某大型物流公司在传统录单业务流程中,手工录入提货单信息耗时耗力,且易出错。引入DocFlow后,系统能够智能识别并抽取提货单中的关键字段信息及印章信息,自动录入WMS系统。录单员仅需举行复核确认,整个流程大幅简化,工作效率提升了80%。

应用成果


  • 工作效率提升:团体工作效率相较于流程改造前提升了80%,显著缩短了录单时间。
  • 错误率低沉:自动化识别减少了人工录入中的错误,提高了数据的准确性。
  • 流程简化:从提货单扫描、信息抽取到系统录入,实现了流程的全面自动化。
  • 员工满意度提升:减少了重复性劳动,提升了员工的工作满意度和工作效率。

七、总结

DocFlow作为TextIn推出的高精度文档自动化处理工具,以其强大的识别与抽取能力、机动的集成方式和丰富的插件生态,已成为浩繁企业提升办公效率、实现智能化管理的得力助手。无论是单子自动化、物流集散,还是金融信贷业务,DocFlow都能通过其卓越的技术能力,帮助企业实现业务流程的全面优化和升级,真正实现办公效率的百倍提升。随着产品的不断优化和市场的持续扩展,DocFlow必将在智能文档管理领域占据更加告急的职位,助力企业在信息化浪潮中稳步前行。
内测试用官招募中!或可添加官方福利官报名,免费利用Docflow
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表