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

Alibaba Cloud Model Studio:同期 API

最終更新日:Jun 04, 2026

汎用テキスト埋め込みモデルは、テキストデータを数値ベクトルに変換し、セマンティック検索、レコメンデーション、クラスタリング、分類などのダウンストリームタスクに活用します。

モデル概要

シンガポール

モデル

埋め込み次元

最大行数

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

料金 (1M 入力トークンあたり)

サポート言語

無料クォータ (注記)

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 行あたりの最大トークン数

料金 (1M 入力トークンあたり)

サポート言語

text-embedding-v4

Qwen3-Embedding シリーズの一部

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

10

8,192

$0.072

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

中国 (香港)

モデル

埋め込み次元

最大行数

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

料金 (1M 入力トークンあたり)

サポート言語

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 キーをエクスポートします。SDK を使用して呼び出す場合は、DashScope SDK をインストールしてください。

OpenAI 互換性

SDK 呼び出し用に設定する base_url

  • シンガポール: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

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

  • 中国 (香港): https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

HTTP 呼び出し用に設定する エンドポイント

  • シンガポール: POSThttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/embeddings。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

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

  • 中国 (香港): POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1/embeddings。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

重要

レガシのシンガポールドメイン https://dashscope-intl.aliyuncs.com および中国 (香港) ドメイン https://cn-hongkong.dashscope.aliyuncs.com は廃止予定です。できるだけ早く https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com (シンガポール) および https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com (中国 (香港)) に移行してください。

リクエストボディ

入力文字列

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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.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) {
        // 中国 (北京) リージョンのモデルを使用する場合は、必ずそのリージョンの 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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        String baseUrl = "https://{WorkspaceId}.ap-southeast-1.maas.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", "The wind is strong, the sky is high, and the apes cry mournfully. The islet is clear, the sand is white, and the birds fly back. The boundless forest sheds its leaves shower by shower. The endless river rolls on wave after wave.");
        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 に置き換えてください。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": "The wind is strong, the sky is high, and the apes cry mournfully. The islet is clear, the sand is white, and the birds fly back. The boundless forest sheds its leaves shower by shower. The endless river rolls on wave after wave.",  
    "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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"  
)

completion = client.embeddings.create(
    model="text-embedding-v4",
    input=['The wind is strong, the sky is high, and the apes cry mournfully.', 'The islet is clear, the sand is white, and the birds fly back.', 'The boundless forest sheds its leaves shower by shower.', 'The endless river rolls on wave after wave.'],
    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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        String baseUrl = "https://{WorkspaceId}.ap-southeast-1.maas.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("The wind is strong, the sky is high, and the apes cry mournfully.", "The islet is clear, the sand is white, and the birds fly back.", "The boundless forest sheds its leaves shower by shower.", "The endless river rolls on wave after wave.");
        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 に置き換えてください。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": [
        "The wind is strong, the sky is high, and the apes cry mournfully.",
        "The islet is clear, the sand is white, and the birds fly back.", 
        "The boundless forest sheds its leaves shower by shower.", 
        "The endless river rolls on wave after wave."
        ],
    "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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        String baseUrl = "https://{WorkspaceId}.ap-southeast-1.maas.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 に置き換えてください。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
'texts_to_embedding.txt' は実際のファイル名またはパスに置き換えてください。
FILE_CONTENT=$(cat texts_to_embedding.txt | jq -Rs .)
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.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 必須

処理する入力テキスト。入力は文字列、文字列の配列、またはファイルです。

入力が文字列の場合、最大長は 8,192 トークンです。入力が文字列リストまたはファイルの場合、最大バッチサイズは 10 項目 (行) で、各項目 (行) は最大 8,192 トークンを含めることができます。

dimensions integer オプション

出力埋め込みベクトルの次元。以下のいずれかの値である必要があります: 2048 (text-embedding-v4 のみ)、1536 (text-embedding-v4 のみ)、1024、768、512、256、128、または 64。デフォルト値は 1024 です。

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": "Incorrect API key provided. ",
        "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

base_url (SDK 呼び出し用):

  • シンガポール: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

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

  • 中国 (香港): https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

エンドポイント (HTTP 呼び出し用):

  • シンガポール: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

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

  • 中国 (香港): POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding。 WorkspaceId は実際の ワークスペース ID に置き換えてください。

重要

中国 (香港) のレガシー URL https://cn-hongkong.dashscope.aliyuncs.com/api/v1 は近日中に非推奨になります。新しい URL https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1 にできるだけ早く移行してください。

重要

シンガポールリージョンのレガシードメイン https://dashscope-intl.aliyuncs.com は近日中に非推奨になります。新しいドメイン https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com にできるだけ早く移行してください。

