Mistral: Codestral Embed 2505
Codestral Embed 2505 將程式碼與自然語言查詢表示為向量,用於程式碼庫搜尋及程式設計助理檢索。製造商記載 8,192 token 上下文、最高 3,072 的可設定維度,以及浮點數、整數或位元打包的輸出格式。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Codestral Embed 2505 是 Mistral AI 專門用於程式碼檢索的嵌入模型。它接收包含原始碼或自然語言程式碼查詢的文字,並回傳數值向量。製造商將其定位於程式碼庫搜尋、程式設計助理上下文檢索、相似度與重複分析,以及依功能或結構分組程式碼。固定發布識別碼是 codestral-embed-2505。
輸入與表示
程式碼輸入可以是函式、相關來源片段,或程式碼庫中的其他有意義單位。自然語言查詢可描述要尋找的行為,不必指出確切符號名稱。嵌入表示該輸入以供比較;模型不會產生新實作,也不會執行收到的程式碼。
官方發布資料記載完整輸入上下文為 8,192 token。檢索時,製造商建議約 3,000 字元的區塊搭配 1,000 字元重疊,並指出較大區塊可能降低檢索效果。這些是檢索準備建議,不是 3,000 字元的 token 上限。請為每個準備項目保留檔案、符號與來源位置,讓應用程式在搜尋後回傳相關程式碼。
輸出精度與維度
程式碼嵌入指南記載 float、int8、uint8、binary 與 ubinary 輸出型別。float 使用 32 位元單精度值。int8 使用 -128 至 127 的有號 8 位元整數,uint8 則使用 0 至 255 的無號 8 位元值。binary 與 ubinary 將量化後的單位元值打包在 8 位元元素中,分別採用有號與無號容器。
位元打包表示會改變回傳清單長度:指南說明,每八個邏輯嵌入維度對應一個打包元素。因此,辨識格式的比較不同於將打包位元組當成一般浮點座標。請將選定型別與向量一起保留,並為索引程式碼及其查詢使用相同表示。
參數文件列出預設維度為 1,536、最大為 3,072。維度依相關性排序,製造商說明可保留前面選定數量的維度,以選擇表示大小。儲存資料集合與新查詢應一致選擇維度。較短或量化表示會改變儲存及比較行為,不會增加輸入上下文,也不會將模型變成程式碼生成器。
檢索增強程式設計
發布資料的第一個案例,是為程式碼補全、編輯或解釋檢索上下文。請準備有意義的程式碼單位,並保留程式碼庫版本與來源識別碼。詢問某種錯誤如何處理,可檢索相關函式,再由應用程式連同實際變更需求提供給程式設計模型。
實用結果是一組附排名的來源片段,包含檔案路徑、符號,以及理解行為所需的內容。開發者可開啟檢索片段,或將其交給助理。Codestral Embed 執行表示步驟;另一個元件選擇結果,生成模型才會撰寫解釋或建議程式碼。
語意搜尋與相似度
製造商描述可用自然語言或程式碼查詢搜尋程式碼。即使函式名稱與請求措辭不同,開發者仍能尋找某個行為的實作。請納入區別預期實作的行為與條件;對整個子系統的一般查詢,可能只檢索相關資料,無法解決具體問題。
發布資料也描述,即使詞彙不同,仍可找出近似重複或功能相似的程式碼。這類結果能協助找到可重用實作,或識別需要進一步審查的程式碼。嵌入空間中的相似度是檢視來源的訊號,不代表兩個片段在每種輸入下都有相同行為。
分群、分析與比較
程式碼嵌入可用於依功能或結構分組程式碼,並檢視程式碼庫組成。請讓原始片段與識別碼持續可用,供人員或後續應用程式步驟解讀群組。群組是基於表示的分組,不是自動驗證過的架構描述。
製造商的浮點向量範例使用單位長度正規化嵌入,餘弦相似度、內積與歐幾里得距離會產生一致排名。量化及位元打包輸出應保留自己的格式處理,不應沿用原始浮點座標的假設。公開端點也保留輸入索引,有助於維持每個向量與來源項目的連結。
版本與實際邊界
確切模型頁面列出嵌入與批次流程,並標示 8k 上下文,而發布資料提供 8,192 token 的數值。請在整個資料集合與查詢流程中保留 2505 版本名稱、選定輸出維度及型別。這是面向程式碼的向量輸出,不同於 Codestral 文字補全,也不同於固定維度的 Mistral Embed 文字模型。
請準備包含相關行為的程式碼單位,保留來源位置,並明確說明要尋找的問題。有用產物是連結實際程式碼、可供檢索的表示;它支援下一個解釋、編輯或開發者審查步驟,但不自行執行那些步驟。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings mistralai/codestral-embed-2505
mistralai/codestral-embed-2505
mistralai/codestral-embed-2505入門
Codestral Embed 2505 將程式碼與自然語言查詢表示為向量,用於程式碼庫搜尋及程式設計助理檢索。製造商記載 8,192 token 上下文、最高 3,072 的可設定維度,以及浮點數、整數或位元打包的輸出格式。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 8,192 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 mistralai/codestral-embed-2505 | 預設值— |
欄位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.0003 / 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": "mistralai/codestral-embed-2505", "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='mistralai/codestral-embed-2505',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 mistralai/codestral-embed-2505
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Mistral: Codestral Embed 2505
- 可以使用哪些輸入與結果?
POST /v1/embeddings·mistralai/codestral-embed-2505:text,token_ids→embedding- 請求使用哪些欄位?
POST /v1/embeddings·mistralai/codestral-embed-2505:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·mistralai/codestral-embed-2505:ctx:8192;input.budget.maximum:8192(UTF8 位元組);input.min_items:1