すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:同期 API の詳細

最終更新日:Mar 20, 2026

汎用テキスト埋め込みモデルは、意味検索、レコメンデーション、クラスタリング、分類などの下流タスク向けに、テキストデータを数値ベクトルに変換します。

モデル概要

シンガポール

モデル

埋め込み次元

最大行数

1 行あたりの最大トークン数(

価格(入力トークン 100 万個あたり)

対応言語

無料クォータ(注)

text-embedding-v4

Qwen3-Embedding」シリーズの一部

2,048、1,536、1,024(デフォルト)、768、512、256、128、64

10

8,192

$0.07

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語、およびその他の主要言語 100 以上

100 万トークン

有効期限:Model Studio を有効化した日から 90 日間

text-embedding-v3

1,024(デフォルト)、768、512

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語、およびその他の主要言語 50 以上

50 万トークン

有効期限:Model Studio を有効化した日から 90 日間

北京

モデル

埋め込み次元

最大行数

1 行あたりの最大トークン数

価格(入力トークン 100 万個あたり)

対応言語

text-embedding-v4

Qwen3-Embedding」シリーズの一部

2,048、1,536、1,024(デフォルト)、768、512、256、128、64

10

8,192

$0.072

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語、およびその他の主要言語 100 以上と複数のプログラミング言語

中国(香港)

モデル

埋め込み次元

最大行数

1 行あたりの最大トークン数

価格(入力トークン 100 万個あたり)

対応言語

text-embedding-v4

Qwen3-Embedding」シリーズの一部

2,048、1,536、1,024(デフォルト)、768、512、256、128、64

10

8,192

$0.07

中国語、英語、スペイン語、フランス語、ポルトガル語、インドネシア語、日本語、韓国語、ドイツ語、ロシア語、およびその他の主要言語 100 以上と複数のプログラミング言語

モデルのレート制限について詳しくは、「レート制限」をご参照ください。

前提条件

OpenAI エコシステムに慣れている場合は、迅速な移行のために OpenAI 互換 API を使用できます。DashScope API には追加の独自機能が提供されます。ご要件に最も適した API を選択してください。

API キーの取得およびAPI キーを環境変数としてエクスポートしてください。SDK を使用して呼び出しを行う場合は、DashScope SDK のインストールが必要です。

OpenAI 互換

SDK 呼び出しで設定する base_url:

  • シンガポール:https://dashscope-intl.aliyuncs.com/compatible-mode/v1

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

  • 中国(香港):https://cn-hongkong.dashscope.aliyuncs.com/compatible-mode/v1

HTTP 呼び出しで設定するエンドポイント:

  • シンガポール:POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings

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

  • 中国(香港):POST https://cn-hongkong.dashscope.aliyuncs.com/compatible-mode/v1/embeddings

リクエストボディ

入力文字列

Python

import os
from openai import OpenAI

client = OpenAI(
    # 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 環境変数を設定していない場合は、ここを API キーに置き換えてください。
    # 中国(北京)リージョンのモデルを使用する場合は、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 com.alibaba.dashscope.utils.JsonUtils;

public final class Main {
    public static void main(String[] args) {
        // 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先: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 が環境変数に見つかりません");
            return;
        }
        // 中国(北京)リージョンのモデルを使用する場合は、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.body());
            } else {
                System.out.printf("応答の取得に失敗しました。ステータスコード:%d、応答:%s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("エラー:" + e.getMessage());
        }
    }
}

curl

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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(
    # 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 環境変数を設定していない場合は、ここを API キーに置き換えてください。
    # 中国(北京)リージョンのモデルを使用する場合は、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 キーを取得します。設定されていない場合は、直接 API キーを指定してください。 */
        // 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先: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 が環境変数に見つかりません");
            return;
        }
        // 中国(北京)リージョンのモデルを使用する場合は、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.body());
            } else {
                System.out.printf("応答の取得に失敗しました。ステータスコード:%d、応答:%s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            /** 例外をキャッチして出力します。 */
            System.err.println("エラー:" + e.getMessage());
        }
    }
}

