Google: Gemini Embedding 2
Gemini Embedding 2 將文字、圖片、音訊、影片與 PDF 映射至共用數值空間。其向量支援跨模態搜尋、檢索、分類與分群,並提供彈性維度及 8,192 token 輸入上限。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Gemini Embedding 2 是 Google 用於數值表示文字、圖片、影片、音訊與 PDF 的多模態嵌入模型。它將不同媒體型別映射至共用空間,讓應用程式跨型別比較意義。結果是數值向量,可用於語意搜尋、文件檢索、推薦、分類或分群;不是書面答案或生成的媒體檔案。Google 記載其語意範圍涵蓋超過 100 種語言。
知識庫可先為來源段落建立向量,將使用者查詢與向量比較,再檢索相關資料。另一個文字模型隨後可使用這些來源撰寫答案。媒體集合可以用文字描述搜尋相關圖片或影片,圖片也能作為查詢。請保留各向量與原始內容的連結,包括頁面或片段參照,讓檢索結果可被檢視,並在原始上下文中呈現。
整體輸入上限為 8,192 token。穩定版模型指南允許最多六張 PNG 或 JPEG 圖片、最長 180 秒 MP3 或 WAV 音訊,以及最長 120 秒 MP4 或 MOV 影片。文件所載影片編碼格式為 H264、H265、AV1、VP9。影片處理最多使用 32 個影格:32 秒以內片段每秒取樣一格,較長片段則均勻取樣至 32 格。該影片輸入不處理音軌;聲音與檢索相關時,請另外嵌入音訊。
PDF 輸入接受一個最多六頁的檔案。Google 建議每個 PDF 一頁以獲得最佳品質。請將較大來源拆成有意義的頁面或章節,並保留與原始文件的關係。選擇代表可檢索內容的摘錄,不要只因符合上限就合併無關資料。混合媒體請求仍適用共用 token 邊界。每個 PDF 頁面除擷取文字 token 外,還消耗 258 個視覺 token。Google 文件所載流程中,超過共用 8,192 token 上限的內容會被截斷而不報錯。
輸出維度可在 128 至 3,072 之間彈性選擇,預設為 3,072,建議大小為 768、1,536、3,072。模型使用 Matryoshka Representation Learning,因此向量前綴在較小維度下仍有用。指南記載,預設及縮短向量都會自動正規化。請為應用程式比較的記錄與查詢選擇一致維度;要求的大小改變數值表示,不改變來源內容本身。
純文字任務請將用途納入文字,而非使用舊的 task_type 欄位。Google 區分非對稱檢索與對稱比較。搜尋查詢使用 “task: search result | query: {content}”,來源文件使用 “title: {title} | text: {content}”;沒有標題時使用 “title: none”。問答、事實查核及程式碼檢索任務有各自的查詢前綴。分類、分群或句子相似度,請在兩端一致使用相同任務格式。指南通常建議,不要在合併多模態表示的文字部分加入任務前綴。
輸入結構決定結果表示一個合併物件,或多個獨立項目。一起提供的多個部分會建立聚合嵌入;分開的 Content 物件則為每個項目建立獨立嵌入。文字與圖片貼文可透過合併表示捕捉兩者關係。需獨立搜尋的記錄,請保持分開。這會影響檢索粒度:整篇貼文一個向量,不同於每個段落或圖片各一個向量。
指南指出,Gemini Embedding 001 與 Gemini Embedding 2 向量位於不相容空間,不能直接比較。從舊模型移轉的集合必須為新空間重新建立嵌入。請讓模型選擇與維度符合正在比較的向量,並將原始文字和媒體與數值索引分開保留。嵌入相似度是檢索訊號,不是文件為何回答使用者問題的事實解釋。
實際目錄中,若產品照片與核准說明應作為同一物件檢索,請一起嵌入。文件集合請嵌入聚焦段落,與依用途設定格式的查詢比較,再將來源段落和搜尋結果一起呈現。音訊或影片請選擇描述可搜尋事件的區段,並保留原始時間範圍。實用產物是連結來源證據的數值表示,供應用程式下一個搜尋或分析步驟使用。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings google/gemini-embedding-2
google/gemini-embedding-2入門
Gemini Embedding 2 將文字、圖片、音訊、影片與 PDF 映射至共用數值空間。其向量支援跨模態搜尋、檢索、分類與分群,並提供彈性維度及 8,192 token 輸入上限。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 8,192 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 google/gemini-embedding-2 | 預設值— |
欄位input | 類型string|string[]|integer[]|integer[][] | 要求必填 | 值與限制 項目數下限: 1 條件: 批次不得為空,且各項目類型須一致。Token ID 須為非負整數。 輸入額度: 最大值: 8,192 · 文字單位: UTF8 位元組 · Token 單位: token 陣列元素 | 預設值— |
欄位encoding_format | 類型string | 要求選填 | 值與限制 float | 預設值float |
欄位dimensions | 類型integer | 要求不支援 | 值與限制 最小值: 1 | 預設值— |
欄位user | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位session_id | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位trace | 類型json_value | 要求選填 | 值與限制 條件: 來源允許此 JSON 中繼資料欄位;確切的上游語意依模型而異。 | 預設值— |
欄位provider | 類型object | 要求選填 | 值與限制 條件: provider.options 遭拒絕 | 預設值— |
輸入素材組合
text_to_embedding
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input |
參數input_shapes | 規格string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
參數encoding_format | 規格float |
參數dimensions_override | 規格false |
參數max_input_budget_units | 規格8192 |
參數multimodal_objects | 規格false |
參數material_types | 規格text, token_ids |
生命週期: synchronous_json
保留每個向量的索引與維度。
即使模型名稱標示為多模態,此指定路徑也不接受圖片物件。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
| 設定 | 費率表 | 費用 |
|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token $0.0004 / 1K Token 輸出 · 輸出 Token $0 / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 嵌入向量
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-embedding-2", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='google/gemini-embedding-2',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
接收並儲存結果
Ailoot Ultra · 嵌入向量
json
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留每個向量及其索引。向量數量必須與輸入數量相同,且維度必須一致。
需要檢查原始回應時
此流程未引入嵌入向量任務端點。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位object | 類型string |
欄位model | 類型string |
欄位data[].index | 類型integer |
欄位data[].embedding | 類型finite float[] |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra google/gemini-embedding-2
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Google: Gemini Embedding 2
- 可以使用哪些輸入與結果?
POST /v1/embeddings·google/gemini-embedding-2:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·google/gemini-embedding-2:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·google/gemini-embedding-2:ctx:8192;input.budget.maximum:8192(UTF8 位元組);input.min_items:1