All Products
Search
Document Center

Alibaba Cloud Model Studio:Detail API sinkron

Last Updated:Mar 20, 2026

Model penyematan teks tujuan umum mengonversi data teks menjadi vektor numerik untuk tugas-tugas downstream seperti pencarian semantik, rekomendasi, pengelompokan, dan kategorisasi.

Ikhtisar model

Singapura

Model

Dimensi penyematan

Jumlah Maksimum Baris

Maks token per baris (Catatan)

Harga (per juta token input)

Bahasa yang didukung

Kuota gratis (Catatan)

text-embedding-v4

Bagian dari seri Qwen3-Embedding

2.048, 1.536, 1.024 (default), 768, 512, 256, 128, 64

10

8.192

$0,07

Bahasa Tionghoa, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan lebih dari 100 bahasa utama lainnya

1 juta token

Berlaku: 90 hari setelah Anda mengaktifkan Model Studio

text-embedding-v3

1.024 (default), 768, 512

Bahasa Tionghoa, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan lebih dari 50 bahasa utama lainnya

500.000 token

Berlaku: 90 hari setelah Anda mengaktifkan Model Studio

Beijing

Model

Dimensi penyematan

Jumlah maksimum baris

Maks token per baris

Harga (per juta token input)

Bahasa yang didukung

text-embedding-v4

Bagian dari seri Qwen3-Embedding

2.048, 1.536, 1.024 (default), 768, 512, 256, 128, 64

10

8.192

$0,072

Bahasa Tionghoa, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan lebih dari 100 bahasa utama lainnya serta berbagai bahasa pemrograman

Tiongkok (Hong Kong)

Model

Dimensi penyematan

Jumlah maksimum baris

Token maksimum per baris

Harga (per juta token input)

Bahasa yang didukung

text-embedding-v4

Bagian dari seri Qwen3-Embedding

2.048, 1.536, 1.024 (default), 768, 512, 256, 128, 64

10

8.192

$0,07

Bahasa Tionghoa, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan lebih dari 100 bahasa utama lainnya serta berbagai bahasa pemrograman

Untuk informasi tentang batas laju model, lihat Pembatasan laju.

Prasyarat

Jika Anda terbiasa dengan ekosistem OpenAI, Anda dapat menggunakan API kompatibel OpenAI untuk migrasi cepat. API DashScope menyediakan fitur unik tambahan. Pilih API yang paling sesuai dengan kebutuhan Anda.

Dapatkan Kunci API dan ekspor Kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, instal SDK DashScope.

Kompatibel dengan OpenAI

base_url untuk dikonfigurasi pada panggilan SDK:

  • Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1

  • Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1

  • Tiongkok (Hong Kong): https://cn-hongkong.dashscope.aliyuncs.com/compatible-mode/v1

Titik akhir untuk dikonfigurasi pada panggilan HTTP:

  • Singapura: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings

  • Tiongkok (Beijing): POST https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings

  • Tiongkok (Hong Kong): POST https://cn-hongkong.dashscope.aliyuncs.com/compatible-mode/v1/embeddings

Badan permintaan

String input

Python

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti ini dengan Kunci API Anda.
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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='Pakaian berkualitas baik dan terlihat bagus, pasti layak menunggu. Saya menyukainya.',
    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) {
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: 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 tidak ditemukan dalam variabel lingkungan");
            return;
        }
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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", "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih. Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung ombak demi ombak.");
        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("Respons: " + response.body());
            } else {
                System.out.printf("Gagal mendapatkan respons, kode status: %d, respons: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("Kesalahan: " + e.getMessage());
        }
    }
}

curl

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: 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": "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih. Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung ombak demi ombak.",  
    "dimensions": 1024,  
    "encoding_format": "float"
}'

Daftar string input

Python

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti ini dengan Kunci API Anda.
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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=['Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.', 'Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.', 'Hutan tak berbatas menggugurkan daunnya hujan demi hujan.', 'Sungai tak berujung bergulung ombak demi ombak.'],
    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) {
        /** Dapatkan Kunci API dari variabel lingkungan. Jika tidak dikonfigurasi, ganti langsung dengan Kunci API Anda. */
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: 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 tidak ditemukan dalam variabel lingkungan");
            return;
        }
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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("Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.", "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung ombak demi ombak.");
        requestBody.put("input", inputList);
        requestBody.put("encoding_format", "float");

        try {
            /** Konversi badan permintaan ke string JSON. */
            String requestBodyString = JsonUtils.toJson(requestBody);

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

            /** Kirim permintaan dan terima respons. */
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            if (response.statusCode() == 200) {
                System.out.println("Respons: " + response.body());
            } else {
                System.out.printf("Gagal mendapatkan respons, kode status: %d, respons: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            /** Tangkap dan cetak pengecualian. */
            System.err.println("Kesalahan: " + e.getMessage());
        }
    }
}

