跳到主要內容

一起來玩 Studio Bot (Gemini in Android Studio)![更新:2024/04/09]

有關注今年(2023) Google IO 的 Android 開發者們,應該都有注意到一個有趣的東西,Studio Bot,它在公開後,僅在美國境內可以使用,終於在台北時間 9/22 看到它向全世界 170 以上的地區開放。



什麼是 Android Studio Bot

這是一個整合在 Android Studio 中的對話型 AI 輔助工具,它是基於 Google 的大型語言模型 (Large Language Model,LLM) - PaLM2 所開發,基本上就是 Google Bard 那套啦。
它可以協助我們開發 Android 應用時,能夠在不離開 Android Studio 這個開發工具的狀況下,直接以對話的方式向它提問,並獲得回應...
怎麼越說越覺得有點像以前的迴紋針... (別跳出來說自己知道我在說什麼 xD

它的第一時間公開在全世界的時間點是 2023 年 Google IO 大會發佈的影像 What's new in Android development tools 的演示過程中;

大會的演示情境是以開發過程發生異常的方式,讓我們看到可以直接打開 Studio Bot 來取得解法。

截圖自「What's new in Android development tools」影片中
(截圖自「What's new in Android development tools」影片中)

這個工具無疑是為 Android 開發者帶來一個方便又能較為精準的解答工具,而在發佈的時間點,它僅能在還處於 Canary Build 的 Iguana,這個 Android Studio 的預覽版本中,且也只有美國地區才能使用,而在同年的 9/22 終於開放給全世界超過 170 個地區使用了。

[2024/04/09 更新] 
1. 更新的這個時間點,Iguana 已經是穩定版,而 Studio Bot 仍只能在預覽版 (Jellyfish 以及 Koala) 使用。
2. Studio Bot 更名為 Gemini in Android Studio
Studio Bot 更名為 Gemini in Android Studio

怎麼啟用

不想看啟動的操作步驟請自行跳過這段 😆

1. 先下載 預覽版

寫在前面:
如果已經有安裝 Jellyfish 之後的版本,可以跳過這個步驟
所以想玩的朋友需要先下載預覽版本。
我們先進到 Android Studio 的首頁,可以馬上看到這個介紹 Studio Bot 已經開發給更多地區的介紹區塊!

接著進到預覽分頁,左右任選一版本皆可。

如果是 Mac 的話,記得要選擇自己對應的晶片版本。

2. 啟動 Studio Bot

使用 Studio Bot 需要我們先登入自己的 Google 帳號;
登入後再依著它的提示畫面往下操作就可以看到對話框了。

2.1 開啟專案後,在右手邊可以看到有個 Gemini 的 Icon



2.2 點開它後需要登入我們的 Google 帳號!




2.4 啟動 Studio Bot





善用 Studio Bot

1. 基本的提問使用

隨著各種大型語言的服務越來越多的狀況下,怎麼使用想來已經不是什麼問題,最主要我們怎麼「善用」這樣的工具,為我們帶來最合適的回答,也就是我們得知道怎麼「問個好問題」。
下面擷圖讓大家看看
首先我是先問了一個如何撰寫 Jetpack Compose 的問題,而它就是回答我什麼是 Jetpack Compose 為何,以及如果要寫可以去哪裡看。
也能看到我即使故意打錯了字,他也是能正確回覆。 (心虛)

再來是問它要怎麼寫
這樣延續問下來,它才真正給了我們「程式碼」的範例,而不是丟要去哪裡學習的文字給我們。
然後各位有發現嗎?
我的第二題是用中文發問,它就直接以中文回應了我,所以各位就比較不用擔心是否還要想怎麼英文發問的狀況啦~~

再來大家一定會想知道,這樣的程式碼是否能用,我們往下來看

程式碼的下方有四個按鈕,從左到右依序為
  1. Copy
    直接複製區塊中的全部程式碼,讓我們自己貼到想放置的地方

  2. Insert at Cursor
    在我們游標當下的位置,將區塊中的程式碼插入。
    這時還分兩種狀況
    1. 不在函式區塊間,它會直接插入。
    2. 如果是在某函式區間,它還會提示詢問我們要它怎麼插入這段程式碼。


  3. Insert in New Kotlin File
    將這段建議的程式碼另開一個新檔案存放使用


  4. Explore with Playground
    在 IDE 中另開 Playground 讓我們測試處理

基本上會依程式範例的複雜度,這四個按鈕的呈現可能會有不同
這題只是一個簡單的案例,在官方文件「Meet Studio Bot」有一個 Tips for engaging with Studio Bot 區塊有簡單地為我們說明合適的問法。
(擷圖自「Meet Studio Bot」文件中)

以上面這個擷圖來看來說,我們想要它提供給我們一個「功能」,我們最好的問法是以步驟式的條例出來,讓它逐一為我們回答。

2. 協助專案的問題處理

以下面這個問題做為案例,當編輯過程中發生錯誤時,我們可以按右鍵點擊「Ask Studio Bot」

會獲得這樣的回應片段

它除了告知這個 log 的可能問題,其中也有提供了像這題需要加入 dempendency 的片段步驟,除了我們可以自己複製貼上,還可以借助它下方提供的「Add ... to Project」的功能,將該套件自動加入我們的專案中。

但是!
這題的回應是有問題的 XD
原因其實我們可以在對話框中的問題,它幫我們自動帶入的其實就是我們日常開發所會做的動作,將 log 中的文字直接到 Google Search 去搜尋結果一般;

它就是這麼直接為我們將 log 的文字貼到對話框中了,所以無論如何,我們還是要有一定判別能力,對它問出正確的問題。

備註

這邊要特別備註一下,既然已經知道它的回答有問題,我還要特別寫出來並不是要 diss,說它無用 XD
絕對不是!絕對不是!絕對不是!(很重要,要說三次)
主要的三個點想和大家聊聊:
  1. 它的回應會給出對應的建議與可能解決方法,如果在正確的狀況下是好用的!
  2. 呼應前面一段,問對問題很重要。
    方向正確且明確的問題,對於這樣的大型語言模型一個很重要的起頭;
    也就是它回中也有提到,log 中的詳細內容應該也要是我們去閱讀,練習找到核心的問題讓它給我們更為正確的回應
  3. 再來是其得到的結果,我們要有識別能力,像這題,我們只無腦的將它插入套件,不但解決不了問題,還多了一包沒用到的套件,這都是我們要注意的。

一些我們可能會思考質疑的點

以下是個人針對自己的觀察,以及想的問題簡單的整理一下

1. 它的專案隱私性如何?

其實直白的問,就是我們專案的程式碼會不會被上傳到 Google Server 中。
基本上這題,在官方文件中其實有明確講到,只要是透過 Studio Bot 傳送的訊息,都會上傳到 Google Server 中再給予回應。

(擷圖自「Meet Studio Bot」文件中)

這個就個人的觀察來看,在 Android Studio 中,它是獨立的其中一個服務。它沒有要我們存放在目錄中的權限,意謂著,只要沒有自己將程式碼貼到 Studio Bot 裡,它是不會伸手到我們的程式專案中的。

2. 和 Github copilot 的比較

Copilot 它是一個由 Github 提供給開發者的開發套件,它可以在我們開發的過程中,根據我們當前的程式碼提供直接顯示編輯器上的建議,註解乃至可能可以呼叫的存在函式。這意謂這個套件是會在本機端分析我們的專案結構,而提供開發資訊,的確是做到它說的就是一個 AI pair programmer 的身份陪伴著開發者
Your AI pair programmer
(擷圖自「GitHub Copliot」首頁)

而 Android Stuiod Bot 比較像是一個 AI 顧問,它是一個隨側在旁的顧問,讓我們不用另外開啟 Google Search 去搜尋問題,而只要打幾個字,讓它為我們解答,至於實用性,我想應該還是得要看各個專案的複雜度與情境。畢竟,它也是即時的去找當前網路上的解答整理給我們的內容嘛!

3. 是否只能回答 Android 開發的問題

這個問題,在撰文的這個當下,是「對」它目前只能回答 原生 Android 開發的問題,但有趣的是,可以給各位看看下方的擷圖 XD

它回答我可以回答,所以我也就不客氣的提問,結果就想當然爾的...

它給了我一個被「遮蔽起來」的程式碼範例 XD

[2024/04/09 更新] 同樣的問題已經可以回答我了

至於是否能執行...
我沒去驗證 XD

4. 和 Gemini Code Assist (舊名 Duet AI for Developer) 的差別

Android Studio 雖然是以 intelliJ IDEA 做為基底,但畢竟是 Android 開發的特化版,Google Cloud Code 這個外掛 (Plugins) 似乎就沒有開放給 Android Studio 使用。那也就無法在這裡使用 Gemini Code Assist 了。
換個角度說,因為 Gemini Code Assist 是需要付費的,所以想用免費版的話,那就來 Android Studio 用 Gemini in Android Studio 吧 🤣
但是~~~
Gemini in Android Stduio 基本上就是內嵌在 Android Studio 中的 Gemini 對話框,沒有像 Code Assist 的完整功能。

未來如果有想到什麼再做補充,歡迎各位朋友提出討論,或是將您想到的有趣測試來分享一下哦!

[2024/04/09 更] 舊畫面留念用 XD


參考來源:


留言

這個網誌中的熱門文章

營業事業統一編號的驗證邏輯

最近剛好手邊有需求需要處理統一編號的驗證需求,因此有了這篇。 本篇根據文件,進行了文字邏輯描述,最後分別以 Dart 與 Kotlin 兩份程式碼呈現給各位,如果有認何疑問歡迎提出、討論。

使用 Google Gemini API 快速建置自己的 Flutter App

在 2024/02/21,Flutter Team 釋出了 Google Generative AI 這個 SDK,這個 SDK 大幅簡化了 Google Gemini API 呼叫的過程。讓 Flutter 或 Dart 開發者,只要在幾行的程式碼內,就能完成 Google Gemini API 的實作;這我們只要專注在 Flutter 的開發即可。 不囉嗦!我們直接來看怎麼使用! 在導入 Gemini API SDK 後,讓我們可以用這短短的幾行程式碼,便能獲得 Gemini API 的結果。 我們先來疏理一下需要準備的步驟 取得 API Key Flutter 專案設定 SDK 自由開發~ 1. 取得 API Key 1.1 Google AI Studio 首先,我們需要到 Google AI Studio  取得 API Key, 如下圖,進到 Google Ai Studio 平臺中的  Get Api Key   頁面,可以看到 Create API Key  的按鈕 1.2 Create API Key 選擇我們 Google Cloud 上的 projects,再點擊下方的 Create API key in existing project   等待一下,就能看到如下圖一樣,可以被複製的 API Key ...