VoyageAI by MongoDB: voyage-multimodal-3.5
Voyage AI voyage-multimodal-3.5 將文字、圖片與影片影格嵌入共用的檢索空間。它處理文件截圖、表格與場景等交錯內容,支援 32,000 token 輸入,預設表示為 1024 維。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
voyage-multimodal-3.5 是 Voyage AI 用於跨文字、圖片及影片檢索的嵌入模型。它透過單一 Transformer 編碼器處理交錯的文字與視覺內容,將完整多模態輸入表示於共用向量空間。3.5 版本加入明確的影片影格支援與彈性嵌入維度。
保留文字與視覺內容的關係
請以保留實用視覺資訊的形式準備文件頁面或章節。含有圖表及簡短解釋的投影片,可以將投影片圖片與附隨文字放在同一個有序輸入中表示。對於以 PDF 為基礎的集合,文件所載視覺輸入是頁面截圖或文件的其他圖片表示。
報告圖表請在圖片中保留標題、座標軸標籤與圖例。若解釋文字提供理解視覺內容所需的上下文,請一併附上。請將頁碼與來源識別碼儲存在產生的向量旁,讓檢索候選項能開啟相關頁面,而非只回傳文件名稱。
製造商的輸入格式支援文字、圖片與影片序列。公開圖片格式為 PNG、JPEG、WebP、GIF,影片為 MP4。文件所載方式可透過 URL 或 Base64 資料表示視覺內容;同一請求內請一致使用一種表示方式。
檢索場景,而非整段長影片
模型將影片表示為有序影格序列。製造商建議將長影片分成相關場景,依可用逐字稿時間戳記對齊場景邊界,並保留對應逐字稿文字。降低解析度或影格率,有助於將語意連續的場景納入上下文額度。
訓練影片集合中,查詢可以尋找示範調整特定控制裝置的場景。請為每個索引場景連結時間範圍。回傳相符場景後,請在影格或原始片段中檢視實際動作,不要將檢索向量當成整段錄影所有內容的書面描述。
逐字稿文字若準備為多模態輸入的一部分,就能提供資訊。影片影格嵌入本身不提供語音逐字稿。
上下文與準備限制
列出的上下文長度為每個輸入 32,000 token。Voyage 公開計算方式將每 560 個圖片像素及每 1120 個影片像素計為一個 token,因此視覺內容與文字共用額度。文件所載限制也包括每張圖片 1,600 萬像素及 20 MB,以及每部影片 20 MB。清單最多包含 1000 個輸入,合計 320,000 token。
預設截斷設定會裁短超長輸入;若截斷邊界落在圖片內,則會捨棄整張圖片。因此,將完整頁面或場景準備於額度內,能讓輸入內容更可預期。文件記載的另一設定會拒絕超長輸入,而非截斷。
向量維度與檢索角色
預設輸出維度為 1024,此版本也記載 256、512、2048 維。發布說明描述 Matryoshka 嵌入,以及浮點數、有號或無號 8 位元及二進位表示。請將選定維度與表示和索引一起保留。
Voyage 的檢索方式區分 query 與 document 輸入。查詢可以是文字或圖片,索引文件可以結合文字與視覺內容。每個完整輸入序列對應一個向量;請儲存它與來源頁面、圖片或場景的關聯,讓排名結果仍可檢視。
使用回傳的視覺來源
檢索階段可以找到與查詢相關的報告頁面、表格、投影片或場景。答案撰寫或分析階段再閱讀該來源資料。表格請在使用結果前檢查實際欄位標題與數值;場景請檢視相關影格及連結文字。
與 voyage-multimodal-3 的實質差異,在於 3.5 版本明確支援影片,並增加表示選擇。這些是用於尋找來源資料的嵌入能力,輸出是數值向量,而非生成的圖片、影片或敘事答案。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings voyageai/voyage-multimodal-3.5
voyageai/voyage-multimodal-3.5
voyageai/voyage-multimodal-3.5入門
Voyage AI voyage-multimodal-3.5 將文字、圖片與影片影格嵌入共用的檢索空間。它處理文件截圖、表格與場景等交錯內容,支援 32,000 token 輸入,預設表示為 1024 維。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 32,000 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 voyageai/voyage-multimodal-3.5 | 預設值— |
欄位input | 類型string|string[]|integer[]|integer[][] | 要求必填 | 值與限制 項目數下限: 1 條件: 批次不得為空,且各項目類型須一致。Token ID 須為非負整數。 輸入額度: 最大值: 32,000 · 文字單位: 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 | 規格32000 |
參數multimodal_objects | 規格false |
參數material_types | 規格text, token_ids |
生命週期: synchronous_json
保留每個向量的索引與維度。
即使模型名稱標示為多模態,此指定路徑也不接受圖片物件。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
| 設定 | 費率表 | 費用 |
|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token $0.00024 / 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": "voyageai/voyage-multimodal-3.5", "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='voyageai/voyage-multimodal-3.5',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 voyageai/voyage-multimodal-3.5
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · VoyageAI by MongoDB: voyage-multimodal-3.5
- 可以使用哪些輸入與結果?
POST /v1/embeddings·voyageai/voyage-multimodal-3.5:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·voyageai/voyage-multimodal-3.5:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·voyageai/voyage-multimodal-3.5:ctx:32000;input.budget.maximum:32000(UTF8 位元組);input.min_items:1