APIMaster.ai

text-embedding-3-small · 发起请求

OpenAI 文本向量模型,默认返回 1536 维向量,适合语义搜索和知识库索引。APIMaster 也已实测通过 dimensions 参数返回 512 维向量。

OpenAI 文本向量模型,默认返回 1536 维向量,适合语义搜索和知识库索引。APIMaster 也已实测通过 dimensions 参数返回 512 维向量。

2026-10-02 核查:在售渠道输入价格为每百万 tokens $0.02 起。这是 APIMaster 渠道价格,不是供应商统一官方价;以实时模型卡片为准。 实时模型卡片

发起请求

POST /v1/embeddings · model: text-embedding-3-small

cURL

export APIMASTER_API_KEY="YOUR_APIMASTER_API_KEY"
curl --fail-with-body "https://apimaster.ai/v1/embeddings" \
  -H "Authorization: Bearer $APIMASTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "text-embedding-3-small", "input": "Semantic search retrieves related documents.", "encoding_format": "float"}'

Python · OpenAI SDK

pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["APIMASTER_API_KEY"],
    base_url="https://apimaster.ai/v1",
)
result = client.embeddings.create(
    model="text-embedding-3-small",
    input=["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format="float",
)
for item in result.data:
    print(item.index, len(item.embedding))  # 1536
print(result.usage.prompt_tokens)

JavaScript · Node.js

const response = await fetch("https://apimaster.ai/v1/embeddings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APIMASTER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "text-embedding-3-small",
    input: ["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format: "float",
  }),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
console.log(result.data.map((item) => [item.index, item.embedding.length]));
console.log(result.usage.prompt_tokens);

参数与限制

input 传入非空字符串或非空字符串数组。使用 encoding_format: float 获取数值数组,不要传 messages、max_tokens 或 stream。模型参考上限为每条文本 8192 tokens;长文档应分段,批量大小应保持适度。具体限制和分词方式可能因渠道而异。

此处仅为 text-embedding-3-small 提供 dimensions 用法:默认 1536 维,实测示例为 512 维。文档和查询必须使用相同维度。

缩小向量维度

compact = client.embeddings.create(
    model="text-embedding-3-small",
    input="Semantic search retrieves related documents.",
    encoding_format="float",
    dimensions=512,
)
print(len(compact.data[0].embedding))  # 512

读取返回结果

读取 data[i].embedding,并通过 data[i].index 对应输入文本。usage.prompt_tokens 和 usage.total_tokens 表示输入用量。向量不是生成文本,不作为输出 tokens 计费。base64 编码也已实测通过,但 float 更便于查看。

单条输入、中英文批量输入、向量长度和重复输入一致性均已通过线上实测。这些检查验证接口行为,不代表所有数据集上的检索效果。

语义搜索与 RAG

将文档分段,生成每段向量并存储;再使用相同模型和维度生成查询向量,按余弦相似度排序,把检索出的文本交给独立的聊天模型。不要在同一个索引中混用不同模型或维度的向量;切换模型时需重建索引。

常见问题

401 请检查 API Key;400 请检查模型 ID、非空 input 和可选参数;429 或上游超时请降低并发并退避重试。渠道可用性和实时价格以模型广场为准。

下一步与参考资料