text-embedding-v4 向量模型
text-embedding-v4 是阿里云通义实验室最新一代文本向量模型,可将文本转换为高维向量,支持 100+ 语种,适用于语义检索、RAG(检索增强生成)、聚类、分类等场景。本文档演示如何通过 Agentsflare 网关以 OpenAI 兼容的 /v1/embeddings 接口调用该模型。
基础配置
在开始使用 API 之前,请确保您已经获取了 API Key。如果还没有,请参考创建 API Key。
基础信息
- API Base URL:
https://api.agentsflare.com/v1/embeddings - 认证方式: Bearer Token
- 内容类型:
application/json - 请求方法:
POST - 计费: 输入 $0.07/1M tokens(详见计费说明)
请求示例
bash
curl --location --request POST 'https://api.agentsflare.com/v1/embeddings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
"model": "text-embedding-v4",
"input": "风急天高猿啸哀,渚清沙白鸟飞回。",
"dimensions": 1024,
"encoding_format": "float"
}'python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.agentsflare.com/v1"
)
response = client.embeddings.create(
model="text-embedding-v4",
input="风急天高猿啸哀,渚清沙白鸟飞回。",
dimensions=1024,
encoding_format="float"
)
embedding = response.data[0].embedding
print(f"向量维度: {len(embedding)}")
print(embedding[:5])python
import requests
API_KEY = "YOUR_API_KEY"
URL = "https://api.agentsflare.com/v1/embeddings"
payload = {
"model": "text-embedding-v4",
"input": "风急天高猿啸哀,渚清沙白鸟飞回。",
"dimensions": 1024,
"encoding_format": "float",
}
resp = requests.post(
URL,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
resp.raise_for_status()
data = resp.json()
embedding = data["data"][0]["embedding"]
print(f"向量维度: {len(embedding)}")
print(embedding[:5])javascript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.AGENTSFLARE_API_KEY,
baseURL: "https://api.agentsflare.com/v1"
});
async function main() {
const response = await client.embeddings.create({
model: "text-embedding-v4",
input: "风急天高猿啸哀,渚清沙白鸟飞回。",
dimensions: 1024,
encoding_format: "float"
});
const embedding = response.data[0].embedding;
console.log(`向量维度: ${embedding.length}`);
console.log(embedding.slice(0, 5));
}
main();go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
type EmbeddingRequest struct {
Model string `json:"model"`
Input string `json:"input"`
Dimensions int `json:"dimensions,omitempty"`
EncodingFormat string `json:"encoding_format,omitempty"`
}
type EmbeddingResponse struct {
Data []struct {
Embedding []float64 `json:"embedding"`
Index int `json:"index"`
} `json:"data"`
Usage struct {
PromptTokens int `json:"prompt_tokens"`
TotalTokens int `json:"total_tokens"`
} `json:"usage"`
}
func main() {
reqBody := EmbeddingRequest{
Model: "text-embedding-v4",
Input: "风急天高猿啸哀,渚清沙白鸟飞回。",
Dimensions: 1024,
EncodingFormat: "float",
}
body, _ := json.Marshal(reqBody)
req, _ := http.NewRequest("POST", "https://api.agentsflare.com/v1/embeddings", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
respBytes, _ := io.ReadAll(resp.Body)
var result EmbeddingResponse
if err := json.Unmarshal(respBytes, &result); err != nil {
panic(err)
}
fmt.Printf("向量维度: %d\n", len(result.Data[0].Embedding))
fmt.Println(result.Data[0].Embedding[:5])
fmt.Printf("total tokens: %d\n", result.Usage.TotalTokens)
}批量输入
input 字段同时支持字符串数组,可在一次请求中对多段文本进行向量化:
bash
curl --location --request POST 'https://api.agentsflare.com/v1/embeddings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-raw '{
"model": "text-embedding-v4",
"input": ["第一段待向量化的文本", "第二段待向量化的文本"],
"dimensions": 1024,
"encoding_format": "float"
}'响应示例
json
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0234, -0.0156, 0.0421, "……(共 1024 维)"]
}
],
"model": "text-embedding-v4",
"usage": {
"prompt_tokens": 18,
"total_tokens": 18
}
}请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,使用 text-embedding-v4 |
| input | string / array | 是 | 待向量化的文本,支持单个字符串或字符串数组(批量) |
| dimensions | integer | 否 | 输出向量维度,如 1024;不传时使用模型默认维度 |
| encoding_format | string | 否 | 向量返回格式:float(默认)或 base64 |
计费说明
仅按输入 token 计费:$0.07 / 1M tokens。实际消耗 token 数以响应中 usage.total_tokens 字段为准。详见计费说明。
