向量嵌入

获取给定输入的向量表示,便于机器学习模型和算法直接使用。

POST https://openapi.linkwo.ai/v1/embeddings

请求体

参数类型必填默认值说明
modelstring向量嵌入模型 ID
inputstring/array要嵌入的文本(单个或多个)
encoding_formatstringfloatfloatbase64
dimensionsinteger模型默认值输出维度(如模型支持)

请求示例

curl https://openapi.linkwo.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://openapi.linkwo.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