MaxKB+合合信息TextIn:通過API實現PDF掃描件的文檔審核

上海合合信息科技股份有限公司(以下簡稱為合合信息)是一家深耕人工智能、OCR(光學字符識別)及商業大數據技術領域的科技企業。該公司擁有領先的智能文字識別技術,其名片全能王(CamCard)、掃描全能王(CamScanner)和啟信寶等核心產品的用戶覆蓋全球200多個國家和地區,服務用戶超過10億。

在OCR領域,合合信息實力雄厚,可以提供高精度的文檔識別與處理解決方案,滿足合同比對、財報管理、證照識別等多種場景需求。其OCR技術具備跨格式(Word、PDF和圖片)比對、智能糾錯、篡改檢測等能力,能夠精準識別復雜表格、跨頁內容以及多語言文本。針對企業級文字識別場景,合合信息旗下的TextIn智能文檔處理云平臺及其他OCR私有化部署產品,可以靈活適配不同用戶的復雜需求。

當前,眾多企業正在積極構建文檔審核智能體。MaxKB開源企業級智能體平臺的文檔提取組件主要針對純文本內容提取,并將結果傳遞給大模型節點,對于PDF掃描件文檔難以實現有效提取。本文將為您介紹MaxKB與TextIn智能文檔處理云平臺相結合,實現PDF掃描件文檔提取與審核功能的具體方案。

一、實現方案

“MaxKB+TextIn”的PDF文檔提取基于MaxKB V2版本實現。這主要是考慮到V2版本會存儲原文,實現起來更簡單。整體流程遵循“用戶/文檔信息錄入→工具提取文檔關鍵信息→大模型融合信息執行審核并輸出結果”的實現路徑。

1.開啟文件MaxKB的文件上傳功能,獲取文件元數據信息;

2.通過編寫函數工具,把文件ID拼接到原文的鏈接上(通過此鏈接可以點擊直接下載原文);

3.通過函數庫實現創建臨時文件保存PDF文件,然后調用TextIn智能文檔處理云平臺的API接口實現上傳PDF文件并轉換為Markdown格式,然后返回轉換結果;

4.調用大模型,結合前面提取的文檔信息和用戶需求,讓AI執行“文檔審核”邏輯,生成審核結果或回答。
在這里插入圖片描述

▲圖1 通過API實現PDF掃描件文檔審核流程

二、關鍵步驟解析

1.生成PDF下載鏈接

在MaxKB高級編排中啟用文件上傳功能后,MaxKB系統將在{{開始.document}}參數中存儲用戶上傳文檔的URL信息。通過編寫函數工具解析該參數獲取URL,并按http://:<端口號>/admin/application/的格式輸出,即可生成對應的PDF文件下載鏈接。

輸入參數配置為:
在這里插入圖片描述

函數代碼如下:

import jsondef build_file_url_from_json(data):"""從數據中解析出 file_id 并拼接 URL支持輸入:JSON字符串 或 已解析的Python列表對象參數:data (str or list): 包含文件信息的JSON字符串或Python列表返回:str: 拼接后的完整URL"""try:# 如果輸入是字符串,嘗試解析為JSONif isinstance(data, str):# 替換單引號為雙引號(處理不標準的JSON)data_str= data.replace("'", '"')data = json.loads(data_str)# 驗證數據格式:必須是列表且第一個元素有file_idif not isinstance(data, list) or len(data) == 0:raise ValueError("數據必須是非空列表")if 'file_id' not in data[0]:raise ValueError("列表中的元素缺少'file_id'字段")return "http://10.1.12.36:8080/admin/oss/file/" + data[0]['file_id']except json.JSONDecodeError:raise ValueError("無效的JSON字符串")except Exception as e:raise ValueError(f"解析失敗: {str(e)}")def process_data(input_data):  try:file_url = build_file_url_from_json(input_data)print("轉換成功")return file_urlexcept ValueError as e:print(f"轉換失敗: {str(e)}")  return None 

流程編排效果如下:
在這里插入圖片描述

