全部產品
Search
文件中心

Alibaba Cloud Model Studio:同步介面API詳情

更新時間:Nov 27, 2025

通用文本向量模型可將文本資料轉換為數值向量,用於語義搜尋、推薦、聚類、分類等下遊任務。

模型概覽

新加坡

模型名稱

向量維度

最大行數

單行最大處理Token數(

單價(每百萬輸入Token)

支援語種

免費額度(注)

text-embedding-v4

屬於Qwen3-Embedding系列

2,048、1,536、1,024(預設)、768、512、256、128、64

10

8,192

$0.07

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語等100+主流語種

100萬Token

有效期間:百鍊開通後90天內

text-embedding-v3

1,024(預設)、768、512

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語等50+主流語種

50萬Token

有效期間:百鍊開通後90天內

北京

模型名稱

向量維度

最大行數

單行最大Token數

單價(每百萬輸入Token)

支援語種

text-embedding-v4

屬於Qwen3-Embedding系列

2,048、1,536、1,024(預設)、768、512、256、128、64

10

8,192

$0.072

中文、英語、西班牙語、法語、葡萄牙語、印尼語、日語、韓語、德語、俄羅斯語等100+主流語種及多種程式設計語言

關於模型限流,請參考限流

前提條件

若熟悉OpenAI生態,可使用相容API快速遷移;DashScope API則提供更豐富的專屬特性。請根據您的需求選擇。

您需要已準備工作:擷取與配置 API Key配置API Key到環境變數(準備下線,併入配置 API Key)。如果通過SDK調用,還需要安裝DashScope SDK

OpenAI相容

使用SDK調用時需配置的base_url:

  • 新加坡:https://dashscope-intl.aliyuncs.com/compatible-mode/v1

  • 華北2(北京):https://dashscope.aliyuncs.com/compatible-mode/v1

使用HTTP方式調用時需配置的endpoint:

  • 新加坡:POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings

  • 華北2(北京):POST https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings

請求體

輸入字串

Python

import os
from openai import OpenAI

client = OpenAI(
    # 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您沒有配置環境變數,請在此處用您的API Key進行替換
    # 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"  
)

completion = client.embeddings.create(
    model="text-embedding-v4",
    input='The clothes are of good quality and look good, definitely worth the wait. I love them.',
    dimensions=1024,
    encoding_format="float"
)

print(completion.model_dump_json())

Java

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.dashscope.utils.JsonUtils;

public final class Main {
    public static void main(String[] args) {
        // 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
        String apiKey = System.getenv("DASHSCOPE_API_KEY");
        if (apiKey == null) {
            System.out.println("DASHSCOPE_API_KEY not found in environment variables");
            return;
        }
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
        String baseUrl = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings";
        HttpClient client = HttpClient.newHttpClient();

        Map<String, Object> requestBody = new HashMap<>();
        requestBody.put("model", "text-embedding-v4");
        requestBody.put("input", "風急天高猿嘯哀,渚清沙白鳥飛回,無邊落木蕭蕭下,不盡長江滾滾來");
        requestBody.put("dimensions", 1024);
        requestBody.put("encoding_format", "float");

        try {
            String requestBodyString = JsonUtils.toJson(requestBody);
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(baseUrl))
                    .header("Content-Type", "application/json")
                    .header("Authorization", "Bearer " + apiKey)
                    .POST(HttpRequest.BodyPublishers.ofString(requestBodyString))
                    .build();
                    
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            if (response.statusCode() == 200) {
                System.out.println("Response: " + response.body());
            } else {
                System.out.printf("Failed to retrieve response, status code: %d, response: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": "風急天高猿嘯哀,渚清沙白鳥飛回,無邊落木蕭蕭下,不盡長江滾滾來",  
    "dimensions": 1024,  
    "encoding_format": "float"
}'

輸入字串列表

Python

import os
from openai import OpenAI

client = OpenAI(
    # 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您沒有配置環境變數,請在此處用您的API Key進行替換
    # 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"  
)

completion = client.embeddings.create(
    model="text-embedding-v4",
    input=['風急天高猿嘯哀', '渚清沙白鳥飛回', '無邊落木蕭蕭下', '不盡長江滾滾來'],
    dimensions=1024,
    encoding_format="float"
)

print(completion.model_dump_json())

Java

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.Arrays;
import com.alibaba.dashscope.utils.JsonUtils;

public final class Main {
    public static void main(String[] args) {
        /** 從環境變數中擷取 API Key,如果未配置,請直接替換為您的 API Key*/
        // 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
        String apiKey = System.getenv("DASHSCOPE_API_KEY");
        if (apiKey == null) {
            System.out.println("DASHSCOPE_API_KEY not found in environment variables");
            return;
        }
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
        String baseUrl = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings";
        HttpClient client = HttpClient.newHttpClient();
        Map<String, Object> requestBody = new HashMap<>();
        requestBody.put("model", "text-embedding-v4");
        List<String> inputList = Arrays.asList("風急天高猿嘯哀", "渚清沙白鳥飛回", "無邊落木蕭蕭下", "不盡長江滾滾來");
        requestBody.put("input", inputList);
        requestBody.put("encoding_format", "float");

        try {
            /** 將請求體轉換為 JSON 字串*/
            String requestBodyString = JsonUtils.toJson(requestBody);

            /**構建 HTTP 要求*/
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(baseUrl))
                    .header("Content-Type", "application/json")
                    .header("Authorization", "Bearer " + apiKey)
                    .POST(HttpRequest.BodyPublishers.ofString(requestBodyString))
                    .build();

            /**發送請求並接收響應*/
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            if (response.statusCode() == 200) {
                System.out.println("Response: " + response.body());
            } else {
                System.out.printf("Failed to retrieve response, status code: %d, response: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            /** 捕獲並列印異常*/
            System.err.println("Error: " + e.getMessage());
        }
    }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": [
        "風急天高猿嘯哀",
        "渚清沙白鳥飛回", 
        "無邊落木蕭蕭下", 
        "不盡長江滾滾來"
        ],
    "dimensions": 1024,
    "encoding_format": "float"
}'

輸入檔案

Python

import os
from openai import OpenAI

client = OpenAI(
    # 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您沒有配置環境變數,請在此處用您的API Key進行替換
    # 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"  
)
# 確保將 'texts_to_embedding.txt' 替換為您自己的檔案名稱或路徑
with open('texts_to_embedding.txt', 'r', encoding='utf-8') as f:
    completion = client.embeddings.create(
        model="text-embedding-v4",
        input=f,
        encoding_format="float"
    )
print(completion.model_dump_json())

Java

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static void main(String[] args) {
        /** 從環境變數中擷取 API Key,如果未配置,請直接替換為您的 API Key*/
        // 如果使用華北2(北京)地區的模型,需要使用華北2(北京)地區的 API KEY,擷取連結:https://bailian.console.alibabacloud.com/?tab=model#/api-key
        String apiKey = System.getenv("DASHSCOPE_API_KEY");
        if (apiKey == null) {
            System.out.println("DASHSCOPE_API_KEY not found in environment variables");
            return;
        }
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
        String baseUrl = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings";
        HttpClient client = HttpClient.newHttpClient();

        /** 讀取輸入檔案*/
        StringBuilder inputText = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new FileReader("<檔案所來自的內容根的路徑>"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                inputText.append(line).append("\n");
            }
        } catch (IOException e) {
            System.err.println("Error reading input file: " + e.getMessage());
            return;
        }

        Map<String, Object> requestBody = new HashMap<>();
        requestBody.put("model", "text-embedding-v4");
        requestBody.put("input", inputText.toString().trim());
        requestBody.put("dimensions", 1024);
        requestBody.put("encoding_format", "float");

        try {
            String requestBodyString = JsonUtils.toJson(requestBody);

            /**構建 HTTP 要求*/
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(baseUrl))
                    .header("Content-Type", "application/json")
                    .header("Authorization", "Bearer " + apiKey)
                    .POST(HttpRequest.BodyPublishers.ofString(requestBodyString))
                    .build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            if (response.statusCode() == 200) {
                System.out.println("Response: " + response.body());
            } else {
                System.out.printf("Failed to retrieve response, status code: %d, response: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
確保將 'texts_to_embedding.txt' 替換為您自己的檔案名稱或路徑
FILE_CONTENT=$(cat texts_to_embedding.txt | jq -Rs .)
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": ['"$FILE_CONTENT"'],
    "dimensions": 1024,
    "encoding_format": "float"
}'

model string必選

調用的模型名稱,參考模型概覽表格中的模型名稱進行選擇。

input array<string> 或 string 或 file 必選

輸入文本的基本資料,可以是字串,字串列表, 或者開啟的檔案(需要Embedding的內容,一行一條)。

文本限制:

  • 文本數量:

    • 作為字串時最長支援 8,192 Token。

    • 作為字串列表時最多支援 10 條,每條最長支援 8,192 Token。

    • 作為檔案時最多支援 10 條,每條最長支援 8,192 Token。

dimensions integer 可選

指定的向量維度,必須為以下值之一:2048(僅適用於text-embedding-v4)、1536(僅適用於text-embedding-v4)1024、768、512、256、128 或 64,預設值為1024。

encoding_format string 可選

用於控制返回的Embedding格式,當前僅支援float格式。

響應對象

成功響應

{
  "data": [
    {
      "embedding": [
        -0.0695386752486229, 0.030681096017360687, ...
      ],
      "index": 0,
      "object": "embedding"
    },
    ...
    {
      "embedding": [
        -0.06348952651023865, 0.060446035116910934, ...
      ],
      "index": 5,
      "object": "embedding"
    }
  ],
  "model": "text-embedding-v4",
  "object": "list",
  "usage": {
    "prompt_tokens": 184,
    "total_tokens": 184
  },
  "id": "73591b79-d194-9bca-8bb5-xxxxxxxxxxxx"
}

異常響應

{
    "error": {
        "message": "Incorrect API key provided. ",
        "type": "invalid_request_error",
        "param": null,
        "code": "invalid_api_key"
    }
}

data array

任務輸出資訊。

屬性

embedding list

本次調用返回object對象的value,類型是元素為float資料的數組,包含具體Embedding向量。

index integer

本結構中的演算法結果對應的輸入文字在輸入數組中的索引值。

object string

本次調用返回的object物件類型,預設為embedding。

model string

本次調用的模型名。

object string

本次調用返回的data類型,預設為list。

usage object

屬性

prompt_tokens integer

使用者輸入文本轉換成Token後的長度。

total_tokens integer

本次請求輸入內容的 Token 數目,演算法的計量是根據使用者輸入字串被模型Tokenizer解析之後對應的Token數目來進行。

id string

請求唯一標識。可用於請求明細溯源和問題排查。

DashScope

使用SDK調用時需配置的base_url:

  • 新加坡:https://dashscope-intl.aliyuncs.com/api/v1

  • 華北2(北京):https://dashscope.aliyuncs.com/api/v1

使用HTTP方式調用時需配置的endpoint:

  • 新加坡:POST https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

  • 華北2(北京):POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

請求體

輸入字串

Python

import dashscope
from http import HTTPStatus

# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

resp = dashscope.TextEmbedding.call(
    model=dashscope.TextEmbedding.Models.text_embedding_v4,
    input='風急天高猿嘯哀, 渚清沙白鳥飛回, 無邊落木蕭蕭下, 不盡長江滾滾來',
    dimension=1024,
    output_type="dense&sparse"
)

print(resp) if resp.status_code == HTTPStatus.OK else print(resp)

Java

import java.util.Arrays;
import java.util.concurrent.Semaphore;
import com.alibaba.dashscope.common.ResultCallback;
import com.alibaba.dashscope.embeddings.TextEmbedding;
import com.alibaba.dashscope.embeddings.TextEmbeddingParam;
import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;

public final class Main {
    static {
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void basicCall() throws ApiException, NoApiKeyException{
        TextEmbeddingParam param = TextEmbeddingParam
        .builder()
        .model(TextEmbedding.Models.TEXT_EMBEDDING_V4)
        .texts(Arrays.asList("風急天高猿嘯哀", "渚清沙白鳥飛回", "無邊落木蕭蕭下", "不盡長江滾滾來")).build();
        TextEmbedding textEmbedding = new TextEmbedding();
        TextEmbeddingResult result = textEmbedding.call(param);
        System.out.println(result);
    }
  
    public static void callWithCallback() throws ApiException, NoApiKeyException, InterruptedException{
        TextEmbeddingParam param = TextEmbeddingParam
        .builder()
        .model(TextEmbedding.Models.TEXT_EMBEDDING_V3)
        .texts(Arrays.asList("風急天高猿嘯哀", "渚清沙白鳥飛回", "無邊落木蕭蕭下", "不盡長江滾滾來")).build();
        TextEmbedding textEmbedding = new TextEmbedding();
        Semaphore sem = new Semaphore(0);
        textEmbedding.call(param, new ResultCallback<TextEmbeddingResult>() {

          @Override
          public void onEvent(TextEmbeddingResult message) {
            System.out.println(message);
          }
          @Override
          public void onComplete(){
            sem.release();
          }

          @Override
          public void onError(Exception err){
            System.out.println(err.getMessage());
            err.printStackTrace();
            sem.release();
          }
          
        });
        sem.acquire();
    }

  public static void main(String[] args){
    try{
      callWithCallback();
    }catch(ApiException|NoApiKeyException|InterruptedException e){
      e.printStackTrace();
      System.out.println(e);

    }
      try {
        basicCall();
    } catch (ApiException | NoApiKeyException e) {
        System.out.println(e.getMessage());
    }
    System.exit(0);
  }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": {
        "texts": [
        "風急天高猿嘯哀,渚清沙白鳥飛回,無邊落木蕭蕭下,不盡長江滾滾來"
        ]
    },
    "parameters": {
    	"dimension": 1024,
    	"output_type": "dense"
    }
}'

輸入字串列表

Python

import dashscope
from http import HTTPStatus

# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
DASHSCOPE_MAX_BATCH_SIZE = 10

inputs = ['風急天高猿嘯哀', '渚清沙白鳥飛回', '無邊落木蕭蕭下', '不盡長江滾滾來']

result = None
batch_counter = 0
for i in range(0, len(inputs), DASHSCOPE_MAX_BATCH_SIZE):
    batch = inputs[i:i + DASHSCOPE_MAX_BATCH_SIZE]
    resp = dashscope.TextEmbedding.call(
        model=dashscope.TextEmbedding.Models.text_embedding_v4,
        input=batch,
        dimension=1024
    )
    if resp.status_code == HTTPStatus.OK:
        if result is None:
            result = resp
        else:
            for emb in resp.output['embeddings']:
                emb['text_index'] += batch_counter
                result.output['embeddings'].append(emb)
            result.usage['total_tokens'] += resp.usage['total_tokens']
    else:
        print(resp)
    batch_counter += len(batch)

print(result)

Java

import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.embeddings.TextEmbedding;
import com.alibaba.dashscope.embeddings.TextEmbeddingParam;
import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;

public final class Main {
    static {
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    private static final int DASHSCOPE_MAX_BATCH_SIZE = 10;

    public static void main(String[] args) {
        List<String> inputs = Arrays.asList(
                "風急天高猿嘯哀",
                "渚清沙白鳥飛回",
                "無邊落木蕭蕭下",
                "不盡長江滾滾來"
        );

        TextEmbeddingResult result = null;
        int batchCounter = 0;

        for (int i = 0; i < inputs.size(); i += DASHSCOPE_MAX_BATCH_SIZE) {
            List<String> batch = inputs.subList(i, Math.min(i + DASHSCOPE_MAX_BATCH_SIZE, inputs.size()));
            TextEmbeddingParam param = TextEmbeddingParam.builder()
                    .model(TextEmbedding.Models.TEXT_EMBEDDING_V4)
                    .texts(batch)
                    .build();

            TextEmbedding textEmbedding = new TextEmbedding();
            try {
                TextEmbeddingResult resp = textEmbedding.call(param);
                if (resp != null) {
                    if (result == null) {
                        result = resp;
                    } else {
                        for (var emb : resp.getOutput().getEmbeddings()) {
                            emb.setTextIndex(emb.getTextIndex() + batchCounter);
                            result.getOutput().getEmbeddings().add(emb);
                        }
                        result.getUsage().setTotalTokens(result.getUsage().getTotalTokens() + resp.getUsage().getTotalTokens());
                    }
                } else {
                    System.out.println(resp);
                }
            } catch (ApiException | NoApiKeyException e) {
                e.printStackTrace();
            }
            batchCounter += batch.size();
        }

        System.out.println(result);
    }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": {
        "texts": [
          "風急天高猿嘯哀",
          "渚清沙白鳥飛回", 
          "無邊落木蕭蕭下", 
          "不盡長江滾滾來"
        ]
    },
    "parameters": {
    	  "dimension": 1024,
    	  "output_type": "dense"
    }
}'

輸入檔案

Python

import dashscope
from http import HTTPStatus
from dashscope import TextEmbedding

# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 確保將 'texts_to_embedding.txt' 替換為您自己的檔案名稱或路徑
with open('texts_to_embedding.txt', 'r', encoding='utf-8') as f:
    resp = TextEmbedding.call(
        model=TextEmbedding.Models.text_embedding_v4,
        input=f,
        dimension=1024
    )

    if resp.status_code == HTTPStatus.OK:
        print(resp)
    else:
        print(resp)

Java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.alibaba.dashscope.embeddings.TextEmbedding;
import com.alibaba.dashscope.embeddings.TextEmbeddingParam;
import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;

public final class Main {
    static {
        // 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) {
        // 請確保替換 'tests_to_embedding.txt' 為您檔案的完整路徑
        try (BufferedReader reader = new BufferedReader(new FileReader("tests_to_embedding.txt"))) {
            StringBuilder content = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line).append("\n");
            }

            TextEmbeddingParam param = TextEmbeddingParam.builder()
                    .model(TextEmbedding.Models.TEXT_EMBEDDING_V4)
                    .text(content.toString())
                    .build();

            TextEmbedding textEmbedding = new TextEmbedding();
            TextEmbeddingResult result = textEmbedding.call(param);

            if (result != null) {
                System.out.println(result);
            } else {
                System.out.println("Failed to get embedding: " + result);
            }
        } catch (IOException | ApiException | NoApiKeyException e) {
            e.printStackTrace();
        }
    }
}

curl

如果使用華北2(北京)地區的模型,請使用華北2(北京)地區的 API KEY,並將url替換為:https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding
確保將 'texts_to_embedding.txt' 替換為您自己的檔案名稱或路徑
FILE_CONTENT=$(cat texts_to_embedding.txt | jq -Rs .)
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": {
        "texts": ['"$FILE_CONTENT"']
    },
    "parameters": {
        "dimension": 1024,
        "output_type": "dense"
    }
}'

model string 必選

調用的模型,參考模型概覽表格中的模型名稱進行選擇。

input stringarray<string> 必選

輸入文本的基本資料,可以是字串,字串列表, 或者開啟的檔案(需要Embedding的內容,一行一條)。

文本限制:

  • 文本數量:

    • 作為字串時最長支援 8,192 Token。

    • 作為字串列表時最多支援 10 條,每條最長支援 8,192 Token。

    • 作為檔案時最多支援 10 條,每條最長支援 8,192 Token。

text_type string 可選

文本轉換為向量後可以應用於檢索、聚類、分類等下遊任務,對檢索這類非對稱任務為了達到更好的檢索效果建議區分查詢文本(query)和底庫文本(document)類型,入庫、聚類、分類等對稱任務可以不用特殊指定,採用系統預設值document即可。

dimension integer 可選

指定的向量維度,必須為以下值之一:2048(僅適用於text-embedding-v4)、1536(僅適用於text-embedding-v4)1024、768、512、256、128 或 64,預設值為1024。

output_type string 可選

使用者指定輸出離散向量表示只適用於text-embedding-v3與text-embedding-v4模型,取值在dense、sparse、dense&sparse之間,預設取dense,只輸出連續向量。

instruct string 可選

添加自訂任務說明,僅在使用 text-embedding-v4 模型且 text_typequery 時生效。建議使用英文撰寫,通常可帶來約 1%–5% 的效果提升。

響應對象

成功響應

{   "status_code": 200, 
    "request_id": "1ba94ac8-e058-99bc-9cc1-7fdb37940a46", 
    "code": "", 
    "message": "",
    "output":{
        "embeddings": [
          {  
             "sparse_embedding":[
               {"index":7149,"value":0.829,"token":"風"},
               .....
               {"index":111290,"value":0.9004,"token":"哀"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 0
          }, 
          {
             "sparse_embedding":[
               {"index":246351,"value":1.0483,"token":"渚"},
               .....
               {"index":2490,"value":0.8579,"token":"回"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 1
          },
          {
             "sparse_embedding":[
               {"index":3759,"value":0.7065,"token":"無"},
               .....
               {"index":1130,"value":0.815,"token":"下"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 2
          },
          {
             "sparse_embedding":[
               {"index":562,"value":0.6752,"token":"不"},
               .....
               {"index":1589,"value":0.7097,"token":"來"}],
             "embedding": [-0.001945948973298072,-0.005336422007530928, ...],
             "text_index": 3
          }
        ]
    },
    "usage":{
        "total_tokens":27
    }
}

異常響應

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"xxxxxxxx"
}

status_code string

狀態代碼,表示請求的執行結果(如 200 表示成功)。

request_id string

請求唯一標識。可用於請求明細溯源和問題排查。

code string

請求失敗,表示錯誤碼,成功時返回參數中該參數為空白。

message string

請求失敗,表示失敗詳細資料,成功時返回參數中該參數為空白。

output object

任務輸出資訊。

屬性

embeddings array

本次請求的演算法輸出內容,是一個由結構組成的數組,每一個數組中包含一個對應的輸入 text 的演算法輸出內容。

屬性

sparse_embedding array

對應字串的演算法輸出離散向量表示 (sparse embedding僅適用於text-embedding-v3與text-embedding-v4)。

屬性

index integer

詞彙或字元在詞彙表中的位置索引。

value float

表示該 Token 的權重或重要性分數,值越高,表示該 Token 在當前文本上下文中的重要性或相關性越大。

token string

實際的文本單元或詞彙表中的詞。

embedding array

對應字串的演算法輸出連續向量表示 (dense embedding)。

text_index integer

本結構中的演算法結果對應的輸入文字在輸入數組中的索引值。

usage object

屬性

total_tokens integer

本次請求輸入內容的 token 數目,演算法的計量是根據使用者輸入字串被模型tokenizer解析之後對應的token 數目來進行。

錯誤碼

如果模型調用失敗並返回報錯資訊,請參見錯誤資訊進行解決。