请求体
同步请求超时: 这个非聊天端点会等待路由到的模型完成处理。大输入、长音频或大批量请求可能超过常见的 30s 客户端默认超时,因此请将 HTTP 客户端超时设置为至少 120s。
要使用的 embedding 模型的 ID(例如:text-embedding-3-small)。
要进行 embedding 的输入文本。可以是字符串或字符串数组。
embeddings 的格式:float 或 base64。
可用模型
| 模型 | 维度 | 描述 |
|---|
text-embedding-3-large | 3072 | 最佳质量 |
text-embedding-3-small | 1536 | 平衡 |
text-embedding-ada-002 | 1536 | 旧版 |
embedding 对象数组。每个对象包含:
object(string):embedding
index(integer):在输入数组中的索引
embedding(array):embedding 向量
Token 用量,包含 prompt_tokens 和 total_tokens。
curl -X POST "https://api.tokenlab.sh/v1/embeddings" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "The quick brown fox jumps over the lazy dog"
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.tokenlab.sh/v1"
)
response = client.embeddings.create(
model="text-embedding-3-small",
input="The quick brown fox jumps over the lazy dog"
)
embedding = response.data[0].embedding
print(f"Embedding dimension: {len(embedding)}")
print(f"First 5 values: {embedding[:5]}")
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.tokenlab.sh/v1'
});
const response = await client.embeddings.create({
model: 'text-embedding-3-small',
input: 'The quick brown fox jumps over the lazy dog'
});
console.log(response.data[0].embedding.slice(0, 5));
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/embeddings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer sk-your-api-key'
],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'text-embedding-3-small',
'input' => 'The quick brown fox jumps over the lazy dog'
])
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r(array_slice($data['data'][0]['embedding'], 0, 5));
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0023, -0.0194, 0.0081, ...]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 9,
"total_tokens": 9
}
}
批量 Embeddings
# Embed multiple texts at once
response = client.embeddings.create(
model="text-embedding-3-small",
input=[
"First document text",
"Second document text",
"Third document text"
]
)
for i, data in enumerate(response.data):
print(f"Document {i}: {len(data.embedding)} dimensions")