curl

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: 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": [
        "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.",
        "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.", 
        "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", 
        "Sungai tak berujung bergulung ombak demi ombak."
        ],
    "dimensions": 1024,
    "encoding_format": "float"
}'

File input

Python

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti ini dengan Kunci API Anda.
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"  
)
# Pastikan untuk mengganti 'texts_to_embedding.txt' dengan nama file atau jalur Anda sendiri.
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) {
        /** Dapatkan Kunci API dari variabel lingkungan. Jika tidak dikonfigurasi, ganti langsung dengan Kunci API Anda. */
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut. Dapatkan di: 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 tidak ditemukan dalam variabel lingkungan");
            return;
        }
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
        String baseUrl = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/embeddings";
        HttpClient client = HttpClient.newHttpClient();

        /** Baca file input. */
        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("Kesalahan membaca file input: " + 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);

            /** Bangun permintaan 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("Respons: " + response.body());
            } else {
                System.out.printf("Gagal mendapatkan respons, kode status: %d, respons: %s%n", response.statusCode(), response.body());
            }
        } catch (Exception e) {
            System.err.println("Kesalahan: " + e.getMessage());
        }
    }
}

curl

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings
Pastikan untuk mengganti 'texts_to_embedding.txt' dengan nama file atau jalur Anda.
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 Wajib

Nama model yang akan dipanggil. Pilih nama model dari tabel Ikhtisar model.

input array<string> atau string atau file Wajib

Teks yang akan diproses. Teks dapat berupa string, array string, atau file. seperti dijelaskan di bawah ini:

Ketika input berupa string, mendukung hingga 8.192 token. Ketika input berupa daftar string atau file, mendukung hingga 10 item (baris), dengan setiap item (baris) mendukung hingga 8.192 token.

dimensions integer Opsi

Jumlah dimensi untuk vektor output. Nilainya harus 2.048 (hanya untuk text-embedding-v4), 1.536 (hanya untuk text-embedding-v4), 1.024, 768, 512, 256, 128, atau 64. Nilai default adalah 1.024.

encoding_format string Opsional

Menentukan format penyematan yang dikembalikan. Hanya float yang didukung.

Objek respons

Respons sukses

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

Respons kesalahan

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

data array

Informasi output dari tugas.

Properti

embedding list

Nilai objek yang dikembalikan. Parameter ini adalah array bilangan titik mengambang yang berisi vektor penyematan.

index integer

Indeks teks input dalam array input yang sesuai dengan hasil algoritma ini.

object string

Jenis objek yang dikembalikan. Nilai default adalah `embedding`.

model string

Nama model yang digunakan dalam panggilan ini.

object string

Jenis data yang dikembalikan. Nilai default adalah `list`.

usage object

Properti

prompt_tokens integer

Jumlah token dalam teks input pengguna.

total_tokens integer

Jumlah total token dalam input untuk permintaan ini. Angka ini dihitung berdasarkan cara tokenizer model mengurai string input.

id string

Identifikasi permintaan unik. Anda dapat menggunakan identifikasi ini untuk pelacakan permintaan dan troubleshooting.

DashScope

base_url untuk dikonfigurasi pada panggilan SDK:

  • Singapura: https://dashscope-intl.aliyuncs.com/api/v1

  • Tiongkok (Beijing): https://dashscope.aliyuncs.com/api/v1

  • Tiongkok (Hong Kong): https://cn-hongkong.dashscope.aliyuncs.com/api/v1

Titik akhir untuk dikonfigurasi pada panggilan HTTP:

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

  • Tiongkok (Beijing): POST https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

  • Tiongkok (Hong Kong): POST https://cn-hongkong.dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

Badan permintaan

String input

Python

import dashscope
from http import HTTPStatus

# Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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='Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih, pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang, hutan tak berbatas menggugurkan daunnya hujan demi hujan, sungai tak berujung bergulung ombak demi ombak',
    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 {
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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("Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.", "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung ombak demi ombak.")).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("Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.", "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung ombak demi ombak.")).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

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: 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": [
        "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih. Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung ombak demi ombak."
        ]
    },
    "parameters": {
    	"dimension": 1024,
    	"output_type": "dense"
    }
}'

Daftar string input

Python

import dashscope
from http import HTTPStatus

# Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
DASHSCOPE_MAX_BATCH_SIZE = 10

inputs = ['Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.', 'Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.', 'Hutan tak berbatas menggugurkan daunnya hujan demi hujan.', 'Sungai tak berujung bergulung ombak demi ombak.']

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 {
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: 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(
                "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.",
                "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.",
                "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.",
                "Sungai tak berujung bergulung ombak demi ombak."
        );

        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

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: 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": [
          "Anginnya kencang, langitnya tinggi, dan kera-kera menangis sedih.",
          "Pulau kecilnya jernih, pasirnya putih, dan burung-burung kembali terbang.", 
          "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", 
          "Sungai tak berujung bergulung ombak demi ombak."
        ]
    },
    "parameters": {
    	  "dimension": 1024,
    	  "output_type": "dense"
    }
}'

File input

Python

import dashscope
from http import HTTPStatus
from dashscope import TextEmbedding

# Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Pastikan untuk mengganti 'texts_to_embedding.txt' dengan nama file atau jalur Anda sendiri.
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 {
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void main(String[] args) {
        // Pastikan untuk mengganti 'tests_to_embedding.txt' dengan jalur lengkap file Anda.
        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("Gagal mendapatkan penyematan: " + result);
            }
        } catch (IOException | ApiException | NoApiKeyException e) {
            e.printStackTrace();
        }
    }
}

curl

Jika Anda menggunakan model di wilayah Tiongkok (Beijing), gunakan Kunci API untuk wilayah tersebut dan ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding
Pastikan untuk mengganti 'texts_to_embedding.txt' dengan nama file atau jalur Anda.
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 Wajib

Model yang akan dipanggil. Pilih nama model dari tabel Ikhtisar model.

input string atau array<string> Wajib

Teks yang akan diproses. Teks dapat berupa string, array string, atau file. seperti dijelaskan di bawah ini:

Input string dapat berisi hingga 8.192 token. Daftar string atau file dapat berisi hingga 10 item atau baris, dengan setiap item atau baris dibatasi hingga 8.192 token.

text_type string Opsi

Jika Anda melakukan panggilan melalui HTTP, letakkan text_type dalam objek `parameters`.

Setelah Anda mengonversi teks menjadi vektor, Anda dapat menggunakan vektor tersebut untuk tugas-tugas downstream seperti pengambilan, pengelompokan, dan kategorisasi. Untuk tugas asimetris seperti pengambilan, kami merekomendasikan agar Anda membedakan antara teks kueri (`query`) dan teks dokumen (`document`) untuk mencapai hasil yang lebih baik. Untuk tugas simetris seperti pengindeksan, pengelompokan, dan kategorisasi, Anda dapat menggunakan nilai default document.

dimension integer Opsi

Jika Anda melakukan panggilan melalui HTTP, letakkan dimension dalam objek `parameters`.

Jumlah dimensi untuk vektor output. Nilainya harus 2.048 (hanya `text-embedding-v4`), 1.536 (hanya `text-embedding-v4`), 1.024, 768, 512, 256, 128, atau 64. Nilai default adalah 1.024.

output_type string Opsional

Jika Anda melakukan panggilan melalui HTTP, letakkan output_type dalam objek `parameters`.

Menentukan apakah akan mengeluarkan representasi vektor jarang. Parameter ini hanya berlaku untuk model text-embedding-v3 dan text-embedding-v4. Nilai yang valid adalah `dense`, `sparse`, dan `dense&sparse`. Nilai default adalah `dense`, yang menunjukkan bahwa hanya vektor padat yang dikeluarkan.

instruct string Opsi

Anda dapat menambahkan instruksi tugas kustom untuk membimbing model dalam memahami maksud kueri. Jika Anda menulis instruksi dalam bahasa Inggris, Anda dapat mengharapkan peningkatan performa sebesar 1% hingga 5%.

Objek respons

Respons sukses

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

Respons kesalahan

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

status_code string

Kode status yang menunjukkan hasil permintaan. Misalnya, kode status 200 menunjukkan bahwa permintaan berhasil.

request_id string

Identifikasi permintaan unik. Anda dapat menggunakan identifikasi ini untuk pelacakan permintaan dan troubleshooting.

code string

Kode kesalahan yang dikembalikan jika permintaan gagal. Parameter ini kosong jika permintaan berhasil.

message string

Pesan kesalahan rinci yang dikembalikan jika permintaan gagal. Parameter ini kosong jika permintaan berhasil.

output object

Informasi output dari tugas.

Properti

embeddings array

Output algoritma untuk permintaan. Parameter ini adalah array struktur. Setiap struktur berisi output algoritma untuk teks input yang sesuai.

Properti

sparse_embedding array

Representasi vektor jarang yang dikeluarkan oleh algoritma untuk string yang sesuai. Penyematan jarang hanya berlaku untuk text-embedding-v3 dan text-embedding-v4.

Properti

index integer

Indeks posisi kata atau karakter dalam kosakata.

value float

Bobot atau skor kepentingan token. Nilai yang lebih tinggi menunjukkan kepentingan atau relevansi token yang lebih besar dalam konteks teks saat ini.

token string

Unit teks atau kata dari kosakata.

embedding array

Representasi vektor padat yang dikeluarkan oleh algoritma untuk string yang sesuai (penyematan padat).

text_index integer

Indeks teks input dalam array input yang sesuai dengan hasil algoritma ini.

usage object

Properti

total_tokens integer

Jumlah total token dalam input untuk permintaan ini. Angka ini dihitung berdasarkan cara tokenizer model mengurai string input.

Kode kesalahan

Jika panggilan model gagal dan kesalahan dikembalikan, lihat Pesan kesalahan untuk solusi.