The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

整理開發者應該知道的 Google 最新 Gemini API 相關知識

Google 最近一年來承受著 OpenAI 帶來的極大壓力,感覺公司內部不斷重組,產品名稱也是一直在變化。由於我最近花了比較多時間在研究 Google 的 Gemini 技術,過程一直不斷被「命名」苦惱,直到最近才比較清楚整個來龍去脈。這篇文章我打算來整理一下 Google 的 Gemini 到底推出過多少「相似」的名稱,包含分類方式、產品名稱、舊名稱、新名稱、變化的名稱、套件名稱、模型名稱、工具名稱、函式庫名稱等等,坐好啊,馬上起飛!😅

Build with Gemini

一個主軸

幾本上 Google 的 AI 產品線非常大,不過 Gemini 是屬於 Generative AI 這個分支下的產品,完全是生成式 AI 的範疇。

在這個主軸上,你可能會看到三種不同的說法:

  1. Generative AI

  2. Google Cloud generative AI

  3. Google Cloud Generative AI (大小寫我視為不同)

讓消費者體驗 AI 的產品

為了讓所有人都能體驗 Google AI 的強大,Google 也推出了一個消費者體驗的網站,名叫:Gemini

  • 新名: Gemini (免費版) 或 Gemini Advanced (付費版)

    目前的最新版網址是 https://gemini.google.com/

    免費版背後用 Gemini Pro 模型

    付費版背後用 Gemini Ultra 模型

  • 舊名: Bard

    如果還有使用者連到 https://bard.google.com/ 的話,會自動轉向到新版網站。

如果我們提到 Gemini AI 的話,通常講的並不是 API 服務,而是這個給消費者的網站!

給開發者的 API 服務

基本上 Google 提供的 Gemini API 有兩大分類:

  1. Google AI Gemini API (消費級) (沒有品質保證)

    官網: https://ai.google.dev/

    免費,限制 60 QPM (Queries Per Minute)

    其他可能的別名: Gemini API on Google AI

    單講 Gemini API 可能容易讓人誤解,因為這是一種比較籠統的說法,不過通常代表 Google AI Gemini API 這種。

  2. Vertex AI Gemini API (企業級) (有品質保證)

    官網: https://cloud.google.com/vertex-ai/

    需綁定 GCP 付款帳戶,依照呼叫的 Tokens 數計費。

    其他可能的別名:

    • Gemini API on Vertex AI
    • Gemini API in Google Cloud Vertex AI
    • Google Cloud Vertex AI Gemini API

備註: 在應用程式開發的領域中單講 Gemini AI 其實是不太精準的寫法,我們不會在用 API 的時候使用這個名字,但偶爾會看到有人這樣寫。( AI 與 API 傻傻分不清楚? )

Gemini 提供了三種模型大小,但目前只有一種有公開:

  1. Gemini Nano (未公開)

    微型生成式模型,專為移動裝置和邊緣裝置而設計。

  2. Gemini Pro (已有 API 可使用)

    介於規模與效能之間的生成式模型,已公開。

  3. Gemini Ultra (未公開)

    目前規模最大的 Gemini 生成式模型。

Gemini 提供的模型主要分成三種,在「模型代碼」方面各有不同的命名方式:

  1. 最新版 ( Latest )

    最前沿版本。基礎模型會定期更新,也可能為預覽版本。僅供「探索性測試」應用程式和「原型」使用此版本。

    命名方式: <model>-<generation>-<variation>-latest

    命名範例: gemini-1.0-pro-latest

  2. 最新穩定版 ( Latest stable )

    最新穩定版本。

    命名方式: <model>-<generation>-<variation>

    命名範例: gemini-1.0-pro

  3. 特定穩定版 ( Stable )

    特定的穩定模型版本。

    命名方式: <model>-<generation>-<variation>-<version>

    命名範例: gemini-1.0-pro-001

Gemini 的模型還擁有許多變體(variations),各自擁有不同的能力與限制,建議到 Model variations 查看細節。

  1. Gemini 1.5 Pro (Preview only)

    多模態模型,可輸入文字和圖像,並生成相關的文字。

    模型代碼: models/gemini-1.5-pro

  2. Gemini Pro

    文字模型,只能輸入文字,並生成相關的文字。

    模型代碼: models/gemini-pro

    • 最新版: gemini-1.0-pro-latest
    • 最新穩定版: gemini-1.0-pro
    • 特定穩定版:
      • gemini-1.0-pro-001
  3. Gemini 1.0 Pro Vision

    多模態模型,可輸入文字和圖像,並生成相關的文字。

    模型代碼: models/gemini-pro-vision

    • 最新版: gemini-1.0-pro-vision-latest
    • 最新穩定版: gemini-1.0-pro-vision
    • 特定穩定版:
      • gemini-1.0-pro-vision-001
  4. Embedding

    多模態模型,可輸入文字和圖像,並生成相關的文字。

    模型代碼: models/embedding-001

  5. AQA (Attributed Question & Answering)

    問答模型,可輸入文字,並生成相關的文字。

    模型代碼: models/aqa

  6. PaLM 2

    這是 Gemini 前一代的語言模型。

    • 最新版:
      • text-bison
      • text-bison-32k
    • 特定穩定版:
      • text-bison-32k@002
      • text-bison@001
      • text-bison@002
      • text-unicorn@001

