OpenAI: Text Embedding 3 Small
OpenAI 的小型第三代文字嵌入模型,預設回傳 1,536 維向量,並支援較短表示。數值輸出可用於語意搜尋、程式碼檢索、分組、推薦與分類。
- Ailoot Ultra · 嵌入向量
POST /v1/embeddingsopenai/text-embedding-3-small - Ailoot Ultra · 嵌入向量 · text-embedding-3-small
POST /v1/embeddingstext-embedding-3-small
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
text-embedding-3-small 是 OpenAI 較小的第三代文字嵌入模型。它將書面資料轉成數值向量,預設有 1,536 個分量。向量衡量文字間的關係,供另一個搜尋或分析步驟使用;模型不會對輸入生成對話答案。
如同較大的第三代模型,它支援提供者的 dimensions 控制項,以取得較短嵌入。訓練設計使縮短向量仍保留概念表示資訊,大小選擇會影響應用程式品質及資源需求。請讓比較的記錄與查詢使用一致的模型及選定維度。
實際應用之一是程式碼搜尋。製造商指南描述將來源函式表示為文字並嵌入,再以同一模型嵌入自然語言查詢,比較所得向量。示例結果是連結來源位置、附排名的相關函式集合。文件搜尋的對應產物,則是一組仍可供讀者或下一個模型使用原文及原始參照的段落。
文件所載其他用途包括分群、相關內容推薦、分類、離群值偵測及衡量多樣性。聚焦的訊息流程可以將相似請求分組,或與類別描述比較。應用程式定義相似度結果如何成為類別、推薦或審查項目;嵌入本身仍是數值資料。
OpenAI 指定每段文字最大輸入為 8,192 token。嵌入 API 接受字串或已斷詞輸入,單一請求可含多個輸入,拒絕空字串,並套用 300,000 token 合計上限。請將長資料準備為有意義段落,保留解讀所需標題或定義。使用一致的來源欄位集合,不要以不相關的準備規則嵌入不同種類記錄。
提供者預設回傳浮點向量,也記載 base64 編碼。指南指出 OpenAI 嵌入正規化為單位長度,並建議餘弦相似度;內積可計算它,歐幾里得距離則產生相同排名。若第三代嵌入在回傳後手動縮短,請依指南再次正規化縮短向量。dimensions 控制項讓手動截斷不必成為例行準備步驟。
請為每個向量記錄模型識別、維度及來源連結。實用後續產物是排名清單、分組集合,或連結至生成它們之文字的分類特徵集合。請檢查選定資料是否實際支持任務,並將缺漏事實與語意相關性分開。下一步便可將表示用於特定檢索或決策流程。
Ailoot Ultra · 嵌入向量 POST /v1/embeddings openai/text-embedding-3-small
openai/text-embedding-3-smallopenai/text-embedding-3-smalltext-embedding-3-small
入門
OpenAI 的小型第三代文字嵌入模型,預設回傳 1,536 維向量,並支援較短表示。數值輸出可用於語意搜尋、程式碼檢索、分組、推薦與分類。
- 接受的輸入
- 文字 · token_ids
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 POST /v1/embeddings
- 輸入
text,token_ids- 輸出
embedding- 上下文
- 8,192 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 openai/text-embedding-3-small | 預設值— |
欄位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.00004 / 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": "openai/text-embedding-3-small", "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='openai/text-embedding-3-small',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 openai/text-embedding-3-small, text-embedding-3-small
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
Ailoot Ultra · 嵌入向量 · text-embedding-3-small POST /v1/embeddings text-embedding-3-small
text-embedding-3-smallopenai/text-embedding-3-smalltext-embedding-3-small
入門
OpenAI 的小型第三代文字嵌入模型,預設回傳 1,536 維向量,並支援較短表示。數值輸出可用於語意搜尋、程式碼檢索、分組、推薦與分類。
- 接受的輸入
- 文字
- 結果
- embedding
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 嵌入向量 · text-embedding-3-small POST /v1/embeddings
- 輸入
text- 輸出
embedding- 上下文
- 8,192 tokens
- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 text-embedding-3-small | 預設值— |
欄位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 |
參數text_file_material | 規格讀取實際 UTF-8 文件,將文字放入指定的 input 或訊息內容字串。 |
生命週期: synchronous_json
請傳送完全相符的模型 ID 與必要欄位。
請保留每個回傳項目及其原始識別碼。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
| 設定 | 費率表 | 費用 |
|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token $0.00004 / 1K Token 輸出 · 輸出 Token $0 / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 嵌入向量 · text-embedding-3-small
{
"model": "text-embedding-3-small",
"input": [
"First document",
"Second document"
],
"encoding_format": "float"
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'text-embedding-3-small', 'input': ['First document', 'Second document'], 'encoding_format': 'float'}
payload['input'] = [text]
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
for vector in result.get('data', []):
print('Vector', vector.get('index'), json.dumps(vector.get('embedding')))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'text-embedding-3-small', 'input': ['First document', 'Second document'], 'encoding_format': 'float'}
payload['input'] = [text]
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/embeddings', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
for vector in result.get('data', []):
print('Vector', vector.get('index'), json.dumps(vector.get('embedding')))
接收並儲存結果
Ailoot Ultra · 嵌入向量 · text-embedding-3-small
json
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
請保留每個元素均為有限值的向量及其原始索引。所有維度與完整用量物件均須保留。
需要檢查原始回應時
此流程未引入嵌入向量任務端點。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位object | 類型string |
欄位model | 類型string |
欄位data[].index | 類型integer |
欄位data[].embedding | 類型finite float[] |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra openai/text-embedding-3-small, text-embedding-3-small
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · OpenAI: Text Embedding 3 Small
- 可以使用哪些輸入與結果?
POST /v1/embeddings·openai/text-embedding-3-small:text,token_ids→embeddingPOST /v1/embeddings·text-embedding-3-small:text→embedding- 請求使用哪些欄位?
POST /v1/embeddings·openai/text-embedding-3-small:model,input,encoding_format,providerPOST /v1/embeddings·text-embedding-3-small:model,input,encoding_format,provider- 適用哪些限制?
POST /v1/embeddings·openai/text-embedding-3-small:ctx:8192;input.budget.maximum:8192(UTF8 位元組);input.min_items:1POST /v1/embeddings·text-embedding-3-small:ctx:8192;input.budget.maximum:8192(UTF8 位元組);input.min_items:1