AI實(shí)戰(zhàn):結(jié)構(gòu)化輸出,讓結(jié)果可執(zhí)行)
本文集包含20篇獨(dú)立短篇教程對(duì)應(yīng)封面編號(hào)01—20。前10篇討論鴻蒙應(yīng)用中的端側(cè)AI應(yīng)用層架構(gòu)不將通用架構(gòu)包裝成鴻蒙7獨(dú)有API。模型加載、推理與分詞需接入實(shí)際支持的框架。所有示例均為核心代碼片段本輪未進(jìn)行編譯或真機(jī)驗(yàn)證。封面為AI生成概念插畫界面和小字不作為官方功能、事實(shí)或API依據(jù)。模型回答“建議安排張三明天下午跟進(jìn)”人能理解程序卻很難直接處理。“明天下午”是什么時(shí)間張三對(duì)應(yīng)哪個(gè)賬號(hào)這是一條建議還是已經(jīng)確定的任務(wù)如果直接把整句話塞進(jìn)待辦系統(tǒng)模糊信息就變成了真實(shí)業(yè)務(wù)數(shù)據(jù)。解決辦法是先定義結(jié)果結(jié)構(gòu)再讓模型填充。interfaceTaskDraft{title:string;ownerId:string;dueAt:string;missingFields:string[];}functioncanPreview(task:TaskDraft):boolean{returntask.title.trim().length0task.title.length120;}這個(gè)例子故意保留了missingFields。原文沒有負(fù)責(zé)人就應(yīng)該明確記錄缺失而不是讓模型補(bǔ)出一個(gè)看起來(lái)合理的人選。canPreview只判斷標(biāo)題是否適合進(jìn)入預(yù)覽不代表完整校驗(yàn)或執(zhí)行授權(quán)。結(jié)構(gòu)化輸出需要經(jīng)過三道檢查。第一道檢查格式返回內(nèi)容是否能夠解析必填字段是否存在字段類型是否正確。第二道檢查業(yè)務(wù)含義負(fù)責(zé)人是否屬于當(dāng)前團(tuán)隊(duì)時(shí)間是否有效標(biāo)題是否超長(zhǎng)任務(wù)是否與原文有關(guān)。第三道檢查執(zhí)行條件即使結(jié)構(gòu)完整也不代表可以立即保存。用戶可能只要求“先給我一個(gè)建議”。還要區(qū)分“沒有值”和“值為空”。對(duì)于負(fù)責(zé)人字段空字符串可以表示尚未確認(rèn)但不能被解釋為默認(rèn)分配給當(dāng)前用戶。團(tuán)隊(duì)需要在接口契約里寫清楚這些含義。解析失敗時(shí)不要無(wú)限重試??梢栽试S一次受控修復(fù)把明確的格式錯(cuò)誤交回模型如果仍然失敗就顯示原始建議允許用戶手動(dòng)編輯。頁(yè)面展示也應(yīng)該反映數(shù)據(jù)狀態(tài)已識(shí)別字段正常顯示缺失字段標(biāo)記為“待確認(rèn)”模型推測(cè)內(nèi)容不能和原文事實(shí)混在一起。驗(yàn)收不能只測(cè)試一份漂亮的JSON。還要測(cè)試缺字段、錯(cuò)誤類型、超長(zhǎng)內(nèi)容、無(wú)效日期以及包含未授權(quán)賬號(hào)的結(jié)果。結(jié)構(gòu)化輸出真正解決的是模型結(jié)果如何進(jìn)入應(yīng)用的數(shù)據(jù)流程而不是讓回答看起來(lái)更整齊。官方參考資料華為讀屏適配指南。https://developer.huawei.com/consumer/en/doc/harmonyos-guides-V14/screen-reading-adapt-guide-V14華為焦點(diǎn)位置設(shè)置。https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/scenario-focus-position-setting華為字體大小單位檢查規(guī)則。https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-v5/ide_font-size-unit-V5