發布日期:2024 年 1 月 13 日
這是 LLM 聊天機器人系列文章的第三篇,也是最後一篇。先前的文章討論了用戶端 LLM 的強大功能,並逐步引導您在待辦事項應用程式中加入使用 WebLLM 的聊天機器人。
部分新款裝置會在裝置上提供大型語言和其他 AI 模型。Chrome 建議將內建 AI API 整合到瀏覽器,並在不同開發階段提供多種 API。許多 API 都會經過標準程序,讓網站可以使用相同的實作方式和模型,以便達到最佳推論效能。
Prompt API 就是這類 AI API 的其中之一。如要使用這項功能,建議開發人員註冊搶先預覽版計畫。一旦通過核准,您就會收到如何在瀏覽器中啟用 Prompt API 的操作說明。您可以在 Chrome 擴充功能的來源試用版中使用 Prompt API,為實際的擴充功能使用者測試這個 API。
共用模型存取權
Prompt API 的運作方式與 WebLLM 類似。不過,這次沒有模型選項 (您必須使用瀏覽器隨附的 LLM)。啟用內建 AI 時,Chrome 會將 Gemini Nano 下載到瀏覽器。接著,這個模型就能在多個來源中共用,並以最高效能執行。有一個 GitHub 問題,開發人員已要求新增模型選取功能。
設定對話
您可以以完全相同的方式啟動訊息對話,但 Prompt API 也提供簡寫語法,可用於指定系統提示。使用 self.ai.languageModel
屬性的 create()
方法啟動語言模型工作階段:
const session = await self.ai.languageModel.create({
systemPrompt: `You are a helpful assistant. You will answer questions related
to the user's to-do list. Decline all other requests not related to the user's
todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
});
回答第一個問題
Prompt API 不提供用於設定串流的設定物件,而是提供兩種獨立方法:
prompt()
會傳回完整字串promptStreaming()
會傳回非同步可枚舉項目。與 WebLLM 相比,Prompt API 會回應完整的字串回應,因此您不必自行合併結果。
如果沒有其他來源觸發模型下載作業,則 Gemini Nano 下載至瀏覽器時,您的第一個要求可能會花費很長的時間。如果模型已可供使用,系統會立即開始推論。
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
示範
摘要
將 LLM 整合至應用程式,可大幅提升使用者體驗。雖然雲端服務無論使用者裝置為何,都能提供更高品質的模型和高推論效能,但與雲端替代方案相比,裝置端解決方案 (例如 WebLLM 和 Chrome 的提示 API) 可離線運作、提升隱私權,並節省成本。試用這些新的 API,讓您的網頁應用程式變得更聰明。