向量嵌入

获取給定輸入的向量表示,便於機器學習模型和算法直接使用。

POST https://api.linkastra.ai/v1/embeddings

請求體

參數類型必填默认值說明
modelstring向量嵌入模型 ID
inputstring/array要嵌入的文本(單個或多個)
encoding_formatstringfloatfloatbase64
dimensionsinteger模型默认值輸出维度(如模型支援)

請求示例

curl https://api.linkastra.ai/v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-v3",
    "input": "The food was delicious and the waiter was friendly."
  }'

響應

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [0.0023064255, -0.009327292, ...]
    }
  ],
  "model": "text-embedding-v3",
  "usage": {
    "prompt_tokens": 12,
    "total_tokens": 12
  }
}
```bash

## 批量向量嵌入

傳入數组即可在單次請求中嵌入多個輸入:

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.linkastra.ai/v1",
    api_key="YOUR_API_KEY"
)

response = client.embeddings.create(
    model="text-embedding-v3",
    input=[
        "The food was delicious.",
        "The service was excellent.",
        "I would visit again."
    ]
)

for item in response.data:
    print(f"Input {item.index}: {len(item.embedding)} dimensions")

使用場景

使用場景說明
語義搜索通過比较向量嵌入距离找到與查询相似的文件
聚類利用向量相似度將相似文本归為一類
分類在向量嵌入上訓練分類器
推薦推薦具有相似向量嵌入的条目

選擇维度

部分向量嵌入模型支援通過 dimensions 參數調整輸出维度。较低的维度可以降低存储和計算成本,但會牺牲一定的表征精度。

response = client.embeddings.create(
    model="text-embedding-v3",
    input="Hello world",
    dimensions=256
)
```bash

## 最佳實踐

- **預處理文本** — 嵌入前去除多余的空白字符並統一編碼
- **批量請求** — 一次調用嵌入多段文本以提升吞吐量
- **缓存結果** — 存储向量嵌入,避免對相同輸入重復計算
- **截斷超長輸入** — 超出模型上下文限制的文本將被截斷

## 相關文件

- [模型概览](../models/model-overview) — 可用的向量嵌入模型
- [對話補全](../api-reference/chat-completions) — 文本生成 API