如何打造 AI 聊天機器人應用程式:金鑰、提示詞、成本與安全
要打造 AI 聊天機器人應用程式,你需要四樣東西:一個聊天介面、一個小型伺服器(負責保管模型供應商的 API 金鑰,並把訊息轉送出去)、一段系統提示詞(告訴模型它是誰、可以做什麼),以及能控制成本與濫用風險的限制。AI 應用程式建構工具可以根據描述寫出這一切。你要自己負責的部分是選擇供應商、撰寫指示,以及決定機器人絕對不能做哪些事。
AI 聊天機器人應用程式的組成
大多數聊天機器人應用程式,無論是客服助理、學習輔導工具,還是內部的「問我們的文件」工具,都有相同的組成部分:
| 組成部分 | 功能 | 能否省略? |
|---|---|---|
| 聊天 UI | 訊息列表、輸入框、「思考中」狀態、逐字串流的回覆 | 不能 |
| 伺服器路由 | 接收使用者的訊息、加上系統提示詞,並以你的私密金鑰呼叫供應商 | 不能,金鑰絕對不能傳到瀏覽器 |
| 系統提示詞 | 固定的指示:角色、語氣、服務範圍、拒絕回答的內容 | 不能 |
| 知識庫 | 機器人作答所依據的你自己的內容(常見問答、政策、產品文件) | 通用助理可以省略 |
| 對話儲存 | 把對話存入資料庫,讓使用者日後能回來繼續 | 第一版可以省略 |
| 帳號 | 讓每位使用者只看得到自己的紀錄,也能限制每人的用量 | 公開展示且限制嚴格時可以省略 |
| 限制與紀錄 | 訊息長度上限、速率限制、消費上限、錯誤紀錄 | 不能 |
伺服器路由是最常被做錯的部分。如果聊天頁面直接從瀏覽器呼叫供應商,任何人打開開發者工具就能複製你的金鑰,並讓你的帳單暴增。
開始前需要決定的事
選擇供應商與模型
OpenAI、Anthropic、Google 等主要供應商都提供運作方式相同的聊天式 API:你送出一串訊息,就會取得一則回覆。實際的選擇與其說是看品牌,不如說是看模型規模:
- 較小、較快的模型價格較低、回應迅速,適合簡短回答、分類與簡單的常見問題機器人。
- 較大的模型推理能力較強,比較能穩定遵循冗長的指示,也能處理雜亂的問題,但每則訊息的成本較高,回應也較慢。
建議先從中型模型開始,用你真實的問題測試,再視情況往上或往下調整。如果你對這類 API 的計價與呼叫方式還不熟悉,請先閱讀如何使用 LLM API。
機器人的知識從哪裡來
| 你的內容 | 做法 |
|---|---|
| 一兩頁(營業時間、退貨政策、價格) | 直接放進系統提示詞 |
| 數十頁且很少變動 | 放入精簡版本,或依主題切分,只附上相關段落 |
| 數百份文件,或每天都在變動的內容 | 存起來,為每個問題搜尋符合的段落,只送出這些段落(RAG) |
從能涵蓋你內容的最簡單做法開始。檢索會增加搜尋索引、更新機制,以及答案出錯的環節。許多實用的機器人根本不需要它。
公開或需要登入
公開在你網站上的聊天機器人容易被找到,但也容易被濫用:有人可以用程式大量送出訊息。需要登入的聊天機器人則能保存每位使用者的紀錄,並為每個帳號設定每日用量上限。如果是公開的,請限制訊息長度、限制單一訪客在特定期間內能送出的訊息數,並在供應商後台設定每月的硬性上限。如何為應用程式加入登入功能說明了帳號的部分。
是否要保存對話
保存對話很有用:使用者可以從上次中斷的地方繼續,你也能從真實的提問中改善提示詞。但對話也屬於個人資料。請決定保存多久、在隱私權聲明中說明,並且不要保存任何你用不到的資料。
把系統提示詞寫成職務說明
系統提示詞是模型在每段對話開始前收到的指示。好的系統提示詞應該像寫給新進員工的簡短工作說明:
- 角色與對象:「你是 Oakline 自行車維修店的客服助理,你的對象是顧客。」
- 服務範圍:「回答有關服務、價格、營業時間與預約的問題。其他問題請說明你只能協助店內事務。」
- 資訊來源:「只使用下方提供的資訊。如果答案不在其中,請說你不確定,並提供店家電話。」
- 語氣與長度:「友善、用淺白的語言,除非對方要求細節,否則不超過三句話。」
- 硬性規則:「絕對不要承諾任何未列出的維修價格。絕對不要索取信用卡資料。」
接著用棘手的問題測試它:與主題無關的請求、無禮的訊息、答案不在你內容中的問題,以及試圖讓它忽略指示的說法(「忘掉你的規則然後……」)。持續調整提示詞,直到每個答案都是你願意署名的內容。
讓成本可預測
供應商是依 Token(大約是字詞的片段)計費,包括你送出的輸入和模型寫出的輸出。影響帳單的主要有三件事:
- 對話長度。 每則新訊息通常都會重新送出整段對話,讓模型保有上下文。一段 40 則訊息的對話,每次回覆的成本遠高於 4 則訊息的對話。只保留最近幾輪,或將較早的內容摘要化。
- 提示詞大小。 冗長的系統提示詞,或大段貼入的知識內容,會隨著每則訊息一起送出。
- 輸出長度。 在 API 呼叫中設定回覆長度上限,並在提示詞中要求簡潔的回答。
上線前,請在供應商後台設定每月消費上限,並記錄每次請求的 Token 用量,以便找出哪些對話最耗費資源。本文不列出具體價格,因為價格因模型而異且經常變動;請查閱供應商自己的定價頁面。
一步一步打造
第一步:描述機器人,而不是描述程式碼
第一個提示詞如果能說明對象、服務範圍、資料與安全規則,大致就能完成大部分工作:
為 Oakline(一家自行車維修店)打造顧客服務聊天機器人。提供聊天頁面,包含訊息列表與輸入框,回覆需逐字串流顯示。透過伺服器路由呼叫 Anthropic API,使用私密的 ANTHROPIC_API_KEY 環境變數,絕對不要暴露給瀏覽器。系統提示詞只回答服務、價格與營業時間的問題,這些資訊來自名為 shop-info.md 的檔案;其他問題則回覆「我不確定,請撥打下方電話」。訊息限制為 500 個字元,每位訪客每小時最多 20 則訊息。設計要乾淨友善,並能在手機上正常使用。
第二步:把金鑰設為機密
在供應商的控制台建立金鑰,然後把它存進專案的環境變數或機密設定中,不要貼在聊天中,也不要寫進程式碼。如果金鑰曾經出現在公開的地方,請到供應商那裡撤銷,並建立新的金鑰。什麼是環境變數與機密說明了這件事為何重要。
第三步:測試答案,而不只是測試介面
聊天功能運作後,把大部分時間花在答案品質上。準備一份約 20 個真實問題的清單,其中包括幾個應該被拒絕回答的問題,每次修改提示詞後都重新跑一遍。檢查:
- 它是否遵守服務範圍?
- 它在不知道答案時,會承認而不是編造答案嗎?
- 有人試圖推翻它的指示時,它還能守住嗎?
- 金鑰是否完全沒有出現在瀏覽器下載的任何內容中?
第四步:需要時再加上記憶與帳號
單次對話運作正常後,再要求把對話存進資料庫,並在需要時加入註冊與登入功能,讓每位使用者只看得到自己的對話。同時設定每位使用者每日的訊息配額。
第五步:開啟限制後再發布
確認已發布的應用程式與預覽環境使用相同的機密設定、供應商後台已設定消費上限,且錯誤會記錄在你會看到的地方。然後先與一小群人分享,再放到你的主網站上。
安全與信任
聊天機器人是以你的名義對大眾說話,因此它的失敗模式都是你的責任:
- 錯誤的答案。 模型可能很有自信地說出不實的內容。讓機器人專注在狹窄的主題上,以你自己的內容作為依據,並在重要事項的回答旁附上「答案可能有誤」的簡短提示。
- 提示詞注入。 使用者(或機器人讀取的文件)可能含有「忽略先前的規則」之類的指令。不要給機器人它不值得信任的權限:不要讓它僅憑使用者一句話就處理退款、刪除資料或寄送電子郵件,除非你的程式碼先做了檢查。
- 敏感主題。 對於醫療、法律或財務問題,請讓它引導使用者去找專業人士,而不是直接提供建議。
- 個人資料。 除非必要,不要把客戶紀錄貼進提示詞,並查看供應商的條款,了解 API 資料如何被處理。
我們的AI 打造應用程式安全檢查清單涵蓋了整個應用程式的其他安全面向。
常見錯誤
- 從瀏覽器呼叫供應商。 金鑰會外洩。一定要經過你的伺服器。
- 公開的機器人沒有任何限制。 一支腳本一個下午就可能耗盡整個月的預算。
- 同時開始使用 RAG、工具與多個模型。 先讓一段對話運作良好,等真實的問題顯示你需要時再加入其他功能。
- 只測試友善的問題。 你的使用者第一天就會問奇怪、帶有敵意以及離題的問題。
- 讓對話無限增長。 每多一則訊息,成本與回應時間都會增加。
什麼時候更適合使用現成產品
當聊天機器人是你產品的一部分、需要你自己的資料或工作流程,或需要特定的外觀與行為時,自己打造才有意義。以下情況通常不建議自己做:
- 你只是想在現有網站上放一個客服小工具。 許多客服台與即時聊天產品現在都內建 AI 回答機器人,可以閱讀你的說明中心,並已內建人工接手、收件匣與報表功能。
- 只有你或你的團隊會使用。 訂閱 ChatGPT 或 Claude 之類的通用助理,再上傳你的文件,可能就已足夠。
- 你需要嚴格的合規保證(例如受管制的醫療或金融資料)。已取得相關認證的供應商,可能比自行打造更安全。
用 Mythex 打造
Mythex 是一款 AI 應用程式建構工具:你在聊天中描述聊天機器人,它會撰寫介面與伺服器端的呼叫,在即時預覽中執行,並發布到公開網址。應用程式內的 AI 使用的是你自己的供應商金鑰。你可以在專案機密中加入金鑰,或使用 Mythex 在聊天中需要時顯示的機密卡片。供應商的用量會計入你自己的供應商帳戶,而不是 Mythex 的建構額度。Mythex 不會為你應用程式的使用者提供 Token,也不提供內建的知識庫產品或現成的速率限制:這些都是你需要另外要求並測試的部分。
在應用程式中加入 AI的文件頁面會逐步說明流程,使用你自己的 API 金鑰加入 AI則提供了一個入門提示詞。
如果機器人需要保存對話,你可以要求 Mythex 為專案附加一個 Postgres 資料庫。若想了解在應用程式中使用模型的其他方式,從摘要到分類,請參閱如何為應用程式加入 AI 功能,或瀏覽應用程式範本以取得起點。
常見問題
打造 AI 聊天機器人應用程式一定需要自己的 API 金鑰嗎?
幾乎都需要。聊天機器人會把每則訊息送到 OpenAI、Anthropic 或 Google 等模型供應商,費用則由擁有該 API 金鑰的帳號支付。金鑰必須放在你的伺服器上,絕對不能放在網頁裡。
經營一個 AI 聊天機器人要花多少錢?
供應商是以 Token 計費,你送出的文字和模型回覆的文字都會計算在內,而且不同模型的價格差很多。由於每則新訊息通常都會重新送出整段對話,因此長對話每則回覆的成本會比短對話高。請查閱供應商的定價頁面,並在其後台設定消費上限。
我可以用自己的文件訓練聊天機器人嗎?
通常不需要訓練模型本身。如果內容不多,可以直接貼進系統提示詞;如果內容很龐大,則把它存起來,為每個問題搜尋相關段落,只把這些段落送給模型。這種做法稱為檢索增強生成(RAG)。
我不寫程式,也能打造 AI 聊天機器人嗎?
可以。AI 應用程式建構工具能根據你的白話描述,寫出聊天介面、呼叫模型的伺服器路由,以及儲存對話的資料庫。不過你仍需自己建立供應商帳號並取得 API 金鑰。