Skip to content

文本向量化

POST /v1/embeddings

将文本转换为高维向量,用于语义检索、RAG(检索增强生成)、聚类分析、推荐系统等场景。

input 支持单个字符串或字符串数组(批量处理)。

请求参数

参数类型必填说明
modelstring向量化模型 ID,如 text-embedding-3-small
inputstring / array待向量化的文本,支持批量传入字符串数组
dimensionsinteger输出向量维度(降维),部分模型支持
encoding_formatstring输出格式:float(默认)或 base64

请求示例

bash
curl https://api.idreame.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "text-embedding-3-small",
    "input": ["你好,世界", "Hello, world"]
  }'
python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.idreame.com/v1",
    api_key="sk-xxxxxxxx",
)

response = client.embeddings.create(
    model="text-embedding-3-small",
    input=["你好,世界", "Hello, world"],
)

for item in response.data:
    print(f"索引 {item.index}: 维度 {len(item.embedding)}")

响应示例

json
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [0.0023, -0.0091, 0.0142, ...]
    },
    {
      "object": "embedding",
      "index": 1,
      "embedding": [0.0154, 0.0037, -0.0089, ...]
    }
  ],
  "model": "text-embedding-3-small",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}

常见用法:语义相似度

python
import numpy as np
from openai import OpenAI

client = OpenAI(
    base_url="https://api.idreame.com/v1",
    api_key="sk-xxxxxxxx",
)

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

texts = ["苹果是一种水果", "香蕉是黄色的", "猫是一种宠物"]
query = "水果有哪些?"

# 批量获取向量
all_texts = [query] + texts
response = client.embeddings.create(
    model="text-embedding-3-small",
    input=all_texts,
)

embeddings = [item.embedding for item in response.data]
query_vec = embeddings[0]
doc_vecs = embeddings[1:]

# 计算相似度并排序
scores = [(texts[i], cosine_similarity(query_vec, doc_vecs[i])) for i in range(len(texts))]
scores.sort(key=lambda x: x[1], reverse=True)

for text, score in scores:
    print(f"{score:.4f}  {text}")

推荐模型

模型维度适用场景
text-embedding-3-small1536通用语义检索,性价比高
text-embedding-3-large3072高精度语义理解
text-embedding-ada-0021536兼容旧项目

基于 OpenAI 兼容协议 · 多模态算力网关