iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
AI 自動化

《從心出發:30 天打造一套具 RAG、心理支持決策、安全治理與 ARCI 自適應能力的 AI 心理支持平台》系列 第 24

# Day 24|Response Evaluation:測試通過,為什麼我還不敢說回覆變好了?

  • 分享至 

  • xImage
  •  

沒有出錯,卻還是少了什麼

昨天談 Response Generation,也就是回覆如何產生。我追的是:使用者新增的內容、更正與要求,有沒有走進最後交給模型的輸入?今天再往後一步:產生了一則符合規則的回答,我怎麼知道它比較適合眼前這段對話?

開發「從心出發」時,我會先檢查回答有沒有越界、編造資訊,或在「先聽我說」的模式裡擅自給建議。這些限制都需要保留。但最近確認表達方向時,我發現,單純中性地整理處境,還不是我想要的安慰感。我比較在意的是:文字有沒有直接體諒當事人,而不是一直解釋這是一種什麼樣的困境。

這讓我重新看待 Response Evaluation,也就是對回覆的檢查與評閱。原本的測試並沒有因此失去價值;只是「有沒有違反指定規則」和「讀完有沒有感到被體諒」,需要不同的證據。沒有踩到禁止事項,回答仍可能只是一份整理得很乾淨的摘要。

我把「通過」拆成四個問題

目前我用下面四個面向整理觀察。這是本文的分析架構,並不表示產品已實作完整的四層驗收系統。

面向 我想知道的事
規則與結構 模式是否正確?要求先不要方法時,有沒有被安排任務?
語意與承接 有沒有回應新增內容、撤回被更正的理解,並避免補造經歷?
表達與互動 文字提供了什麼體諒?是否只有重述、說教或固定追問?
實際使用者感受 對方是否覺得比較被理解,也願意用這種方式繼續對話?

這四個面向不能互相代替。一則回答可以遵守模式,卻漏掉更正;也可以寫得親切,卻用了使用者沒說過的背景。至於對方喜不喜歡,不能只靠開發者替他作答。

我回看風格校準候選版的離線測試 test_listen_style_calibration.py,其中有這一行比較:

self.assertEqual(result.visible_response, reply)

reply 是測試預先填好的人工示例,visible_response 是流程最後交出的文字。兩者相等,可以支持「這段示例經過流程後被完整保留」。但文字不是當場由真實模型寫出的,因此這項檢查回答不了「模型會不會自行產生同樣品質」。

這是我很容易忽略的差別:修改進入程式、示例能被接受、實際回覆出現在畫面,以及使用者接受那則回覆,是幾件不同的事。自動檢查可以留下線索,還沒有執行的部分,仍然是未知。

「再長一點」要多出什麼?

近期的風格調整,讓我開始思考篇幅的用途。太短,可能只有確認收到;寫長,則可能把同一個困擾換三種說法,甚至替對方補上一段人生。

我目前比較認可的方向,是在部分有實質內容的傾訴裡,用二至三個短段落充分承接。但這是設計偏好,不是所有訊息的固定格式。對方只想簡短回應、拒絕某種說法,或表示暫停、結束時,都不該被迫再讀一篇安慰文。

如果需要展開,我希望多出的文字各有作用:有的回應已知的困難,有的體諒這件事對當事人的影響,有的留下不必立刻解決或補充說明的空間。這些作用可以依內容選擇,不必照順序出現,也不必每次全部寫齊。

我也得留意,體諒不能靠猜測撐起來。使用者說自己每天有讀書,我可以承接這份投入;但如果他只說題目不會寫,就不能自行加上「你已經努力很久了」。把未知寫得很溫柔,仍然是在補造資訊。

所以,檢查篇幅時,我想多問一句:拿掉新增的這一段,究竟少了哪一種支持?如果什麼都沒少,可能只是重複。結尾也不必固定追問;保留繼續說的空間,不等於要求對方再交出更多內容。

把「怪怪的」放回每一輪文字

「好像沒有安慰到」是有用的回饋,但還不能直接告訴我該改哪裡。我想先把它放回具體的對話變化裡看。以下全是合成案例;其中的回答也是設計示例,不是真實使用者紀錄或模型實測結果。

