這個專題會模擬一個簡易的 AI 聊天系統,使用者可以向 AI 提出問題。AI 會根據不同的情況給出回應,並且需要處理以下情況:
程式總覽:
(chat_log.txt 日誌)
logging 模組:Python 的 logging 模組用來記錄程式執行過程中的重要訊息,例如正常運行訊息或錯誤訊息。這裡的日誌記錄會被寫入到檔案 chat_log.txt 中。
logging.basicConfig:用來設定日誌的基本配置,例如日誌的儲存路徑 (filename='chat_log.txt') 和記錄的等級 (level=logging.INFO)。INFO 等級會記錄所有訊息,包括正常的運行訊息與錯誤訊息。
while True 迴圈:這個迴圈讓系統不斷重複要求使用者輸入問題,直到使用者輸入結束對話的訊息為止。
input() 函數:要求使用者輸入問題,並將輸入的內容儲存在變數 user_input 中。
字數限制:如果 user_input 的長度超過 50 字元,程式會主動引發 ValueError 錯誤,提示使用者問題太長。raise ValueError 用來拋出一個錯誤,並將訊息傳遞給異常處理程式。
符號限制:如果使用者的輸入包含不支援的符號(使用 isalnum() 函數判斷是否全為字母和數字),也會拋出一個 ValueError 錯誤。
如果使用者的問題中包含「天氣」,AI 會回應「今天天氣很好」。
如果使用者輸入「你好」,AI 會回應「你好,有什麼我能幫助你的?」。
如果使用者輸入「結束」,程式會結束對話,並退出主迴圈 (break)。
try-except 機制:這裡使用 try-except 來捕捉程式運行中可能出現的錯誤,並保證程式不會因此崩潰。
捕捉 ValueError:如果問題過長或包含不支援的符號,會拋出 ValueError,並輸出錯誤訊息。
捕捉 LookupError:如果 AI 無法理解使用者的問題,會拋出 LookupError,並提示使用者 AI 無法識別。
logging.error():將每次的錯誤訊息與使用者輸入記錄到 chat_log.txt 日誌檔案中,方便日後查看問題。
最後來測試所有回答,包括詢問天氣、問好、結束對話;輸入錯誤訊息包含:標點符號的句子、超過50個字的句子。
這次的小專題透過簡單的關鍵字識別和異常處理,就成了一個模擬 AI 聊天系統,並且能夠處理使用者輸入的不當資料或 AI 無法理解的問題。這樣的系統可以擴展成為更複雜的對話機器人,並且對日誌的使用使得除錯和系統改進更加方便。
我相信這個應用在未來學習 AI 相關知識時,例如自然語言處理 (NLP) 和機器學習中的數據清洗,都會有所幫助><