2.創建TextIn接口調用函數

函數通過調用TextIn的OCR服務,將指定PDF掃描件下載鏈接的文檔轉換為Markdown格式文本。使用前,請注冊TextIn智能文檔處理云平臺(www.textin.com)獲取認證憑證(x-ti-app-id和x-ti-secret-code),替換代碼中的相應參數值。

輸入參數配置為:
在這里插入圖片描述

函數代碼如下:

import os
import requests
import tempfiledef download_and_convert_pdf(pdf_url):"""下載PDF并轉換為Markdown,返回轉換結果"""try:# 創建臨時文件保存PDFwith tempfile.NamedTemporaryFile(delete=False, suffix='.pdf') as temp_file:temp_pdf_path = temp_file.name# 下載PDFresponse = requests.get(pdf_url)response.raise_for_status()temp_file.write(response.content)# API端點url = "https://api.textin.com/ai/service/v1/pdf_to_markdown"headers = {"x-ti-app-id": "eb4b7ff649d97b0c9***********","x-ti-secret-code": "9c635bae8961f55eed************","Content-Type": "application/octet-stream"}# 讀取PDF文件內容并發送請求with open(temp_pdf_path, 'rb') as f:response = requests.post(url, headers=headers, data=f.read())response.raise_for_status()result = response.json()# 清理臨時文件os.unlink(temp_pdf_path)# 處理API響應if result.get("code") == 200:return result.get("result", {}).get("markdown", "")else:print(f"API請求失敗: {result.get('message', '未知錯誤')}")return Noneexcept requests.exceptions.RequestException as e:print(f"網絡請求錯誤: {e}")return Noneexcept Exception as e:print(f"處理PDF時出錯: {e}")return None# 從外部傳入URL參數
def process_pdf(url):   markdown_content = download_and_convert_pdf(url) if markdown_content:print("轉換成功")return markdown_contentelse:print("轉換失敗")return None

3.調用函數實現OCR識別并轉為Markdown格式輸出

函數執行成功后,其返回值將包含經OCR識別并轉換為Markdown格式的文本內容。
在這里插入圖片描述

4.調用大模型基于輸出的Markdown內容進行審核

在MaxKB的AI對話節點中,大模型能夠深度解析OCR轉換后的Markdown文本。用戶可以針對業務重點靈活配置提示詞,通過定制化的審核直接生成帶修正建議的審核結果,從而降低排查的時間成本。
在這里插入圖片描述

三、效果展示

首先,準備好一份PDF文檔掃描件。
在這里插入圖片描述

在MaxKB中構建好工作流,具體如下。
在這里插入圖片描述

文檔審核的對話結果如下,系統對錯別字進行了標注,給出了語句修改建議、格式調整意見等審核反饋。
在這里插入圖片描述

四、延伸思考

本文所介紹的PDF掃描件文檔審核方案適用于所有可以通過函數庫接入的OCR工具,無論是合合信息TextIn這樣的專業云服務,還是企業自建的私有化OCR平臺,均可實現靈活接入。MaxKB與OCR技術與服務的結合,能夠幫助用戶有效突破掃描件文檔處理的瓶頸,構建全格式智能審核的閉環。

通過MaxKB與OCR服務的結合,企業不需要投入高成本進行OCR模塊的自研,就能直接復用高精度的文本識別能力,在實際業務場景中實現掃描件的秒級解析與審核,大幅提升文檔處理效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93047.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis 核心入門:從概念到實戰,一篇掌握簡單增刪改查

目錄 一、什么是 MyBatis&#xff1f;為什么要用它&#xff1f; 二、MyBatis 核心概念&#xff08;通俗理解&#xff09; 1.SqlSessionFactory 2.SqlSession 3.Mapper接口 4.映射文件&#xff08;XML&#xff09; 三、手把手搭建第一個 MyBatis 項目 1. 準備工作 2. 核心配置文…

數據結構初階(12)排序算法—插入排序(插入、希爾)(動圖演示)

