向量嵌入
获取給定輸入的向量表示,便於機器學習模型和算法直接使用。
POST https://api.linkastra.ai/v1/embeddings請求體
| 參數 | 類型 | 必填 | 默认值 | 說明 |
|---|---|---|---|---|
model | string | 是 | — | 向量嵌入模型 ID |
input | string/array | 是 | — | 要嵌入的文本(單個或多個) |
encoding_format | string | 否 | float | float 或 base64 |
dimensions | integer | 否 | 模型默认值 | 輸出维度(如模型支援) |
請求示例
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