嵌入向量 API

把文本变成向量,按含义而不是关键词搜索。一个密钥,OpenAI /v1/embeddings 格式,只按输入 token 以卢布付费。

什么是嵌入向量

嵌入向量是一串描述文本含义的数字(向量)。模型读取一个短语、段落或文档,返回一个由几百到几千个数字组成的向量。

含义相近的文本会得到相近的向量,即使它们没有共同的词。“怎么退货?”和“退换货政策”会靠得很近,而“怎么还贷款?”则离得更远。相近程度用余弦相似度衡量:越接近 1,含义越接近。

向量只需存入数据库一次(pgvector、Qdrant、Milvus、Elasticsearch、Redis),之后就能在几毫秒内找到与用户查询最接近的内容。

嵌入向量的用途

  • 语义搜索

    在知识库、商品目录或文档中搜索,理解换种说法的查询和错别字。

  • 聊天机器人的 RAG

    找到合适的文档片段并交给语言模型,让它根据你的数据回答。

  • 推荐

    根据描述的含义推荐相似的商品、文章和问题,无需人工标注。

  • 聚类与分析

    按主题对评价、客服工单和申请分组,发现反复出现的问题。

  • 分类

    根据与各类示例的相近程度,判断请求的主题、情感或所属部门。

  • 查重

    找出重复的广告、问题和文档,即使措辞不同。

如何接入

  1. 注册并充值余额:每次嵌入请求只需不到一戈比。
  2. 在个人资料中创建 API 密钥。密钥只显示一次,请妥善保存。
  3. 在 OpenAI SDK 或任何支持 OpenAI API 的程序中填写 base URL 和密钥,把文本发送到 /v1/embeddings。

Base URL: https://sujik.ru/v1

请求示例
from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")

result = client.embeddings.create(
    model="text-embedding-3-small",
    input=["怎么退货?", "退换货政策"],
)
print(len(result.data[0].embedding), result.usage.total_tokens)
响应示例
{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456, 0.0789, …] },
    { "object": "embedding", "index": 1, "embedding": [0.0098, -0.0411, 0.0802, …] }
  ],
  "model": "text-embedding-3-small",
  "usage": { "prompt_tokens": 14, "total_tokens": 14 }
}

一次请求最多可发送 2048 段文本。dimensions 参数可在支持的模型上缩短向量,encoding_format: base64 可减小响应体积。

15 行代码实现语义搜索

先一次性获取文档向量,再用查询向量与它们比较。

import numpy as np
from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")
docs = ["退换货政策", "...", "..."]

def embed(texts):
    result = client.embeddings.create(model="text-embedding-3-small", input=texts)
    return np.array([item.embedding for item in result.data])

doc_vectors = embed(docs)
query = embed(["怎么退货?"])[0]
scores = doc_vectors @ query  # unit vectors: dot product = cosine
best = int(scores.argmax())
print(docs[best], round(float(scores[best]), 3))

模型与价格

价格按每 100 万输入 token 计算。通过 API 比网站测试便宜 10%。

价格暂时没有加载出来。最新列表见价格页面。

全部价格

建议

  • 只比较同一模型的向量:不同模型的向量空间不同。
  • 把长文档切成 200–800 token 的片段并略有重叠,搜索会更准确。
  • 在向量旁保存原文和模型 id,更换模型时可以重新计算索引。
  • 较短的向量(dimensions 256–1024)几乎不损失质量,却能节省数据库空间。

常见问题

嵌入向量怎么收费?

只按模型价格为输入 token 付费。一千条短句通常不到一卢布。如果模型返回错误,费用会退回余额。

为 OpenAI 写的代码能用吗?

能。该接口兼容 OpenAI /v1/embeddings:替换 base URL 和密钥,其余代码和官方 SDK 无需修改。

该选哪个模型?

Text Embedding 3 Small 速度快、价格低,适合大多数任务。Text Embedding 3 Large 和 Gemini Embedding 在复杂文本和多语言场景下更准确。

支持中文吗?

支持,所有模型都是多语言的:同一个索引里可以混合中文、英文和其他语言。

会消耗免费额度吗?

不会。嵌入向量从余额扣费,不占用免费生成次数和订阅额度。

嵌入向量 API:用于搜索和 RAG 的文本向量 | SUJIK AI