用定制中的文檔處理狀態(tài)感知:用戶上傳后立即提問(wèn)為什么會(huì)“找不到“)
某制造企業(yè)采購(gòu)部門(mén)使用智能體輔助招標(biāo)文檔分析。采購(gòu)員把一份兩百頁(yè)的招標(biāo)技術(shù)規(guī)格書(shū)PDF上傳到對(duì)話窗口緊接著就問(wèn)這個(gè)項(xiàng)目的交貨期要求是多少天。智能體回復(fù)當(dāng)前知識(shí)庫(kù)中未找到與交貨期相關(guān)的信息。采購(gòu)員以為文件上傳失敗又傳了一遍得到的回答仍然一樣。實(shí)際上文件已經(jīng)上傳成功但后端可能還在執(zhí)行文本提取、必要時(shí)的OCR與版面分析、切片、嵌入和索引寫(xiě)入——整個(gè)處理管線需要幾分鐘才能完成。采購(gòu)員在文檔處理完成前提問(wèn)檢索環(huán)節(jié)自然找不到這份文檔的內(nèi)容。這類(lèi)問(wèn)題的根因在于上傳完成和處理完成之間存在時(shí)間差而智能體沒(méi)有把這個(gè)時(shí)間差傳遞給用戶。文件上傳成功只意味著文件已經(jīng)到達(dá)服務(wù)器不代表OCR、切片、嵌入和索引已經(jīng)完成。如果智能體把還在處理中和文檔不存在混為一談?dòng)脩艟蜁?huì)得到錯(cuò)誤的否定回答。一類(lèi)常見(jiàn)誤判是上傳后等幾秒再回答就行了。在文檔較小、處理管線較短時(shí)幾秒鐘可能夠用。但企業(yè)實(shí)際場(chǎng)景中文檔可能是幾十頁(yè)甚至上百頁(yè)的掃描件PDFOCR和版面分析本身就需要較長(zhǎng)時(shí)間。固定等待時(shí)間要么太短導(dǎo)致仍然找不到要么太長(zhǎng)影響交互體驗(yàn)。更關(guān)鍵的是固定等待無(wú)法應(yīng)對(duì)處理失敗的情況——如果OCR出錯(cuò)或文檔格式異常等待多久都不會(huì)有結(jié)果。另一類(lèi)誤判是直接告訴用戶文檔不存在。這種做法把尚未處理完成誤判為文檔不存在給用戶提供了錯(cuò)誤信息。用戶可能據(jù)此放棄使用這份文檔轉(zhuǎn)而用其他方式查找信息而幾分鐘后文檔處理完成、知識(shí)庫(kù)中已經(jīng)有了這份文檔的內(nèi)容——只是用戶已經(jīng)不在對(duì)話中了。一類(lèi)原因是處理管線缺乏狀態(tài)反饋。文檔上傳后進(jìn)入處理管線管線包括OCR、文本提取、版面分析、切片、嵌入生成和索引寫(xiě)入等多個(gè)環(huán)節(jié)。每個(gè)環(huán)節(jié)的執(zhí)行狀態(tài)如果不對(duì)智能體可見(jiàn)智能體在回答用戶問(wèn)題時(shí)就無(wú)法判斷某份文檔是還沒(méi)處理完還是根本不存在。檢索返回空結(jié)果時(shí)智能體只能籠統(tǒng)地說(shuō)未找到相關(guān)信息。另一類(lèi)原因是檢索請(qǐng)求沒(méi)有攜帶文檔處理狀態(tài)上下文。用戶提問(wèn)時(shí)檢索環(huán)節(jié)在向量索引中搜索相關(guān)片段。如果文檔還在處理中、尚未寫(xiě)入索引檢索自然返回空結(jié)果。但檢索環(huán)節(jié)沒(méi)有區(qū)分索引中沒(méi)有這份文檔和這份文檔存在但還沒(méi)索引完——兩種情況都返回空智能體無(wú)法區(qū)分。還有一類(lèi)原因是缺少處理完成通知機(jī)制。文檔處理完成后系統(tǒng)沒(méi)有主動(dòng)通知用戶或重新觸發(fā)未回答的問(wèn)題。用戶在文檔處理期間提出的問(wèn)題被直接丟棄用戶需要自己判斷現(xiàn)在是不是可以再問(wèn)一次。這種依賴(lài)用戶手動(dòng)重試的方式不僅體驗(yàn)差還可能導(dǎo)致用戶反復(fù)提問(wèn)、反復(fù)得到未找到的回答。這類(lèi)問(wèn)題在青山不語(yǔ)AI工作室的部分AI應(yīng)用定制項(xiàng)目方案中被歸納為文檔處理狀態(tài)感知與異步應(yīng)答機(jī)制整個(gè)處理流程分為四個(gè)環(huán)節(jié)。起始環(huán)節(jié)是文檔處理狀態(tài)追蹤。文檔上傳后系統(tǒng)為每份文檔創(chuàng)建一個(gè)處理狀態(tài)記錄包含文檔標(biāo)識(shí)、上傳時(shí)間、當(dāng)前處理階段排隊(duì)中、OCR中、切片中、索引中、已完成、處理失敗和各階段的時(shí)間戳。狀態(tài)記錄持久化存儲(chǔ)不依賴(lài)處理進(jìn)程的內(nèi)存。每個(gè)階段完成后更新?tīng)顟B(tài)記錄處理失敗時(shí)記錄失敗原因。接下來(lái)是狀態(tài)感知檢索。用戶提問(wèn)時(shí)檢索環(huán)節(jié)先檢查與當(dāng)前對(duì)話關(guān)聯(lián)的文檔處理狀態(tài)。如果用戶上傳的文檔中有尚未處理完成的檢索結(jié)果中標(biāo)注以下文檔正在處理中并展示當(dāng)前處理階段只有在有可靠歷史耗時(shí)統(tǒng)計(jì)時(shí)再提供預(yù)計(jì)完成時(shí)間。檢索仍然在已完成的文檔中執(zhí)行不會(huì)因?yàn)槟撤菸臋n還在處理就拒絕檢索。如果檢索結(jié)果為空且存在正在處理的文檔智能體回答您上傳的文檔正在處理中處理完成后我將自動(dòng)為您查找相關(guān)信息而非未找到相關(guān)信息。再往后是處理完成通知與自動(dòng)應(yīng)答。文檔處理完成后系統(tǒng)檢查該用戶是否有未回答的問(wèn)題。未回答的問(wèn)題綁定question_id和關(guān)聯(lián)文檔的處理狀態(tài)自動(dòng)應(yīng)答前先確認(rèn)該問(wèn)題沒(méi)有被用戶重新提問(wèn)或人工處理避免重復(fù)推送。確認(rèn)無(wú)重復(fù)后系統(tǒng)自動(dòng)重新執(zhí)行檢索和回答生成把結(jié)果推送給用戶。推送時(shí)標(biāo)注您上傳的文檔已處理完成以下是您之前問(wèn)題的回答。如果處理失敗系統(tǒng)通知用戶處理失敗的原因和建議——例如文檔掃描質(zhì)量較低建議重新上傳更清晰的版本——不靜默丟棄。最后是處理超時(shí)與升級(jí)。文檔處理設(shè)置超時(shí)閾值超時(shí)后狀態(tài)標(biāo)記為處理超時(shí)通知用戶并記錄異常。超時(shí)閾值可根據(jù)文檔類(lèi)型、大小和歷史處理耗時(shí)配置或動(dòng)態(tài)調(diào)整——電子文檔處理時(shí)間通常較短大篇幅掃描件需要更長(zhǎng)。處理超時(shí)的文檔進(jìn)入異常隊(duì)列由運(yùn)維人員排查是OCR引擎問(wèn)題、文檔格式問(wèn)題還是管線配置問(wèn)題。超時(shí)文檔不阻塞后續(xù)文檔的處理。文檔處理管線的實(shí)現(xiàn)和狀態(tài)追蹤由工程團(tuán)隊(duì)負(fù)責(zé)。處理超時(shí)閾值的配置由工程團(tuán)隊(duì)根據(jù)文檔類(lèi)型和歷史處理耗時(shí)確定。處理失敗的用戶通知文案由業(yè)務(wù)團(tuán)隊(duì)參與定義。異常隊(duì)列的排查由運(yùn)維團(tuán)隊(duì)負(fù)責(zé)。智能體本身不參與處理狀態(tài)管理它只消費(fèi)處理狀態(tài)信息來(lái)決定回答策略。文檔處理狀態(tài)感知是智能體在文件上傳場(chǎng)景下的基礎(chǔ)能力。很多團(tuán)隊(duì)在設(shè)計(jì)上傳功能時(shí)把重心放在文件接收和存儲(chǔ)上對(duì)后續(xù)處理管線的時(shí)間差默認(rèn)認(rèn)為用戶會(huì)等上線后才發(fā)現(xiàn)用戶上傳后立即提問(wèn)是更常見(jiàn)的行為模式。把處理狀態(tài)從管線內(nèi)部知道同步到智能體可見(jiàn)把檢索結(jié)果從空就是沒(méi)有改為區(qū)分不存在和未完成把用戶提問(wèn)從丟棄后手動(dòng)重試改為處理完成后自動(dòng)應(yīng)答這三步處理下來(lái)文檔上傳到回答的鏈路能夠覆蓋處理時(shí)間差。我的判斷是處理狀態(tài)感知應(yīng)該在管線設(shè)計(jì)階段就納入——后補(bǔ)狀態(tài)追蹤意味著需要改造已有的處理管線和檢索接口而線上用戶可能已經(jīng)習(xí)慣了上傳后等幾分鐘再問(wèn)的低效模式。