GPT 輔助寫更精準用例之 從左到右流程圖 解決隨筆

陈子昂發表於2024-05-29

前因

期望用 GPT 來生成測試用例,如果透過功能模組名稱標題去生成基本是很難達到理想效果。
原因就是 GPT 不懂私有的業務,也找不到這塊的語料,開源的專案,之前有人統計過不到市面上總共專案的 0.02%,可以說是語料匱乏。
常見做法,靠人去梳理一次交給 GPT 補充內容一段段餵給 GPT 在提取總結,但是會花費時間比較多,分享一個昨天遇到的提速的思路。
常見做法的確也是,可以落地的思路是產品需求文件,主要分為 2 塊,流程圖圖片和文件內容,透過圖片來提取核心內容的大綱,這裡先實現流程圖的部分。
題外話,如果讓更精準回答問題呢,自強 RAG 肯定是最好的。流程圖如果不是最新是錯的,也不在本次思路範圍中,因為 QA 會假設是對的,先開始編寫,如果後面發現是錯的,就是一個流程規範的問題

能不能把靠人去梳理儘可能改成自動生成

做得事情就是流程圖提取文字內容自動化的方式去形成步驟化的結論
答案是可以的,調研後,昨天已經把 1.0 程式碼實現了,版本是比較基礎的,思路也可以幫助少走彎路。
思考方案是讀取流程圖和結合案子的文字拆成帶順序的步驟,套上提示詞工程分配餵給 GPT。
選擇流程圖代表是大綱,流程圖識別出來的部分會是 L1 和 L2 的標題,然後結合文件裡面提取的關鍵字去進行完善,最後套一個提示詞工程,會拆分成一段段餵給 GPT。
流程圖需要解決 2 個問題:

1.識別出圖片中的 Text

中英文識別,以及返回資料結構

{"bbox":List,"text":String,"prob":float}

- bbox:文字 Text 在圖片上面的座標矩陣,一共 4 個點
- text:文字識別的內容,英文後面需要補充 (中文的翻譯)
- prob:置信度,這值會決定是否採納這段文字的,也可以在某個範圍下把識別的結果進行詞法的糾正。
這個資料結構最後會變成 map 物件,key 是重排後的 bbox,value 是 text。

2.流程圖裡面順序問題。

順序會收到箭頭和圖片結構的影響,先解決圖片結構 (圖片結構中的圖層巢狀暫時無法解決),在把圖片結構結果和箭頭識別做驗證

2.1 圖片結構的簡單模式:理解可以按從上到下,從左到右,識別流程圖文字方案需要是記錄文字的矩陣也就是 bbox

解決了第一個部分,識別出了上面資料結構,bbox 解決思路就是從 x 開始從左到右 (x1 取左上角第一個點),每次移動一定範圍的視窗
主要是 x 軸變化,當 x 相等或者很接近時,就參照 Y 的座標,這個具體多少算接近可以根據圖片的寬度定義一個範圍。
滑動窗體這個越短,解析速度越慢但是越準。
輸出:排序後在識別的文字資訊前面,新增一個 step 的提示詞彙

2.2 新增箭頭進行糾正

箭頭需要先找出箭頭這個分類,然後在計算箭頭和圖層上面 txt 的關係。
二個方案:
方案 1:儘量使用使用邊緣檢測和輪廓檢測和形狀匹配的開發,使用特徵層面來做識別出疑似箭頭的。
方案 2:自定義模型做會更好,支援不是很標準的箭頭,比如有的用寬,有的用扭曲的等等。
箭頭資料結構會新增一個欄位叫重合度,重合度是一個陣列,會記錄分別靠近哪些文字

{"id":Integer,"bbox":List,"prob":float,"coincidence":map}
  • id 箭頭的編號
  • coincidence 重合度一個 map 結構,會返回識別出來的 Text step 編號和箭頭的距離 coincidence 重合度演算法思路也是箭頭 bbox 用滑動視窗和字型的 x1 和 x2 做運算。

未解決問題

計劃是圖片結構中的圖層巢狀需要用和箭頭重合判斷的方式。

相關文章