多站點(diǎn)wordpress安裝網(wǎng)站建設(shè)欄目設(shè)置表格
鶴壁市浩天電氣有限公司
2026/01/24 17:14:45
多站點(diǎn)wordpress安裝,網(wǎng)站建設(shè)欄目設(shè)置表格,南昌正規(guī)網(wǎng)站公司嗎,無域名建網(wǎng)站MaxKB開源企業(yè)級(jí)智能體平臺(tái)的高級(jí)編排中提供了文檔內(nèi)容提取組件#xff0c;其主要輸出的是Markerdown格式的文本內(nèi)容。然而#xff0c;當(dāng)文檔內(nèi)嵌架構(gòu)圖、流程圖、圖表等圖片信息時(shí)#xff0c;這些視覺內(nèi)容就無法被有效提取#xff0c;導(dǎo)致后續(xù)大語言模型#xff08;LLM其主要輸出的是Markerdown格式的文本內(nèi)容。然而當(dāng)文檔內(nèi)嵌架構(gòu)圖、流程圖、圖表等圖片信息時(shí)這些視覺內(nèi)容就無法被有效提取導(dǎo)致后續(xù)大語言模型LLM在回答時(shí)可能會(huì)遺漏關(guān)鍵信息影響問答的準(zhǔn)確性與完整性。本文為您介紹MaxKB圖文混合文檔分析工作流的搭建方案。該方案旨在利用MaxKB的高級(jí)編排功能通過自定義函數(shù)和圖片理解節(jié)點(diǎn)構(gòu)建一個(gè)能夠?qū)⑽臋n文本內(nèi)容和圖片視覺解析結(jié)果進(jìn)行融合分析的工作流實(shí)現(xiàn)對(duì)圖文混合文檔的深度理解。一、 實(shí)現(xiàn)方案圖文混合文檔分析工作流的核心是實(shí)現(xiàn)文本內(nèi)容中的圖片提取和循環(huán)處理。整體流程說明如下:1.文檔提取通過MaxKB的文檔內(nèi)容提取節(jié)點(diǎn)將用戶上傳的文檔內(nèi)容提取為Markdown格式文本并保存為會(huì)話變量。2.動(dòng)態(tài)圖片處理函數(shù)編寫Python函數(shù)接收Markdown文本并執(zhí)行以下邏輯① 從Markdown格式文本中解析出圖片鏈接或標(biāo)識(shí)② 將解析出的圖片信息轉(zhuǎn)換為MaxKB圖片理解節(jié)點(diǎn)和圖片位置提取節(jié)點(diǎn)所需的JSON數(shù)組結(jié)構(gòu)。3.將數(shù)組內(nèi)容倒序輸出為避免正序插入導(dǎo)致圖片混亂將數(shù)組倒序輸出為后續(xù)在Markdown文本中插入圖片做好準(zhǔn)備。4.循環(huán)與圖片解析及插入文本如果函數(shù)識(shí)別到圖片則進(jìn)入循環(huán)結(jié)構(gòu)依次執(zhí)行以下操作① 調(diào)用圖片理解節(jié)點(diǎn)返回圖片內(nèi)容的文本描述② 調(diào)用提取圖片位置信息節(jié)點(diǎn)返回圖片在Markdown文本中的位置信息③ 編寫Python函數(shù)將Markdown文本會(huì)話變量、圖片理解結(jié)果和提取圖片位置信息結(jié)果傳入實(shí)現(xiàn)圖片插入文本原位置。5.LLM分析調(diào)用大語言模型LLM分析節(jié)點(diǎn)以融合后的圖文上下文作為輸入執(zhí)行用戶定義的分析或其他任務(wù)?!鴪D1 MaxKB圖文混合文檔分析工作流流程圖二、高級(jí)編排和組件本工作流由多個(gè)編排節(jié)點(diǎn)與自定義函數(shù)組成以實(shí)現(xiàn)從文檔解析到圖文融合的完整鏈路。各節(jié)點(diǎn)的輸入、輸出與功能說明如下表所示表1 MaxKB圖文混合文檔分析工作流節(jié)點(diǎn)說明▲圖2 MaxKB圖文混合文檔分析工作流三、 核心函數(shù)工具為實(shí)現(xiàn)工作流中的關(guān)鍵步驟需要編寫以下兩個(gè)核心Python函數(shù)分別用于提取圖片信息和將圖片描述插回原文。1.圖片提取函數(shù)在文檔內(nèi)容提取節(jié)點(diǎn)后需調(diào)用函數(shù)從Markdown文本中解析出所有圖片信息。具體代碼如下#codingutf-8import re import time from typing import List,Dict,Any defextract_images_from_markdown(markdown_text:str)-List[Dict[str,Any]]: 從Markdown格式的文本中提取所有圖片引用并返回格式化的圖片信息數(shù)組包括位置信息。 參數(shù):markdown_text(str):Markdown格式的文本內(nèi)容 返回:List[Dict[str,Any]]:包含圖片信息的字典數(shù)組每個(gè)字典包含以下字段-name:文件名-percentage:上傳百分比默認(rèn)0-status:狀態(tài)默認(rèn)ready-size:文件大小默認(rèn)0-raw:包含uid的字典-uid:唯一標(biāo)識(shí)符-url:圖片URL-file_id:文件ID如果URL包含./oss/file/-start:圖片在文本中的起始位置新增-end:圖片在文本中的結(jié)束位置新增 # 使用正則表達(dá)式匹配Markdown中的圖片引用格式 image_patternr]))# 存儲(chǔ)提取的圖片信息 images_info[]# 使用finditer獲取所有匹配項(xiàng)及其位置formatch in re.finditer(image_pattern,markdown_text):alt_textmatch.group(1)# 圖片alt文本 urlmatch.group(2)# 圖片URL startmatch.start()# 匹配起始位置 endmatch.end()# 匹配結(jié)束位置 # 處理文件名提取邏輯if/in url:# 從URL路徑中提取文件名 filenameurl.split(/)[-1]# 如果URL中的文件名沒有擴(kuò)展名嘗試從alt_text中獲取if.not in filename:ifalt_text and.in alt_text:# 提取alt_text中的文件名部分 alt_filename_candidatesalt_text.split( )forcandidate in alt_filename_candidates:if.in candidate:filenamecandidatebreak# 如果還是沒有擴(kuò)展名使用默認(rèn)擴(kuò)展名if.not in filename:filenamef{filename}.pngelse:# 如果URL不包含路徑使用默認(rèn)命名ifalt_text and.in alt_text:alt_filename_candidatesalt_text.split( )filenameNoneforcandidate in alt_filename_candidates:if.in candidate:filenamecandidatebreakiffilename is None:filenamefimage_{start}.png# 使用位置確保唯一性else:filenamefimage_{start}.png# 從URL中提取file_id如果URL格式為./oss/file/xxx file_idif./oss/file/in url:file_idurl.split(./oss/file/)[-1]# 生成唯一標(biāo)識(shí)符結(jié)合時(shí)間戳和位置避免沖突 uidint(time.time()*1000)start # 構(gòu)建圖片信息字典 image_info{name:filename,percentage:0,status:ready,size:0,raw:{uid:uid},uid:uid,url:url,file_id:file_id,start:start,# 新增在文本中的起始位置end:end # 新增在文本中的結(jié)束位置}# 驗(yàn)證所有必要字段都存在 required_fields[name,percentage,status,size,raw,uid,url,file_id,start,end]forfield in required_fields:iffield not in image_info:print(f警告: 圖片信息缺少字段 {field})images_info.append(image_info)returnimages_info▲圖3 圖片提取函數(shù)配置參考在圖片提取后調(diào)用圖片列表倒序函數(shù)將數(shù)組進(jìn)行倒序重排方便后續(xù)插入原文定位使用。具體代碼如下import json defreverse_json_list(data_list): 將JSON列表倒序輸出 # 使用切片反轉(zhuǎn)列表返回新列表 reversed_listdata_list[::-1]returnreversed_list2.將圖片描述插入Markdown文本中在循環(huán)處理完每張圖片的描述與位置后需要調(diào)用函數(shù)將描述文本插入Markdown原文的對(duì)應(yīng)位置。具體代碼如下from typing import List,Dict,Any definsert_single_image_description(markdown_text:str,image_description:str,image_position:List[Dict[str,Any]])-str: 在Markdown文本的指定位置插入圖片描述內(nèi)容 參數(shù):markdown_text:Markdown文本內(nèi)容 image_description:圖片描述文本 image_position:圖片位置信息列表包含start、end、uid等鍵的字典列表 返回:插入圖片描述后的新Markdown文本 # 獲取第一個(gè)位置字典 position_dictimage_position[0]ifnotisinstance(position_dict,dict):raiseTypeError(f列表中的元素應(yīng)為字典類型但得到 {type(position_dict).__name__})# 獲取位置信息 startposition_dict.get(start)endposition_dict.get(end)# 獲取當(dāng)前位置的原始文本片段 original_snippetmarkdown_text[start:end]# 構(gòu)建要插入的內(nèi)容 insertionf
{image_description}
# 插入圖片描述到指定位置 resultmarkdown_text[:end]insertionmarkdown_text[end:]returnresult▲圖4 圖片描述插入原文函數(shù)配置參考四、 效果展示和應(yīng)用場(chǎng)景在MaxKB圖文混合文檔分析工作流搭建完成后我們來看下實(shí)現(xiàn)的具體效果。我們以包含多張分散圖片的MaxKB產(chǎn)品介紹文檔為例。例如此文檔中的“MaxKB的設(shè)計(jì)理念和RAG工作原理”完全采用圖片進(jìn)行表述無文字內(nèi)容說明▲圖5 包含圖片的示例文檔在MaxKB圖文混合文檔分析小助手的對(duì)話頁面上傳此文檔并提問“請(qǐng)理解文檔內(nèi)容”大模型能夠基于圖文理解夠給出準(zhǔn)確回答。▲圖6 圖文混合文檔分析小助手的問答效果從執(zhí)行過程可見圖文混合文檔分析工作流利用圖片理解節(jié)點(diǎn)對(duì)DOCX文檔中的圖片進(jìn)行理解并輸出文字描述并且將圖片插入了文檔原位置。▲圖7 圖文混合文檔分析小助手的執(zhí)行過程除此之外圖文混合文檔分析工作流在MaxKB平臺(tái)同樣可以滿足以下需要結(jié)合視覺和文字信息的復(fù)雜文檔處理場(chǎng)景表2 圖文混合文檔分析應(yīng)用場(chǎng)景五、總結(jié)本文為您介紹了MaxKB圖文混合文檔分析工作流通過“文本提取→圖片提取→圖片循環(huán)識(shí)別→多模態(tài)融合分析”的完整鏈路實(shí)現(xiàn)對(duì)復(fù)雜圖文混合文檔的自動(dòng)化、智能化處理過程。該方案不僅可以有效提升文檔信息提取的完整性與準(zhǔn)確性更為大語言模型提供了強(qiáng)大的圖文混合文檔理解能力。在實(shí)際的應(yīng)用中企業(yè)可以直接將該工作流應(yīng)用在工程文檔分析、財(cái)務(wù)數(shù)據(jù)處理、學(xué)術(shù)資料檢索、操作手冊(cè)指導(dǎo)等場(chǎng)景可以有效增強(qiáng)MaxKB平臺(tái)的智能問答與內(nèi)容分析的覆蓋度與準(zhǔn)確性降低多模態(tài)文檔處理難度幫助企業(yè)加速構(gòu)建具備全面語義理解能力的AI應(yīng)用。