向量嵌入
获取给定输入的向量表示,便于机器学习模型和算法直接使用。
POST https://openapi.linkwo.ai/v1/embeddings请求体
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | 向量嵌入模型 ID |
input | string/array | 是 | — | 要嵌入的文本(单个或多个) |
encoding_format | string | 否 | float | float 或 base64 |
dimensions | integer | 否 | 模型默认值 | 输出维度(如模型支持) |
请求示例
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