第一輪,使用者說:「最近讀書一直卡住,看到題目就不知道怎麼開始。」這時我會看回答是否接住眼前的卡點,有沒有突然推論他不認真,或急著安排讀書計畫。沒有提到的原因,應該先留白。

第二輪,他補充:「不是沒有讀,我每天都有念;是不知道怎麼面對換了題型的題目。」現在的觀察重點變了:下一則回覆有沒有讓「已經有讀」與「換題型」影響內容?若還在鼓勵他開始讀書,就算語氣客氣,也沒有接住更正。只是把新資訊複製進回答,卻繼續圍繞舊理解說話,也不算處理好了。

第三輪,他說:「先不要教我方法,我現在只想說這件事很煩。」假如回答是「我知道很煩,你可以每天整理三題錯題」,後半句仍然在給方法。前面加上理解的語氣,並不會讓建議消失。我想看的,是回覆是否真的停下安排,並把注意力留在對方已說出的困擾。

讀這三輪時,我會圈出有問題的句子:哪一句忽略新增資訊?哪一句把推測寫成肯定?多寫的段落有沒有不同作用?如果再加上一個合成分支——「今天先到這裡」——就要檢查系統是否收住,而不是用追問把對話拉回來。

這些案例可以成為回歸檢查素材,也就是修改後重看、避免同類問題再次出現的材料。目前這裡呈現的是檢查設計,沒有執行新的模型對照。把一個案例調到順眼,也不表示其他情境都能處理好。

讓回饋進入修改,也保留再次確認的位置

我希望接下來的迭代,從一則可閱讀的具體回覆開始。先記下哪一句造成什麼問題,再分辨哪些可以寫成工程檢查,哪些仍需要人讀。

例如「要求不要方法後還出現讀書任務」,可以整理成明確的邊界案例;「第二段像在解釋我,沒有體諒我」,則需要連同上下文閱讀,不能只搜尋某個溫暖詞彙。兩種回饋都值得保留,但不必硬塞進同一個分數。

接著才是小範圍修改,先確認沒有破壞既有邊界,再於有效授權與預算內取得新的實際回覆,交給使用者確認感受。這套完整流程仍是我要逐步補齊的方法,今天只整理評估設計,沒有進行新的模型測試。

已經存在的風格調整與離線檢查,是這條路上的一部分。尚未取得新回覆,就不能把修補完成寫成效果完成;使用者認可一段寫作示例,也不能被翻譯成正式產品已穩定做到。

人工回饋可以誠實地保留為個人感受,不需要包裝成客觀療效數據。我喜歡較完整的體諒,不代表所有人都喜歡;風格偏好也不能覆蓋安全限制。如果未來請另一個模型協助評閱,我會把它的意見當成找問題的線索,而不是最終裁判。

目前,我能說到哪裡

這次回看的風格校準交接,記錄了原站當時已載入修改,以及 85 項直接相關的離線檢查通過。較廣的檢查仍有既有失敗,不能說整套測試都通過。這些是既有紀錄,不是今天重新執行的結果,也不能用來確認今天網站載入的版本。

同份交接仍註明,修改後的真實回覆品質尚未驗證,人工接受也還在等待。今天沒有新增模型請求。因此,我能說的是:我已經在調整回覆應該怎麼表達,也有指定範圍的檢查紀錄;我還不能說,現在的系統比較會安慰人了。

「從心出發」是我正在開發的數位心理支持與結構化自助介入作品,不是心理師、醫療服務或已證實有效的治療工具。作為高中生開發者,我希望先把自己的觀察寫準:測試通過讓我知道某些地方沒有出錯,實際閱讀才讓我繼續發現,哪些地方還沒有回應到人。

下一個讓我在意的問題是:如果同一個人原本希望「先聽我說」,後來又願意討論下一步,系統要如何確認這個改變,調整回應方式,同時保留他隨時說停的空間?


上一篇
# Day 23|Response Generation:有根據的回答,為什麼還是讓人覺得沒被聽見?
下一篇
# Day 25|心理支持 AI 的「溫度」不是把回答寫長:從諮商技巧到回覆生成
系列文
《從心出發:30 天打造一套具 RAG、心理支持決策、安全治理與 ARCI 自適應能力的 AI 心理支持平台》26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言