Skip to content

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
  }
}

请求参数

参数类型必填说明
modelstring模型名称,使用 text-embedding-v4
inputstring / array待向量化的文本,支持单个字符串或字符串数组(批量)
dimensionsinteger输出向量维度,如 1024;不传时使用模型默认维度
encoding_formatstring向量返回格式:float(默认)或 base64

计费说明

仅按输入 token 计费:$0.07 / 1M tokens。实际消耗 token 数以响应中 usage.total_tokens 字段为准。详见计费说明

相关文档

本文档遵循 CC BY-SA 4.0 协议。