發布日期:2025 年 4 月 28 日,上次更新日期:2025 年 5 月 21 日
AI 技術快速發展,為網頁應用程式開創了新領域,尤其是裝置端功能問世後,瞭解日本頂尖網路公司 CyberAgent 如何運用 Chrome 的內建 AI 和 Prompt API,提升自家平台 Ameba Blog 的部落格體驗。
我們將分享他們的目標、使用內建 AI 的優點、面臨的挑戰,以及為其他使用內建 AI 的開發人員提供的實用洞察資訊。
什麼是 Prompt API?
說明 | 網頁 | 額外資訊 | Chrome 狀態 | Intent |
---|---|---|---|---|
GitHub | 查看 | 實驗意圖 |
開發人員可透過 Prompt API 使用大型語言模型,直接在應用程式中加入 AI 功能。定義自訂提示後,應用程式就能執行資料擷取、內容生成和個人化回覆等工作。在 Chrome 中,Prompt API 會使用 Gemini Nano 執行用戶端推論。無論使用哪種模型,這項本機處理功能都能提升資料隱私權和回覆速度。無論使用哪種模型,用戶端的回應速度。
Ameba Blog 作者的 AI 輔助功能
CyberAgent 發現作者普遍面臨一個痛點:製作引人入勝的內容 (尤其是標題) 往往非常耗時。他們假設在部落格建立介面中整合 AI 技術輔助功能,可大幅提升內容建立的品質和效率。他們的目標是提供靈感工具,協助部落客製作引人入勝的內容。
CyberAgent 使用 Prompt API 開發了 Chrome 擴充功能,這項擴充功能提供一系列 AI 輔助功能,可協助 Ameba Blog 作家生成標題和內文、後續段落,以及一般文案改善項目。
CyberAgent 需要彈性功能,因此直接採用 Prompt API。CyberAgent 透過這項 API 獲得無限可能,因此能夠準確判斷最適合 Ameba 作者的內容,並提供實用資訊。
CyberAgent 邀請特定數量的部落客測試擴充功能,並從中獲得寶貴洞察,瞭解所提供功能的實用性。CyberAgent 根據意見回饋,找出更適合 AI 輔助的應用程式,並改良擴充功能的設計。根據正向結果和意見回饋,CyberAgent 預計在未來發布這項功能,直接為部落格社群提供用戶端 AI 的強大功能。
讓我們進一步瞭解這些功能。
撰寫更出色的標題
擴充功能會根據完整的網誌內容,產生多個標題建議。部落格撰寫者可以進一步調整這些建議,選項包括「重新產生」、「更禮貌」、「更隨性」或「產生類似標題」等。
CyberAgent 專門設計了 UI,讓使用者不必撰寫任何提示。如此一來,即使使用者不熟悉提示工程,也能善用 AI 的強大功能。
此外,擴充功能還能為部落格的各個部分生成吸引人的標題,作者只要選取標題的相關文字,即可提出要求。
使用 Prompt API 生成標題的程式碼包含初始提示和使用者提示。初始提示會提供背景資訊和指令,以取得特定類型的輸出內容,而使用者提示則會要求模型與使用者撰寫的內容互動。如要進一步瞭解他們的程式碼,請參閱「部署 AI 輔助功能」。
生成後續段落
這項擴充功能會根據所選文字生成後續段落,協助部落客克服寫作障礙。AI 會根據前一段的內容草擬後續段落,讓作者維持創作流程。
改善及編輯文字
Gemini Nano 會分析所選文字,並提供改善建議。使用者可以根據語氣和語言選擇的額外附註,重新生成改良內容,讓文案「更可愛」或「更簡單」。
部署 AI 輔助功能
CyberAgent 將擴充功能程式碼分成三個步驟:建立工作階段、觸發和模型提示。
首先,瀏覽器會檢查內建 AI 是否可用且受支援。 如果是,他們會使用預設參數建立工作階段。
if (!LanguageModel) {
// Detect the feature and display "Not Supported" message as needed
return;
}
// Define default values for topK and temperature within the application
const DEFAULT_TOP_K = 3;
const DEFAULT_TEMPERATURE = 1;
let session = null;
async function createAISession({ initialPrompts, topK, temperature } = {}) {
const { available, defaultTopK, maxTopK, defaultTemperature } =
await LanguageModel.availability();
// "readily", "after-download", or "no"
if (available === "no") {
return Promise.reject(new Error('AI not available'));
}
const params = {
monitor(monitor) {
monitor.addEventListener('downloadprogress', event => {
console.log(`Downloaded: ${event.loaded} of ${event.total} bytes.`);
});
},
initialPrompts: initialPrompts || '',
topK: topK || defaultTopK,
temperature: temperature || defaultTemperature,
};
session = await LanguageModel.create(params);
return session;
}
每項功能都有使用者觸發的輔助函式。觸發後,使用者點選相關按鈕時,系統會相應更新工作階段。
async function updateSession({ initialPrompts, topK, temperature } = {
topK: DEFAULT_TOP_K,
temperature: DEFAULT_TEMPERATURE,
}) {
if (session) {
session.destroy();
session = null;
}
session = await createAISession({
initialPrompts,
topK,
temperature,
});
}
工作階段更新後,他們會根據函式提示模型。舉例來說,以下程式碼會產生標題,並以更正式的語氣重新產生標題。
async function generateTitle() {
// Initialize the model session
await updateSession({
initialPrompts: [
{ role: 'system',
content: `Create 3 titles suitable for the blog post's content,
within 128 characters, and respond in JSON array format.`,
}
]
});
const prompt = `Create a title for the following
blog post.${textareaEl.textContent}`;
const result = await session.prompt(prompt);
try {
const fixedJson = fixJSON(result);
// display result
displayResult(fixedJSON);
} catch (error) {
// display error
displayError();
}
}
async function generateMoreFormalTitle() {
// Do not execute updateSession to reuse the session during regeneration
const prompt = 'Create a more formal title.';
const result = await session.prompt(prompt);
...
}
內建 AI 的優點
內建 AI 屬於用戶端 AI,也就是說,推論是在使用者裝置上進行。CyberAgent 選擇使用 Gemini Nano 內建的 AI API,是因為這項技術為應用程式開發人員和使用者帶來許多優勢。
CyberAgent 著重的關鍵優點包括:
- 安全性和隱私權
- 費用
- 積極回應和穩定性
- 開發容易程度
安全性和隱私權
直接在使用者裝置上執行 AI 模型,而不將資料傳輸至外部伺服器,這點至關重要。網誌草稿不應公開,因此 CyberAgent 不會將這些草稿傳送至第三方伺服器。
內建 AI 會將 Gemini Nano 下載到使用者裝置,因此不需要從伺服器傳送及接收資料。撰寫郵件時,草稿可能包含機密資訊或非預期的內容,因此這項功能特別實用。內建 AI 會將原始內容和生成內容保留在本機,不會傳送至伺服器,因此可提升安全性並保護內容隱私權。
節省成本
使用內建 AI 的主要優點之一,就是瀏覽器內含 Gemini Nano,且 API 可免費使用。沒有額外或隱藏費用。
內建 AI 可大幅降低伺服器成本,甚至完全免除 AI 推論相關費用。這項解決方案可快速擴展至大量使用者,且使用者可連續提交提示來修正輸出內容,不必支付額外費用。
積極回應和穩定性
內建 AI 可提供一致且快速的回覆,不受網路狀況影響。使用者可以反覆生成內容,輕鬆嘗試新點子,並快速獲得滿意的最終結果。
開發容易程度
Chrome 內建的 AI 提供現成可用的 API,可簡化開發程序。開發人員可輕鬆為應用程式建立 AI 輔助功能。
Gemini Nano 和內建的 AI API 會安裝在 Chrome 中,因此不需要額外設定或管理模型。這些 API 與其他瀏覽器 API 一樣使用 JavaScript,不需要具備機器學習專業知識。
克服挑戰,提升成效
CyberAgent 在使用 Prompt API 的過程中,學到許多與用戶端 LLM 合作的細微差異,這些經驗彌足珍貴。
- 回覆內容不一致:與其他 LLM 相同,Gemini Nano 無法保證對相同提示產生相同輸出內容。CyberAgent 遇到格式非預期的回覆 (例如 Markdown 和無效的 JSON)。即使有指示,結果也可能大不相同。實作任何內建 AI 的應用程式或 Chrome 擴充功能時,建議加入因應措施,確保輸出內容一律採用正確格式。
- 權杖用量限制:管理權杖用量至關重要。CyberAgent 使用
inputUsage
、inputQuota
和measureInputUsage()
等屬性和方法管理工作階段、維持脈絡,並減少權杖消耗量。這在調整標題時尤其重要。 - 模型大小限制:由於模型會下載到使用者的裝置上,因此比伺服器型模型小得多。因此,請務必在提示中提供充足的背景資訊,才能獲得令人滿意的結果,尤其是在摘要功能方面。進一步瞭解如何解讀 LLM 大小。
CyberAgent 強調,雖然用戶端模型尚未在所有瀏覽器和裝置上普遍適用,且較小的模型有其限制,但仍可針對特定工作提供令人驚豔的效能。這項工具可讓您快速反覆測試,且無需支付伺服器端費用,因此非常實用。
他們建議取得平衡,並瞭解無論是伺服器端或用戶端 AI,都難以產生完美的回覆。最後,他們認為混合式方法結合伺服器端和用戶端 AI 的優勢,將能發揮更大的潛力。
展望未來
CyberAgent 探索內建 AI 的過程,展現了無縫整合 AI 的令人振奮可能性,可望提升使用者體驗。他們建構的擴充功能可與 Ameba Blog 搭配使用,展現如何實際運用這些技術解決現實世界的問題,為更廣大的網頁開發社群提供寶貴的經驗。
隨著技術成熟,以及瀏覽器和裝置支援範圍擴大,我們預期內建 AI 和其他形式的用戶端 AI 將有更多創新應用。
資源
- 進一步瞭解 Prompt API
- 開始使用 Chrome 的內建 API
- CyberAgent 的 Web AI 個案研究,內容涵蓋相同主題。
- 觀看「The future of AI is now」,瞭解 CyberAgent 的用戶端 AI 案例研究
特別銘謝
感謝 Ameba 的部落客 ao、Nodoka、Erin、Chiaki 和 socchi 提供意見回饋,協助我們改善擴充功能。感謝 Thomas Steiner、Alexandra Klepper 和 Sebastian Benz 協助撰寫及審查這篇網誌文章。