全部产品
Search
文档中心

Alibaba Cloud Model Studio:Detail API sinkron

更新时间:Dec 23, 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 penyematan

Ukuran batch

Maks token per batch (Catatan)

Harga (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 selama 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

Masa berlaku: 90 hari setelah Anda mengaktifkan Model Studio

Beijing

Model

Dimensi penyematan

Ukuran batch

Maks token per batch

Harga (Juta token input)

Bahasa yang didukung

text-embedding-v4

Bagian dari seri Qwen3-Embedding

2.048, 1.536, 1.024 (bawaan), 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

Untuk batas laju model, lihat Batas laju.

Persiapan

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

Anda harus mendapatkan Kunci API dan menyetel Kunci API sebagai Variabel lingkungan. Jika Anda menggunakan SDK untuk melakukan panggilan, Anda juga harus menginstal SDK DashScope.

Kompatibel dengan OpenAI

base_url untuk SDK:

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

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

titik akhir untuk 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 bisa mendapatkannya 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 bagus 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 bisa mendapatkannya 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", "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih. Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung gelombang demi gelombang.");
        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": "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih. Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung gelombang demi gelombang.",  
    "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 bisa mendapatkannya 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=['Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.', 'Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.', 'Hutan tak berbatas menggugurkan daunnya hujan demi hujan.', 'Sungai tak berujung bergulung gelombang demi gelombang.'],
    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 bisa mendapatkannya 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("Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.", "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung gelombang demi gelombang.");
        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": [
        "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.",
        "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.", 
        "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", 
        "Sungai tak berujung bergulung gelombang demi gelombang."
        ],
    "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 bisa mendapatkannya 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 bisa mendapatkannya 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 diproses. Nilainya dapat berupa string, array string, atau file:

Jika input berupa string, panjang maksimumnya adalah 8.192 token. Jika input berupa daftar string atau file, maksimal berisi 10 item (baris), dengan masing-masing item (baris) maksimal 8.192 token.

dimensions integer Opsi

Dimensi penyematan. 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 penyematan 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 penyematan, yaitu array bilangan titik mengambang.

index integer

Indeks teks input dalam array input yang sesuai dengan hasil dalam 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

Total jumlah token dalam permintaan. Perhitungan jumlah token didasarkan pada cara tokenizer model mengurai string input.

id string

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

DashScope

base_url untuk SDK:

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

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

Titik akhir untuk 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='Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih. Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung gelombang demi gelombang.',
    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("Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.", "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung gelombang demi gelombang.")).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("Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.", "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.", "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", "Sungai tak berujung bergulung gelombang demi gelombang.")).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": [
        "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih. Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang. Hutan tak berbatas menggugurkan daunnya hujan demi hujan. Sungai tak berujung bergulung gelombang demi gelombang."
        ]
    },
    "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 = ['Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.', 'Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.', 'Hutan tak berbatas menggugurkan daunnya hujan demi hujan.', 'Sungai tak berujung bergulung gelombang demi gelombang.']

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(
                "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.",
                "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.",
                "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.",
                "Sungai tak berujung bergulung gelombang demi gelombang."
        );

        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": [
          "Angin bertiup kencang, langit tinggi, dan kera-kera menangis sedih.",
          "Pulau kecil jernih, pasir putih, dan burung-burung terbang pulang.", 
          "Hutan tak berbatas menggugurkan daunnya hujan demi hujan.", 
          "Sungai tak berujung bergulung gelombang demi gelombang."
        ]
    },
    "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
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 yang akan diproses. Nilainya dapat berupa string, array string, atau file:

Input string dapat berisi maksimal 8.192 token. Daftar string atau file dapat berisi maksimal 10 item (baris), dan setiap item (baris) dapat berisi 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 penyematan. 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 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 hanya mengembalikan vektor padat.

instruct string Opsi

Deskripsi tugas kustom. Parameter ini hanya berlaku saat Anda menggunakan model text-embedding-v4 dan menyetel 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 atau kata aktual dari kosakata.

embedding array

Representasi vektor padat untuk string yang sesuai (penyematan padat).

text_index integer

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

usage object

Properti

total_tokens integer

Total jumlah token dalam permintaan. Perhitungan jumlah token didasarkan pada cara tokenizer model mengurai string input.

Kode kesalahan

Jika pemanggilan model gagal dan pesan kesalahan dikembalikan, lihat Pesan kesalahan.