リクエストボディ

入力文字列

Python

import dashscope
from http import HTTPStatus

# これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

resp = dashscope.TextEmbedding.call(
    model=dashscope.TextEmbedding.Models.text_embedding_v4,
    input='A swift wind, a high sky, and the gibbons cry mournfully. A clear islet, white sand, and the birds fly back. Boundless rustling woods shed their leaves. The endless Yangtze River comes rolling in.',
    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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    public static void basicCall() throws ApiException, NoApiKeyException{
        TextEmbeddingParam param = TextEmbeddingParam
        .builder()
        .model(TextEmbedding.Models.TEXT_EMBEDDING_V4)
        .texts(Arrays.asList("A swift wind, a high sky, and the gibbons cry mournfully.", "A clear islet, white sand, and the birds fly back.", "Boundless rustling woods shed their leaves.", "The endless Yangtze River comes rolling in.")).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("A swift wind, a high sky, and the gibbons cry mournfully.", "A clear islet, white sand, and the birds fly back.", "Boundless rustling woods shed their leaves.", "The endless Yangtze River comes rolling in.")).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。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.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": [
        "A swift wind, a high sky, and the gibbons cry mournfully. A clear islet, white sand, and the birds fly back. Boundless rustling woods shed their leaves. The endless Yangtze River comes rolling in."
        ]
    },
    "parameters": {
    	"dimension": 1024,
    	"output_type": "dense"
    }
}'

入力文字列リスト

Python

import dashscope
from http import HTTPStatus

# これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
DASHSCOPE_MAX_BATCH_SIZE = 10

inputs = ['A swift wind, a high sky, and the gibbons cry mournfully.', 'A clear islet, white sand, and the birds fly back.', 'Boundless rustling woods shed their leaves.', 'The endless Yangtze River comes rolling in.']

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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    private static final int DASHSCOPE_MAX_BATCH_SIZE = 10;

    public static void main(String[] args) {
        List<String> inputs = Arrays.asList(
                "A swift wind, a high sky, and the gibbons cry mournfully.",
                "A clear islet, white sand, and the birds fly back.",
                "Boundless rustling woods shed their leaves.",
                "The endless Yangtze River comes rolling in."
        );

        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。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.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": [
          "A swift wind, a high sky, and the gibbons cry mournfully.",
          "A clear islet, white sand, and the birds fly back.", 
          "Boundless rustling woods shed their leaves.", 
          "The endless Yangtze River comes rolling in."
        ]
    },
    "parameters": {
    	  "dimension": 1024,
    	  "output_type": "dense"
    }
}'

入力ファイル

Python

import dashscope
from http import HTTPStatus
from dashscope import TextEmbedding

# これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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 です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) {
        // 'texts_to_embedding.txt' はファイルへのパスに置き換えてください。
        try (BufferedReader reader = new BufferedReader(new FileReader("texts_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。これはシンガポールリージョンの URL です。WorkspaceId は実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
'texts_to_embedding.txt' は実際のファイル名またはパスに置き換えてください。
FILE_CONTENT=$(cat texts_to_embedding.txt | jq -Rs .)
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.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 オブジェクト内に配置します。

出力ベクトルの埋め込み次元を指定します。有効な値は、2048 (text-embedding-v4 のみ)、1536 (text-embedding-v4 のみ)、1024、768、512、256、128、または 64 です。デフォルトは 1024 です。

output_type string オプション

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

出力ベクトルタイプを指定します。このパラメーターは text-embedding-v3 および text-embedding-v4 モデルでのみ適用されます。有効な値は densesparse、および 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":"swift"},
               .....
               {"index":111290,"value":0.9004,"token":"mournfully"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 0
          }, 
          {
             "sparse_embedding":[
               {"index":246351,"value":1.0483,"token":"islet"},
               .....
               {"index":2490,"value":0.8579,"token":"back"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 1
          },
          {
             "sparse_embedding":[
               {"index":3759,"value":0.7065,"token":"Boundless"},
               .....
               {"index":1130,"value":0.815,"token":"leaves"}],
             "embedding": [-0.006929283495992422,-0.005336422007530928, ...],
             "text_index": 2
          },
          {
             "sparse_embedding":[
               {"index":562,"value":0.6752,"token":"endless"},
               .....
               {"index":1589,"value":0.7097,"token":"in"}],
             "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

HTTP ステータスコード。200 の場合、成功を示します。

request_id string

リクエストの一意識別子。この ID を使用してリクエストをトレースおよびトラブルシューティングできます。

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

モデルのトークナイザーによって計算された入力内のトークン数。

エラーコード

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