Gemini 的 API 也有區分版本,不過這裡的版本是指 API 的版本,不是模型的版本。

我以我常用的 API 端點為例,我基本上用的是 v1beta 版本,可以體驗比較多功能,例如 Generate Content - Function calls

https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-001:generateContent?key={ApiKey}

所以在呼叫 Gemini API 時,要注意你呼叫的 API 端點上使用的版本:

  • v1

    穩定版本。在呼叫 Vertex AI Gemini API 的時候,由於會用在生產環境,所以通常都是用 v1 穩定版本。

    穩定版本中的功能在主要版本的生命週期內都獲得完整支持。

    如果存在重大變更,將創建下一個主要版本,並在合理時間後棄用現有版本。次要變更可能會引入到 API 中,而不會更改主要版本號。

  • v1beta

    此版本包含可能正在開發的搶鮮體驗功能,目前大多數 Google AI Gemini API 的 API 都是以 v1beta 為主。

    v1beta 可能會快速迭代更新且存在重大變更。也不能保證 Beta 版本中的功能會遷移到穩定版本。

    由於其不穩定性,您不應使用此版本啟動生產環境的應用程式。

完整的清單可以看 API versions explained 文件。

Gemini 的 API 實驗工具

Google 提供了一個專門為開發人員打造的實驗工具,讓開發者可以在瀏覽器中直接體驗 Gemini 的 API 功能,不過,他也直接分成了兩套:

  1. Google AI Studio (舊名: MakerSuite )

    這是一個網頁版的實驗工具,可以直接在瀏覽器中體驗 Google AI Gemini API 的各種能力。

  2. Vertex AI Studio

    這是一個網頁版的實驗工具,可以直接在瀏覽器中體驗 Vertex AI Gemini API 的各種能力。

Geimin API 的 Python SDK

我們在 Google AI StudioVertex AI Studio 中體驗完 API 功能後,都有現成的 Get Code 功能,可以很方便的用來取得相對應的 Python 程式碼或 cURL 命令,不過兩個不同版本的 Python SDK 套件名稱差異還蠻大的。

  • Google AI Gemini API 的 Python SDK

    套件名稱: google-generativeai

    開源專案: https://github.com/google/generative-ai-python

    其他別名:

    • Google AI SDK
    • Google AI SDK for Python
    • Google AI Python SDK
    • Google Python SDK for the Gemini API
  • Vertex AI Gemini API 的 Python SDK

    套件名稱: vertexai

    開源專案: https://github.com/googleapis/python-aiplatform

    其他別名:

    • Vertex AI SDK
    • Vertex AI SDK for Python
    • Vertex AI Python SDK
    • Google Python SDK for the Vertex API
    • Generative AI on Vertex AI

總結

Gemini 這麼多種花式的命名,老實跟你說,連 Google 的官方文件也會寫錯,更別說初入 Google Cloud 叢林的小白兔了。😅

我在實驗的過程中,有很明顯的發現,Google AI Gemini API 真的相當不穩定,每天的狀況都不太一樣。但是相對的 Vertex AI Gemini API 就穩定多了,而且回應速度也非常穩定,我覺得可靠許多!

最後就是我個人使用 Gemini 的小小心得:

  1. 給一般大眾的 Gemini 網站功能非常多,在輸入提示詞的時候,你的提示詞會被系統自動加料,所以基本上不太能用來做提示工程的相關實驗。

  2. Google AI Studio 雖然感覺上背後就是直接呼叫 Google AI Gemini API,但實際上有套了一層殼,Google 還是有在這個介面背後還是有偷偷做了一些事,應該是例外處理或負責任 AI 等過濾工作,但我無從得知他們實作做了哪些調整,總之跟我自己呼叫 API 的實際狀況是有差距的。

  3. Vertex AI Studio 也是同理,背後也是套了一層殼。

  4. 即便兩套 AI Studio 都有套殼,但是拿來做提示工程的實驗是完全沒問題的!👍

相關連結

留言評論