curl

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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(
    # 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先:https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 環境変数を設定していない場合は、ここを API キーに置き換えてください。
    # 中国(北京)リージョンのモデルを使用する場合は、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 キーを取得します。設定されていない場合は、直接 API キーを指定してください。 */
        // 中国(北京)リージョンのモデルを使用する場合は、そのリージョン専用の API キーを使用してください。取得先: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 が環境変数に見つかりません");
            return;
        }
        // 中国(北京)リージョンのモデルを使用する場合は、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("<path_to_your_content_root>"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                inputText.append(line).append("\n");
            }
        } catch (IOException e) {
            System.err.println("入力ファイルの読み取りエラー:" + 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.body());
            } else {
                System.out.printf("応答の取得に失敗しました。ステータスコード:%d、応答:%s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("エラー:" + e.getMessage());
        }
    }
}

curl

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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> or string or file 必須

処理対象のテキストです。テキストは文字列、文字列の配列、またはファイルのいずれかになります。以下に説明します。

入力が文字列の場合、最大 8,192 トークンをサポートします。入力が文字列のリストまたはファイルの場合、最大 10 アイテム(行)をサポートし、各アイテム(行)は最大 8,192 トークンをサポートします。

dimensions integer 任意

出力ベクトルの次元数です。値は、2,048(text-embedding-v4 のみ)、1,536(text-embedding-v4 のみ)、1,024、768、512、256、128、64 のいずれかである必要があります。デフォルト値は 1,024 です。

encoding_format string 任意

返される埋め込みのフォーマットを指定します。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": "無効な API キーが指定されました。",
        "type": "invalid_request_error",
        "param": null,
        "code": "invalid_api_key"
    }
}

data array

タスクの出力情報です。

プロパティ

embedding list

返されたオブジェクトの値です。このパラメーターは浮動小数点数の配列であり、埋め込みベクトルを含みます。

index integer

このアルゴリズム結果に対応する入力配列内の入力テキストのインデックスです。

object string

返されるオブジェクトのタイプです。デフォルト値は `embedding` です。

model string

この呼び出しで使用されたモデルの名前です。

object string

返されるデータのタイプです。デフォルト値は `list` です。

usage object

プロパティ

prompt_tokens integer

ユーザー入力テキストのトークン数です。

total_tokens integer

この要求の入力におけるトークンの総数です。この数値は、モデルのトークナイザーが入力文字列をどのように解析するかに基づいて計算されます。

id string

一意の要求識別子です。この識別子は要求のトレースおよびトラブルシューティングに使用できます。

DashScope

SDK 呼び出しで設定する base_url:

  • シンガポール:https://dashscope-intl.aliyuncs.com/api/v1

  • 中国(北京):https://dashscope.aliyuncs.com/api/v1

  • 中国(香港):https://cn-hongkong.dashscope.aliyuncs.com/api/v1

HTTP 呼び出しで設定するエンドポイント:

  • シンガポール:POST https://dashscope-intl.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

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

  • 中国(香港):POST https://cn-hongkong.dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

リクエストボディ

入力文字列

Python

import dashscope
from http import HTTPStatus

# 中国(北京)リージョンのモデルを使用する場合は、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 {
        // 中国(北京)リージョンのモデルを使用する場合は、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

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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

# 中国(北京)リージョンのモデルを使用する場合は、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 {
        // 中国(北京)リージョンのモデルを使用する場合は、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

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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

# 中国(北京)リージョンのモデルを使用する場合は、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 {
        // 中国(北京)リージョンのモデルを使用する場合は、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("埋め込みの取得に失敗しました:" + result);
            }
        } catch (IOException | ApiException | NoApiKeyException e) {
            e.printStackTrace();
        }
    }
}

curl

中国(北京)リージョンのモデルを使用する場合は、API キーをそのリージョン専用に取得し、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 string または array<string> 必須

処理対象のテキストです。テキストは文字列、文字列の配列、またはファイルのいずれかになります。以下に説明します。

文字列入力は最大 8,192 トークンを含むことができます。文字列のリストまたはファイル入力は最大 10 アイテムまたは行を含むことができ、各アイテムまたは行は最大 8,192 トークンを含むことができます。

text_type string 任意

HTTP 経由で呼び出しを行う場合、text_type を `parameters` オブジェクト内に配置します。

