全部产品
Search
文档中心

Alibaba Cloud Model Studio:Detail API sinkron

更新时间:Nov 27, 2025

Model text embedding mengonversi data teks menjadi vektor numerik untuk tugas-tugas lanjutan seperti pencarian semantik, rekomendasi, pengelompokan, dan kategorisasi.

Ikhtisar model

Singapura

Model

Dimensi vektor

Jumlah Maksimum Baris

Maksimum 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 Tiongkok, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan 100+ bahasa utama lainnya

1 juta token

Berlaku selama 90 hari setelah Anda mengaktifkan Model Studio.

text-embedding-v3

1.024 (default), 768, 512

Bahasa Tiongkok, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan 50+ bahasa utama lainnya

500.000 token

Masa berlaku: 90 hari setelah Anda mengaktifkan Model Studio

Beijing

Nama model

Dimensi vektor

Jumlah Maksimum Baris

Maksimum 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 Tiongkok, Inggris, Spanyol, Prancis, Portugis, Indonesia, Jepang, Korea, Jerman, Rusia, dan 100+ bahasa utama lainnya serta beberapa bahasa pemrograman

Untuk informasi lebih lanjut mengenai batas laju model, lihat Batas laju.

Persiapan

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

Anda harus mendapatkan Kunci API dan mengatur Kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, Anda juga harus menginstal 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

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

Isi permintaan

String input

Python

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti placeholder 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 ditunggu. 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), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya 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 menangis pilu. 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 menangis pilu. 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), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti placeholder 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 menangis pilu.', '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 belum dikonfigurasi, ganti placeholder dengan Kunci API Anda. */
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya 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 menangis pilu.", "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 menjadi 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 menangis pilu.",
        "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), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya di: https://bailian.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Jika Anda belum mengonfigurasi variabel lingkungan, ganti placeholder 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 belum dikonfigurasi, ganti placeholder dengan Kunci API Anda. */
        // Jika Anda menggunakan model di wilayah Tiongkok (Beijing), Anda harus menggunakan Kunci API untuk wilayah tersebut. Anda dapat memperolehnya 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
Ganti '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

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

input array<string> atau string atau file Wajib

Teks input yang akan di-embedding, yang dapat berupa string, daftar string, atau file di mana setiap baris dianggap sebagai teks terpisah.

Batas teks:

  • Batas input teks:

    • String dapat berisi hingga 8.192 token.

    • Daftar string dapat berisi hingga 10 string, masing-masing maksimal 8.192 token.

    • File dapat berisi hingga 10 baris, dengan masing-masing baris mendukung maksimal 8.192 token.

dimensions integer Opsi

Dimensi vektor. Nilainya harus salah satu dari berikut: 2048 (hanya untuk text-embedding-v4), 1536 (hanya untuk text-embedding-v4), 1024, 768, 512, 256, 128, atau 64. Nilai default adalah 1024.

encoding_format string Opsi

Format embedding yang dikembalikan. Hanya format 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

Data keluaran untuk tugas tersebut.

Properti

embedding list

Vektor embedding adalah array bilangan titik mengambang.

index integer

Indeks teks input dalam array input yang sesuai dengan hasil pada struktur ini.

object string

Jenis objek yang dikembalikan oleh panggilan. Nilai default adalah embedding.

model string

Model yang dipanggil.

object string

Jenis data yang dikembalikan oleh panggilan. Nilai default adalah list.

usage object

Properti

prompt_tokens integer

Jumlah token dalam teks input.

total_tokens integer

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

id string

ID permintaan unik yang dapat digunakan untuk melacak dan memecahkan masalah permintaan.

DashScope

base_url untuk dikonfigurasi pada panggilan SDK:

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

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

Titik akhir untuk 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

Isi 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 menangis pilu. 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 menangis pilu.", "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 menangis pilu.", "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 menangis pilu. 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 menangis pilu.', '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 menangis pilu.",
                "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 menangis pilu.",
          "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 embedding: " + 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
Ganti '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 input dapat berupa string, daftar string, atau file. Jika input berupa file, setiap baris dianggap sebagai teks terpisah yang akan di-embedding.

Batas teks:

  • Jumlah karakter:

    • String dapat berisi hingga 8.192 token.

    • Daftar string dapat berisi hingga 10 item, dengan setiap string berisi maksimal 8.192 token.

    • File dapat berisi hingga 10 baris, dengan masing-masing baris mendukung maksimal 8.192 token.

text_type string Opsi

Vektor teks dapat digunakan untuk tugas lanjutan seperti pengambilan, pengelompokan, dan kategorisasi. Untuk tugas asimetris seperti pengambilan, kami merekomendasikan agar Anda membedakan antara kueri dan dokumen untuk mencapai hasil yang lebih baik. Untuk tugas simetris seperti pengelompokan dan kategorisasi, Anda dapat menggunakan nilai default document.

dimension integer Opsi

Dimensi vektor. Nilainya harus salah satu dari berikut: 2048 (hanya untuk text-embedding-v4), 1536 (hanya untuk text-embedding-v4), 1024, 768, 512, 256, 128, atau 64. Nilai default adalah 1024.

output_type string Opsi

Menentukan apakah akan menghasilkan 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 hanya mengembalikan vektor padat.

instruct string Opsi

Deskripsi tugas kustom. Parameter ini hanya berlaku ketika Anda menggunakan model text-embedding-v4 dan mengatur text_type ke query. Kami merekomendasikan agar Anda menulis deskripsi dalam bahasa Inggris, karena hal ini dapat meningkatkan performa sekitar 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. Nilai 200 menunjukkan permintaan berhasil.

request_id string

ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah permintaan.

code string

Jika permintaan gagal, parameter ini menunjukkan kode kesalahan. Jika permintaan berhasil, parameter ini kosong.

message string

Jika permintaan gagal, parameter ini menunjukkan pesan kesalahan detail. Jika permintaan berhasil, parameter ini kosong.

output object

Data keluaran untuk tugas tersebut.

Properti

embeddings array

Array struktur. Setiap struktur berisi keluaran untuk teks input yang sesuai.

Properti

sparse_embedding array

Representasi vektor jarang untuk string yang sesuai. Parameter sparse_embedding hanya berlaku untuk text-embedding-v3 dan text-embedding-v4.

Properti

index integer

Indeks kata atau karakter dalam kosakata.

value float

Bobot atau skor kepentingan token. Nilai yang lebih tinggi menunjukkan bahwa token lebih penting atau relevan dalam konteks teks saat ini.

token string

Unit teks aktual atau kata dari kosakata.

embedding array

Representasi dense embedding untuk string yang sesuai.

text_index integer

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

usage object

Properti

total_tokens integer

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

Kode kesalahan

Jika pemanggilan model gagal dan pesan kesalahan dikembalikan, lihat Pesan kesalahan untuk informasi tentang cara menyelesaikan masalah tersebut.