2. 常見排序算法的實現2.0 十大排序算法2.1 插入排序 2.1.1 基本思想直接插入排序是一種簡單的插入排序法&#xff1a;基本思想把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經排好序的有序序列中。直到所有的記錄插入完為止&#xff0c;得到一個新的有序序列 。 比 挪 (…

MySQL優化常用的幾個方法

本實例是對慢sql從2萬優化到5千優化方法的匯總。 首先貼上優化效果&#xff1a;1、更新數據時使用ID更新&#xff1b;2、"分頁/輪詢"查詢時先獲取符合數據要求主鍵的最大和最小ID&#xff0c;然后WHERE條件增加ID步增查詢&#xff1b;3、檢查SQL是否命中WHERE條件&am…

深入解析 AUTOSAR:汽車軟件開發的革命性架構

引言在汽車智能化、網聯化、電動化浪潮席卷全球的今天&#xff0c;汽車電子系統的復雜性與日俱增。傳統“煙囪式”的 ECU 開發模式&#xff08;各供應商獨立開發軟硬件&#xff09;帶來了巨大的兼容性、復用性和維護成本挑戰。AUTOSAR&#xff08;AUTomotive Open System ARchi…

計算機視覺(opencv)實戰一——圖像本質、數字矩陣、RGB + 圖片基本操作(灰度、裁剪、替換等)

OpenCV 入門教程&#xff1a; OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個開源的計算機視覺庫&#xff0c;廣泛應用于圖像處理、視頻分析、機器學習等領域。 在 Python 中&#xff0c;cv2 是 OpenCV 的主要接口模塊。本文將帶你一步步掌握 cv2…

《探索C++ set與multiset容器:深入有序唯一性集合的實現與應用》

前引&#xff1a;在STL的關聯式容器中&#xff0c;set以其嚴格的元素唯一性和自動排序特性成為處理有序數據的核心工具。其底層基于紅黑樹&#xff08;Red-Black Tree&#xff09;實現&#xff0c;保證了O(log n)的查找、插入與刪除復雜度&#xff01;本文將從底層原理切入&…

各測試平臺功能對比分析(ITP,Postman,Apifox,MeterSphere)

對比ITP與Postman,Apifox,MeterSphere 功能特性ITPPostmanApifoxMeterSphere接口測試? 可視化接口調試&#xff0c;支持多種請求方式? 支持? 支持? 支持場景測試? 多接口串聯測試&#xff0c;支持前后置腳本? Collections功能? 支持? 支持定時任務? 基于Celery的定時…

開源日志log4cplus—如何將 string類型轉為tstring類型,又如何將char*類型轉換為tstring類型?

文章目錄&#x1f527; 一、理解 log4cplus::tstring 的本質?? 二、std::string 轉 tstring 的三種方法? 1. 使用內置宏 LOG4CPLUS_STRING_TO_TSTRING&#xff08;推薦&#xff09;? 2. 手動條件編譯轉換&#xff08;精細控制&#xff09;? 3. 多字節模式下的直接賦值??…

深度學習之CNN網絡簡介

CNN網絡簡單介紹 1.概述 卷積神經網絡&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一種專門用于處理具有網格狀結構數據的深度學習模型。 ? CNN網絡主要有三部分構成&#xff1a;卷積層、池化層和全連接層構成&#xff0c;其中卷積層負責提取圖像中…

【微實驗】基頻提取的MATLAB實現(優化版)

前情提要&#xff1a; 【超詳細】科普&#xff1a;別再只會用自相關&#xff01;YIN 和 PYIN 如何破解音頻隱藏密碼&#xff1f;-CSDN博客 【微實驗】媽媽我的MATLAB會識別聲音的基頻了&#xff01;-CSDN博客 今天用MATLAB把算法封裝成函數&#xff0c;然后調用對比結果。 …

開發 npm 包【詳細教程】(含發布 npm 包,版本號升級,修改包后重新發布等)

