主题
嵌入向量(Embeddings)
POST /v1/embeddings
将文本转换为高维向量,适用于语义搜索、聚类、推荐与 RAG 检索等场景。接口采用 OpenAI 兼容格式,只需将 base_url 改为 https://api.seermartech.cn 并使用 SeerMarTech API Key。
响应体为标准 Embeddings JSON 结构,可直接配合常见 OpenAI SDK 使用。
计费说明
按本次请求实际消耗的 token 数计费,扣费金额以响应头 X-SeerMarTech-Charge-CNY 为准。
| 模型 | 参考价(约) |
|---|---|
text-embedding-3-small | ¥0.00032 / 1K tokens |
text-embedding-3-large | ¥0.00208 / 1K tokens |
text-embedding-ada-002 | ¥0.00160 / 1K tokens |
参考价为估算,实际费用以每次响应头中的扣费金额为准。Sandbox Key 不扣费。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 嵌入模型,如 text-embedding-3-small |
input | string / string[] | 是 | 待嵌入文本,单条或数组 |
encoding_format | string | 否 | float(默认)或 base64 |
dimensions | integer | 否 | 输出向量维度(仅 text-embedding-3-* 支持) |
user | string | 否 | 终端用户标识,便于滥用追踪 |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
object | string | 固定为 list |
model | string | 实际使用的模型 |
data[].embedding | number[] | 嵌入向量 |
data[].index | integer | 输入数组中的序号 |
usage.prompt_tokens | integer | 输入 token 数 |
usage.total_tokens | integer | 总 token 数(计费依据) |
响应头扩展:
| Header | 说明 |
|---|---|
X-SeerMarTech-Cost-USD | 本次成本(USD,内部核算) |
X-SeerMarTech-Charge-CNY | 本次扣费(人民币) |
X-SeerMarTech-Balance-CNY | 扣费后余额 |
X-SeerMarTech-Request-ID | 请求追踪 ID |
请求示例
curl
bash
curl -X POST "https://api.seermartech.cn/v1/embeddings" \
-H "Authorization: Bearer smt_live_你的Key" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "SeerMarTech 提供 SEO 数据与嵌入向量 API"
}'Python(OpenAI SDK)
python
from openai import OpenAI
client = OpenAI(
api_key="smt_live_你的Key",
base_url="https://api.seermartech.cn/v1",
)
resp = client.embeddings.create(
model="text-embedding-3-small",
input="SeerMarTech 提供 SEO 数据与嵌入向量 API",
)
print(len(resp.data[0].embedding), resp.usage.total_tokens)TypeScript(OpenAI SDK)
typescript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "smt_live_你的Key",
baseURL: "https://api.seermartech.cn/v1",
});
const resp = await client.embeddings.create({
model: "text-embedding-3-small",
input: "SeerMarTech 提供 SEO 数据与嵌入向量 API",
});
console.log(resp.data[0].embedding.length, resp.usage?.total_tokens);响应示例
json
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0123, -0.0456, "..."]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 18,
"total_tokens": 18
}
}常见错误
| 情况 | HTTP | 说明 | 解决方案 |
|---|---|---|---|
| Key 无效 | 401 | SeerMarTech 网关拒绝 | 检查 Authorization: Bearer smt_live_* |
| 余额不足 | 402 | 网关返回 seermartech_error code 50002 | 控制台充值 |
| 速率超限 | 429 | 超过每分钟限额 | 降低请求频率 |
| 参数错误 | 400 | 标准错误体 | 检查 model / input |
| 服务暂不可用 | 502 | 网关暂时无法处理请求 | 稍后重试或联系运营 |