通过 UniGateway 为文本生成向量嵌入。
接口说明#
| 项目 | 值 |
|---|
| 方法 | POST |
| 路径 | /v1/embeddings |
| Base URL | https://api.unigateway.ai/v1 |
| 鉴权 | Authorization: Bearer $UNIGATEWAY_API_KEY |
| Content-Type | application/json |
最小请求#
curl https://api.unigateway.ai/v1/embeddings \
-H "Authorization: Bearer $UNIGATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "AI 网关统一了多个模型提供商的访问入口。"
}'
Python#
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_UNIGATEWAY_API_KEY>",
base_url="https://api.unigateway.ai/v1",
)
resp = client.embeddings.create(
model="text-embedding-3-small",
input=["AI 网关统一了多个模型提供商的访问入口。"],
)
print(f"维度: {len(resp.data[0].embedding)}")
TypeScript#
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.UNIGATEWAY_API_KEY,
baseURL: "https://api.unigateway.ai/v1",
});
const resp = await client.embeddings.create({
model: "text-embedding-3-small",
input: ["AI 网关统一了多个模型提供商的访问入口。"],
});
console.log(`维度: ${resp.data[0].embedding.length}`);
参数说明#
| 字段 | 类型 | 必填 | 说明 |
|---|
model | string | 是 | 从 GET /v1/models 获取的嵌入模型 ID |
input | string/array | 是 | 待嵌入文本;单个用字符串,批量用数组 |
dimensions | number | 否 | 请求的输出维度(取决于模型) |
encoding_format | string | 否 | float(默认)或 base64 |
响应格式#
{
"object": "list",
"model": "text-embedding-3-small",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0123, -0.0456, ...]
}
],
"usage": {
"prompt_tokens": 12,
"total_tokens": 12
}
}
| 响应字段 | 说明 |
|---|
data[].embedding | 浮点数数组(向量) |
data[].index | 输入批次中的位置 |
usage.prompt_tokens | 输入 token 数 |
查找嵌入模型#
使用 GET /v1/models 并按 supported_endpoint_types 过滤包含 embeddings 相关提示的模型。示例:text-embedding-3-small。
正式使用前,请用真实请求确认模型存在并返回嵌入向量。
LangChain 集成#
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
base_url="https://api.unigateway.ai/v1",
api_key="<YOUR_UNIGATEWAY_API_KEY>",
)
result = embeddings.embed_query("测试文本")
print(f"维度: {len(result)}")
常见错误#
| 状态码 | 原因 | 处理方式 |
|---|
400 | 模型或输入无效 | 检查 model ID 和 input 类型 |
401 | API Key 无效 | 检查 Authorization 请求头 |
404 | 模型不在套餐内 | 通过 GET /v1/models 确认模型 |
413 | 输入过长 | 减少文本长度或批次大小 |
429 | 触发限流 | 增加退避并重试 |