テキストをベクトルに変換した後、取得したベクトルは取得、クラスタリング、分類などの下流タスクに使用できます。取得などの非対称タスクでは、クエリテキスト(`query`)とドキュメントテキスト(`document`)を区別することで、より優れた結果を得ることができます。インデックス作成、クラスタリング、分類などの対称タスクでは、デフォルト値 document を使用できます。

dimension integer 任意

HTTP 経由で呼び出しを行う場合、dimension を `parameters` オブジェクト内に配置します。

出力ベクトルの次元数です。値は、2,048(`text-embedding-v4` のみ)、1,536(`text-embedding-v4` のみ)、1,024、768、512、256、128、64 のいずれかである必要があります。デフォルト値は 1,024 です。

output_type string 任意

HTTP 経由で呼び出しを行う場合、output_type を `parameters` オブジェクト内に配置します。

疎ベクトル表現を出力するかどうかを指定します。このパラメーターは text-embedding-v3 および text-embedding-v4 モデルでのみ適用可能です。有効な値は `dense`、`sparse`、`dense&sparse` です。デフォルト値は `dense` であり、密ベクトルのみが出力されることを意味します。

instruct string 任意

クエリの意図を理解するようモデルをガイドするカスタムタスク命令を追加できます。英語で命令を記述すると、性能向上が 1%~5% 期待できます。

応答オブジェクト

成功時の応答

{   "status_code": 200, 
    "request_id": "1ba94ac8-e058-99bc-9cc1-7fdb37940a46", 
    "code": "", 
    "message": "",
    "output":{
        "embeddings": [
          {  
             "sparse_embedding":[
               {"index":7149,"value":0.829,"token":"wind"},
               .....
               {"index":111290,"value":0.9004,"token":"sorrow"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 0
          }, 
          {
             "sparse_embedding":[
               {"index":246351,"value":1.0483,"token":"islet"},
               .....
               {"index":2490,"value":0.8579,"token":"return"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 1
          },
          {
             "sparse_embedding":[
               {"index":3759,"value":0.7065,"token":"none"},
               .....
               {"index":1130,"value":0.815,"token":"down"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 2
          },
          {
             "sparse_embedding":[
               {"index":562,"value":0.6752,"token":"not"},
               .....
               {"index":1589,"value":0.7097,"token":"come"}],
             "embedding": [-0.001945948973298072,-0.005336422007530928, ...],
             "text_index": 3
          }
        ]
    },
    "usage":{
        "total_tokens":27
    }
}

エラー応答

{
    "code":"InvalidApiKey",
    "message":"無効な API キーが指定されました。",
    "request_id":"xxxxxxxx"
}

status_code string

要求の結果を示すステータスコードです。たとえば、ステータスコード 200 は要求が成功したことを示します。

request_id string

一意の要求識別子です。この識別子は要求のトレースおよびトラブルシューティングに使用できます。

code string

要求が失敗した場合に返されるエラーコードです。要求が成功した場合は、このパラメーターは空になります。

message string

要求が失敗した場合に返される詳細なエラーメッセージです。要求が成功した場合は、このパラメーターは空になります。

output object

タスクの出力情報です。

プロパティ

embeddings array

要求に対するアルゴリズムの出力です。このパラメーターは構造体の配列です。各構造体には、対応する入力テキストに対するアルゴリズムの出力が含まれます。

プロパティ

sparse_embedding array

対応する文字列に対してアルゴリズムが出力する疎ベクトル表現です。疎埋め込みは text-embedding-v3 および text-embedding-v4 のみで適用可能です。

プロパティ

index integer

語彙における単語または文字の位置インデックスです。

value float

トークン の重みまたは重要度スコアです。トークン の現在のテキスト文脈における重要性または関連性が高いほど、値は大きくなります。

token string

語彙からのテキスト単位または単語です。

embedding array

対応する文字列に対してアルゴリズムが出力する密ベクトル表現(密埋め込み)です。

text_index integer

このアルゴリズム結果に対応する入力配列内の入力テキストのインデックスです。

usage object

プロパティ

total_tokens integer

この要求の入力におけるトークンの総数です。この数値は、モデルのトークナイザーが入力文字列をどのように解析するかに基づいて計算されます。

エラーコード

モデル呼び出しが失敗し、エラーが返された場合は、「エラーメッセージ」を参照して解決策をご確認ください。