iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

4-7 call Gemini Nano API in Gemini Canary 金絲雀

筆者備註 Chrome新版 已經可以直接呼叫 Gemini Nano API

https://ithelp.ithome.com.tw/upload/images/20240811/20046160JWdo5XfxJZ.png

目前 2024.7 在 chrome 上 還屬於 beta 開發階段 , 必須使用開發版本的 Canary 金絲雀 才能呼叫

什麼是Chrome Canary?

對於不熟悉的人來說,Chrome Canary是Google Chrome的實驗版本,專為開發人員和技術愛好者設計,用於測試最新功能和API,這些功能和API在廣泛發布之前可以在此測試。

要測試本地AI,我們需要使用Chrome Canary,因為這一功能仍處於測試階段,可能不穩定。

為什麼我們需要本地AI?

  • 增強的安全性和隱私性
  • 改進的性能
  • 更快的反應時間
  • 成本效率

如何在Chrome Canary上開始使用Gemini Nano?

設置Chrome Canary標誌

  1. 首先,確保你使用的是Chrome 128.0.6545.0或更高版本,您可以到Chrome Dev或Canary下載。
  2. 在地址欄輸入 chrome://flags/#optimization-guide-on-device-model ,將“Enables optimization guide on device”設置為 Enabled BypassPerfRequirement
  3. 在地址欄輸入 chrome://flags/#prompt-api-for-gemini-nano ,將“Prompt API for Gemini Nano”設置為 Enabled
  4. 重啟瀏覽器。
  5. 打開開發者工具,輸入 await window.ai.createTextSession();
  6. 導航到 chrome://components,應該會看到一個“Optimization Guide On Device Model”顯示正在下載。
  7. 等待下載完畢後,在開發者工具中輸入 await window.ai.canCreateTextSession();
  8. 如果結果是 no,表示模型沒有下載,請返回前面步驟確認每個步驟是否確實執行。
  9. 如果結果是 after-download,表示正在下載,請稍等片刻。
  10. 如果回應 readily,則表示Gemini Nano已經準備就緒。

使用Gemini Nano生成回應

要驗證Gemini Nano是否成功安裝並準備生成回應,請使用以下命令在Chrome的開發者工具控制台中輸入:


await window.ai.canCreateTextSession()

應該回應 readily

測試基本查詢

為了保持整體應用簡單,我們將在控制台內部構建一個文本摘要器。

獲取選中文本的函數


function getSelectedText() {
    var selectedText = window.getSelection().toString();
    return selectedText;
}

document.addEventListener('mouseup', function() {
    var selectedText = getSelectedText();
    if (selectedText) {
        console.log(selectedText);
        // 對選中文本進行進一步操作
    }
});

下一步是將這些數據注入到Gemini Nano中。我們可以稍微重構和修改上述函數來完成此操作。


function getSelectedText() {
    return window.getSelection().toString();
}

async function handleSelection() {
    const selectedText = getSelectedText();
    if (selectedText) {
        const canCreate = await window.ai.canCreateTextSession();
        console.log("正在摘要數據...");
        if (canCreate !== "no") {
            try {
                const session = await window.ai.createTextSession();
                const result = await session.prompt("將以下內摘要為50字內: " + selectedText);

                console.log(result);
            } catch (error) {
                console.error("創建會話或提示時出錯:", error);
            }
        }
    }
}

document.addEventListener('mouseup', handleSelection);

根據您機器的硬體,回應通常應在幾秒鐘內生成。

這對我們意味著什麼?

這意味著構建GenAI應用和包裝器變得更加簡單。一旦這一功能在Google Chrome上公開可用,開發的擴展和網站數量可能會令人驚訝。

對於開發者來說,最好的一點是它不需要資本投資,並且不必擔心超過API配額而破產。

參考

https://medium.com/google-cloud/google-chrome-has-a-secret-ai-assistant-9accb95f1911

https://www.threads.net/@thingsaboutwebdev/post/C9D-H9HSYWc

關於我

我是 Wolke。我是一名專業程式開發者,專長是開發 AI 和程式解決方案。

我投入了不少時間在專業發展上。我是多本書的作者,其中包括《LINE聊天機器人+AI+雲端+開源+程式:輕鬆入門到完整學習》《ChatGPT來襲,未來人人都需具備的運算思維!應用詠唱工程來釋放程式生產力—程式學習/開發篇》。也有出版線上課程,我熱衷於分享我的經驗和技術,幫助其他開發者更好地利用 AI 工具。

也在許多知名大學、論壇、社團擔任講者,如果貴方有需要也歡迎與我聯繫。
2023年 講座 紀錄

最後這篇文章若有切合你的需求,敬請訂閱按讚分享


上一篇
4-6 Gemini 學習的資源 ex: cookbook 官網
下一篇
5-1 前言
系列文
運用生成式 AI 服務 所提供的API 實做應用開發(以Gemini及ChatGPT為例)44
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言