1. 給 npm 包取個【唯一】的名字&#xff01; npm 包命名規范 只能包含小寫字母&#xff08;a-z&#xff09;、數字&#xff08;0-9&#xff09;、連字符&#xff08;-&#xff09; 和 下劃線&#xff08;_&#xff09;&#xff0c;不能包含空格、大寫字母、標點符號&#xff…

Secure 第三天作業

實驗需求&#xff1a;1.參考以上拓撲所示&#xff0c;完成以下需求&#xff1a;1&#xff09; 配置各設備 IP 地址2&#xff09; 配置 ZBFW&#xff0c;Inside-1 和 nside-2 屬于內部 Zone&#xff0c;Outside-1 屬于外部 Zonezone security insidezone security outsidezone-p…

Linux應用層-5.計算機網絡(菜鳥學習筆記)

計算機網絡的核心是連接與通信&#xff0c;從底層的物理信號到上層的應用服務&#xff0c;各層協議協同工作---------------------------------------------------------------------------------------一.計算機網絡分類&#xff08;按范圍&#xff09;1?個人區域網&#xff…

[論文閱讀] 人工智能 + 軟件工程 | 大型語言模型對決傳統方法:多語言漏洞修復能力大比拼

大型語言模型對決傳統方法&#xff1a;多語言漏洞修復能力大比拼 論文閱讀&#xff1a;On the Evaluation of Large Language Models in Multilingual Vulnerability RepairarXiv:2508.03470 On the Evaluation of Large Language Models in Multilingual Vulnerability Repair…

計算機網絡2-3:傳輸方式

目錄 串行傳輸和并行傳輸 同步傳輸和異步傳輸 單工、半雙工以及全雙工通信 總結 串行傳輸和并行傳輸 并行傳輸的優點是速度為串行傳輸的n倍&#xff0c;但也存在一個嚴重的缺點即成本高 同步傳輸和異步傳輸 單工、半雙工以及全雙工通信 總結

文檔生成PPT軟件哪個好?深度測評8款word轉ppt生成工具

在日常辦公與教學場景中&#xff0c;如何高效地將Word文檔內容轉化為專業PPT&#xff0c;一直是職場人士、教育工作者及內容創作者的共同痛點。隨著AI技術的普及&#xff0c;一鍵式轉換工具應運而生&#xff0c;它們不僅能精準識別Word中的標題與段落結構&#xff0c;還能自動套…

Azimutt:一款免費開源的多功能數據庫工具

Azimutt 是一款支持數據庫設計、表結構探索與分析、數據查詢以及數據庫文檔生成功能的全棧工具。 Azimutt 是一個免費開源的項目&#xff0c;源代碼托管在 GitHub&#xff1a; https://github.com/azimuttapp/azimutt 功能特性 多數據庫支持&#xff1a;包括主流數據庫 MySQ…

智算賦能:移動云助力“世界一流數據強港”建設之路

2024年5月&#xff0c;某創新產業園區智算中心正式揭牌成立。臺下響起的掌聲不僅是對一個項目的祝賀&#xff0c;更是客戶對未來的期許—— 推動產業結構優化升級&#xff0c;領跑數字經濟轉型發展。5家500強企業、8家上市企業、17家獨角獸企業……該創新產業園區在成為“世界一…

達夢自定義存儲過程實現獲取表完整的ddl語句

--導出表的ddl CREATE OR REPLACE PROCEDURE show_create_table( db IN varchar(255), tb IN varchar(255)) ASsql1 text;ret text : ;cmt text :;sql2 text :; BEGINFOR WSX IN (select TABLEDEF(db,tb) as ddl from dual) LOOPret: ret||WSX.DDL;END LOOP;ret : ret||chr(10…

【ARM】keil提示UVISION: Error: Encountered an improper argument

1、 文檔目標 解決MDK退出debug模式后&#xff0c;提示UVISION: Error: Encountered an improper argument。 2、 問題場景 在退出Debug模式的時候&#xff0c;彈出提示窗口&#xff0c;提示&#xff1a;UVISION: Error: Encountered an improper argument。&#xff08;如圖…