Isi permintaan | Masukan teksPythonimport os
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ini adalah URL dasar untuk wilayah Singapura.
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Who are you?'}
]
response = dashscope.Generation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-plus", # Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages=messages,
result_format='message'
)
print(response)
Java// Diperlukan SDK DashScope versi 2.12.0 atau yang lebih baru.
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
// Ini adalah URL dasar untuk wilayah Singapura.
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Who are you?")
.build();
GenerationParam param = GenerationParam.builder()
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan .apiKey("sk-xxx") sebagai gantinya.
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
.model("qwen-plus")
.messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
// Catat pengecualian tersebut.
System.err.println("Generation service error: " + e.getMessage());
}
System.exit(0);
}
}
PHP (HTTP)<?php
$url = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
$apiKey = getenv('DASHSCOPE_API_KEY');
$data = [
// Ganti qwen-plus dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/getting-started/models.
"model" => "qwen-plus",
"input" => [
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "Who are you?"
]
]
],
"parameters" => [
"result_format" => "message"
]
];
$jsonData = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $apiKey",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 200) {
echo "Response: " . $response;
} else {
echo "Error: " . $httpCode . " - " . $response;
}
curl_close($ch);
?>
Node.js (HTTP)DashScope tidak menyediakan SDK untuk Node.js. Untuk menggunakan SDK Node.js OpenAI, lihat bagian OpenAI. import fetch from 'node-fetch';
// Kunci API berbeda di wilayah Singapura, AS (Virginia), dan Beijing. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
$apiKey = getenv('DASHSCOPE_API_KEY');
const apiKey = process.env.DASHSCOPE_API_KEY;
const data = {
model: "qwen-plus", // Di sini, qwen-plus digunakan sebagai contoh. Anda dapat mengganti nama model sesuai kebutuhan. Daftar Model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
input: {
messages: [
{
role: "system",
content: "You are a helpful assistant."
},
{
role: "user",
content: "Who are you?"
}
]
},
parameters: {
result_format: "message"
}
};
fetch('https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
console.log(JSON.stringify(data));
})
.catch(error => {
console.error('Error:', error);
});
C# (HTTP)using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan string? apiKey = "sk-xxx" sebagai gantinya.
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
$apiKey = getenv('DASHSCOPE_API_KEY');
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("The API Key is not set. Set the DASHSCOPE_API_KEY environment variable.");
return;
}
string url = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// Ganti qwen-plus dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/getting-started/models.
string jsonContent = @"{
""model"": ""qwen-plus"",
""input"": {
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""Who are you?""
}
]
},
""parameters"": {
""result_format"": ""message""
}
}";
// Kirim permintaan dan dapatkan respons.
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// Keluarkan hasilnya.
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// Setel header permintaan.
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Kirim permintaan dan dapatkan respons.
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// Proses respons.
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"Request failed: {response.StatusCode}";
}
}
}
}
Go (HTTP)DashScope tidak menyediakan SDK untuk Go. Untuk menggunakan SDK Go OpenAI, lihat bagian OpenAI-Go. package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
type Message struct {
Role string `json:"role"`
Content string `json:"content"`
}
type Input struct {
Messages []Message `json:"messages"`
}
type Parameters struct {
ResultFormat string `json:"result_format"`
}
type RequestBody struct {
Model string `json:"model"`
Input Input `json:"input"`
Parameters Parameters `json:"parameters"`
}
func main() {
// Buat klien HTTP.
client := &http.Client{}
// Bangun badan permintaan.
requestBody := RequestBody{
// Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
Model: "qwen-plus",
Input: Input{
Messages: []Message{
{
Role: "system",
Content: "You are a helpful assistant.",
},
{
Role: "user",
Content: "Who are you?",
},
},
},
Parameters: Parameters{
ResultFormat: "message",
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
log.Fatal(err)
}
// Buat permintaan POST.
req, err := http.NewRequest("POST", "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
// Setel header permintaan.
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan apiKey := "sk-xxx" sebagai gantinya.
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// Kirim permintaan.
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Baca badan respons.
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
// Cetak respons.
fmt.Printf("%s\n", bodyText)
}
curlKunci API bersifat spesifik wilayah. Buat kunci API curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
},
"parameters": {
"result_format": "message"
}
}'
Keluaran streamingLihat Keluaran streaming. Model generasi teksPythonimport os
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{'role':'system','content':'you are a helpful assistant'},
{'role': 'user','content': 'Who are you?'}
]
responses = dashscope.Generation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
model="qwen-plus",
messages=messages,
result_format='message',
stream=True,
incremental_output=True
)
for response in responses:
print(response)
Javaimport java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static void handleGenerationResult(GenerationResult message) {
System.out.println(JsonUtils.toJson(message));
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan .apiKey("sk-xxx") sebagai gantinya.
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
.model("qwen-plus")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.incrementalOutput(true)
.build();
}
public static void main(String[] args) {
try {
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
streamCallWithMessage(gen, userMsg);
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}
curlcurl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
},
"parameters": {
"result_format": "message",
"incremental_output":true
}
}'
Model multimodalPythonimport os
from dashscope import MultiModalConversation
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"text": "What does the image show?"}
]
}
]
responses = MultiModalConversation.call(
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3-vl-plus', # Ganti dengan model multimodal lain sesuai kebutuhan, dan perbarui messages yang sesuai.
messages=messages,
stream=True,
incremental_output=True)
full_content = ""
print("Streaming output:")
for response in responses:
if response["output"]["choices"][0]["message"].content:
print(response.output.choices[0].message.content[0]['text'])
full_content += response.output.choices[0].message.content[0]['text']
print(f"Full content: {full_content}")
Javaimport java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void streamCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// Harus membuat peta yang dapat diubah.
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
Collections.singletonMap("text", "What does the image show?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan .apiKey("sk-xxx") sebagai gantinya.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus") // Ganti dengan model multimodal lain sesuai kebutuhan, dan perbarui messages yang sesuai.
.messages(Arrays.asList(userMessage))
.incrementalOutput(true)
.build();
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(item -> {
try {
var content = item.getOutput().getChoices().get(0).getMessage().getContent();
// Periksa apakah konten ada dan tidak kosong.
if (content != null && !content.isEmpty()) {
System.out.println(content.get(0).get("text"));
}
} catch (Exception e){
System.exit(0);
}
});
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curlcurl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"text": "What does the image show?"}
]
}
]
},
"parameters": {
"incremental_output": true
}
}'
Masukan gambarUntuk metode lain menggunakan model bahasa besar untuk menganalisis gambar, lihat Pemahaman gambar dan video. Pythonimport os
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
{"text": "What are these?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Ganti qwen-vl-max dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/getting-started/models.
model='qwen-vl-max',
messages=messages
)
print(response)
Java// Hak cipta (c) Alibaba, Inc. dan afiliasinya.
import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"),
Collections.singletonMap("text", "What are these?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan .apiKey("sk-xxx") sebagai gantinya.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Ganti qwen-vl-plus dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/getting-started/models.
.model("qwen-vl-plus")
.message(userMessage)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curlKunci API bersifat spesifik wilayah. Buat kunci API curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
{"text": "What are these?"}
]
}
]
}
}'
Masukan videoContoh berikut menunjukkan cara meneruskan frame video. Untuk metode lain, seperti meneruskan file video, lihat Pemahaman visual. Pythonimport os
# Diperlukan SDK DashScope versi 1.20.10 atau yang lebih baru.
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{"role": "user",
"content": [
# Untuk model seri Qwen2.5-VL, jika Anda meneruskan daftar gambar, setel fps untuk menunjukkan bahwa gambar diekstraksi dari video asli dengan interval 1/fps detik.
{"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"text": "Describe the specific process in this video"}]}]
response = dashscope.MultiModalConversation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen2.5-vl-72b-instruct', # Ganti qwen2.5-vl-72b-instruct dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/models.
messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])
Java// Gunakan SDK DashScope versi 2.18.3 atau yang lebih baru.
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen2.5-vl-72b-instruct"; // Ganti qwen2.5-vl-72b-instruct dengan model lain sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/zh/model-studio/models.
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage systemMessage = MultiModalMessage.builder()
.role(Role.SYSTEM.getValue())
.content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
.build();
// Untuk model seri Qwen2.5-VL, jika Anda meneruskan daftar gambar, setel fps untuk menunjukkan bahwa gambar diekstraksi dari video asli dengan interval 1/fps detik.
Map<String, Object> params = Map.of(
"video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"),
"fps",2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "Describe the specific process in this video")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan .apiKey("sk-xxx") sebagai gantinya.
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(systemMessage, userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
curlKunci API bersifat spesifik wilayah. Buat kunci API curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen2.5-vl-72b-instruct",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
],
"fps":2
},
{
"text": "Describe the specific process in this video"
}
]
}
]
}
}'
Pemanggilan alatUntuk alur kerja lengkap pemanggilan fungsi, lihat Ikhtisar model generasi teks. Pythonimport os
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
tools = [
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "Useful when you want to know the current time.",
"parameters": {}
}
},
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Useful when you want to query the weather for a specified city.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city or county, for example, Beijing, Hangzhou, or Yuhang District."
}
}
},
"required": [
"location"
]
}
}
]
messages = [{"role": "user", "content": "How is the weather in Hangzhou?"}]
response = dashscope.Generation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
model='qwen-plus',
messages=messages,
tools=tools,
result_format='message'
)
print(response)
Javaimport java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.aigc.conversation.ConversationParam.ResultFormat;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.Option;
import com.github.victools.jsonschema.generator.OptionPreset;
import com.github.victools.jsonschema.generator.SchemaGenerator;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfig;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder;
import com.github.victools.jsonschema.generator.SchemaVersion;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public class GetWeatherTool {
private String location;
public GetWeatherTool(String location) {
this.location = location;
}
public String call() {
return location+" has clear skies today.";
}
}
public class GetTimeTool {
public GetTimeTool() {
}
public String call() {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String currentTime = "Current time: " + now.format(formatter) + ".";
return currentTime;
}
}
public static void SelectTool()
throws NoApiKeyException, ApiException, InputRequiredException {
SchemaGeneratorConfigBuilder configBuilder =
new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON);
SchemaGeneratorConfig config = configBuilder.with(Option.EXTRA_OPEN_API_FORMAT_VALUES)
.without(Option.FLATTENED_ENUMS_FROM_TOSTRING).build();
SchemaGenerator generator = new SchemaGenerator(config);
ObjectNode jsonSchema_weather = generator.generateSchema(GetWeatherTool.class);
ObjectNode jsonSchema_time = generator.generateSchema(GetTimeTool.class);
FunctionDefinition fdWeather = FunctionDefinition.builder().name("get_current_weather").description("Get the weather for a specified location")
.parameters(JsonUtils.parseString(jsonSchema_weather.toString()).getAsJsonObject()).build();
FunctionDefinition fdTime = FunctionDefinition.builder().name("get_current_time").description("Get the current time")
.parameters(JsonUtils.parseString(jsonSchema_time.toString()).getAsJsonObject()).build();
Message systemMsg = Message.builder().role(Role.SYSTEM.getValue())
.content("You are a helpful assistant. When asked a question, use tools wherever possible.")
.build();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Hangzhou weather").build();
List<Message> messages = new ArrayList<>();
messages.addAll(Arrays.asList(systemMsg, userMsg));
GenerationParam param = GenerationParam.builder()
// Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
.model("qwen-plus")
.messages(messages)
.resultFormat(ResultFormat.MESSAGE)
.tools(Arrays.asList(
ToolFunction.builder().function(fdWeather).build(),
ToolFunction.builder().function(fdTime).build()))
.build();
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
// Ini adalah URL dasar untuk wilayah Singapura.
GenerationResult result = gen.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
SelectTool();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(String.format("Exception %s", e.getMessage()));
}
System.exit(0);
}
}
curlKunci API bersifat spesifik wilayah. Buat kunci API URL dalam contoh ini untuk wilayah Singapura. curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-plus",
"input": {
"messages": [{
"role": "user",
"content": "How is the weather in Hangzhou?"
}]
},
"parameters": {
"result_format": "message",
"tools": [{
"type": "function",
"function": {
"name": "get_current_time",
"description": "Useful when you want to know the current time.",
"parameters": {}
}
},{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Useful when you want to query the weather for a specified city.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city or county, for example, Beijing, Hangzhou, or Yuhang District."
}
}
},
"required": ["location"]
}
}]
}
}'
Pemanggilan asinkron# Gunakan SDK Python DashScope versi 1.19.0 atau yang lebih baru.
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.generation import AioGeneration
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ini adalah URL dasar untuk wilayah Singapura.
async def main():
response = await AioGeneration.call(
# Jika Anda belum menyetel variabel lingkungan DASHSCOPE_API_KEY,
# ganti baris di bawah ini dengan api_key="sk-xxx".
# Kunci API berbeda berdasarkan wilayah. Dapatkan kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key.
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Ganti qwen-plus sesuai kebutuhan — daftar model: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
model="qwen-plus",
messages=[{"role": "user", "content": "Who are you?"}],
result_format="message",
)
print(response)
if platform.system() == "Windows":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())
Pemahaman dokumenPythonimport os
import dashscope
# Hanya wilayah Tiongkok (Beijing) yang mendukung model qwen-long-latest.
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': 'you are a helpful assisstant'},
# Ganti {FILE_ID} dengan ID file aktual yang digunakan dalam percakapan Anda.
{'role':'system','content':f'fileid://{FILE_ID}'},
{'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-long-latest",
messages=messages,
result_format='message'
)
print(response)
Javaimport os
import dashscope
# Hanya wilayah Tiongkok (Beijing) yang mendukung model qwen-long-latest.
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
{'role': 'system', 'content': 'you are a helpful assisstant'},
# Ganti {FILE_ID} dengan ID file aktual yang digunakan dalam percakapan Anda.
{'role':'system','content':f'fileid://{FILE_ID}'},
{'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
# Tidak ada DASHSCOPE_API_KEY yang disetel? Gunakan api_key="sk-xxx" sebagai gantinya.
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-long-latest",
messages=messages,
result_format='message'
)
print(response)
curlModel pemahaman dokumen hanya didukung di wilayah Tiongkok (Beijing). Ganti {FILE_ID} dengan ID file aktual yang digunakan dalam percakapan Anda. curl --location "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-long-latest",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "system",
"content": "fileid://{FILE_ID}"
},
{
"role": "user",
"content": "What is this article about?"
}
]
},
"parameters": {
"result_format": "message"
}
}'
|
model string (Required) Nama model. Model yang didukung meliputi model bahasa besar Qwen (komersial dan open source), Qwen-VL, Qwen-Coder, dan Qwen-Math. Untuk nama model spesifik dan informasi penagihan, lihat Generasi teks-Qwen. |
messages array (Required) Konteks yang diteruskan ke Large Language Model (LLM), diatur dalam urutan percakapan. Saat melakukan panggilan HTTP, letakkan messages dalam objek input. Jenis pesan Pesan Sistem object (Opsional) Pesan sistem yang menetapkan peran, nada, tujuan tugas, atau batasan untuk LLM. Letakkan di awal array messages. Jangan menyetel pesan sistem untuk model QwQ. Pesan sistem tidak memengaruhi model QVQ. Properti content string (Required) Konten pesan. role string (Required) Peran untuk pesan sistem. Nilainya tetap sebagai system. Pesan Pengguna object (Required) Pesan pengguna yang meneruskan pertanyaan, instruksi, atau konteks ke model. Properti content string or array (Required) Konten pesan. Jika masukannya hanya teks, tipenya adalah string. Jika masukannya mencakup data multimodal seperti gambar, atau jika caching eksplisit diaktifkan, tipenya adalah array. Properti text string (Required) Teks masukan. image string (Opsional) Menentukan file gambar untuk pemahaman gambar. Anda dapat memberikan gambar dalam salah satu dari tiga cara berikut: URL publik: Tautan gambar yang dapat diakses publik. Encoding Base64 gambar, dalam format data:image/<format>;base64,<data> File lokal: Jalur mutlak file lokal.
Model yang berlaku: Qwen-VL, QVQ Nilai contoh: {"image":"https://xxxx.jpeg"} video array or string (Opsional) Video yang diberikan ke model Qwen-VL atau model QVQ. Jika Anda memberikan daftar gambar, tipenya adalah array. Jika Anda memberikan file video, tipenya adalah string.
Untuk memberikan file lokal, lihat File lokal (Qwen-VL) atau File lokal (QVQ). Nilai contoh: Daftar gambar: {"video":["https://xx1.jpg",...,"https://xxn.jpg"]} File video: {"video":"https://xxx.mp4"}
fps float (Opsional) Jumlah frame yang diekstraksi per detik. Nilainya harus dalam rentang [0.1, 10]. Nilai default adalah 2.0. Deskripsi Parameter fps memiliki dua fungsi: Saat Anda memberikan file video, parameter ini mengontrol frekuensi ekstraksi frame. Satu frame diekstraksi setiap fps1 detik. Ini berlaku untuk model Qwen-VL dan model QVQ. Parameter ini menginformasikan model tentang interval waktu antara frame yang berdekatan untuk membantu model memahami dinamika temporal video dengan lebih baik. Ini berlaku untuk file video maupun daftar gambar. Fitur ini mendukung file video dan daftar gambar serta cocok untuk skenario seperti pelokalan waktu peristiwa atau ringkasan konten berdasarkan segmen. Didukung oleh Qwen3.5, Qwen3-VL, Qwen2.5-VL, dan model QVQ.
Nilai fps yang lebih besar cocok untuk skenario gerakan cepat, seperti acara olahraga atau film aksi. Nilai fps yang lebih kecil cocok untuk video panjang atau konten dengan adegan statis. Nilai contoh Berikan daftar gambar: {"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2} Berikan file video: {"video": "https://xx1.mp4","fps":2}
max_frames integer (Opsional) Jumlah maksimum frame yang diekstraksi dari video. Jika jumlah frame yang dihitung berdasarkan fps melebihi max_frames, sistem secara otomatis menyesuaikan untuk mengambil sampel frame secara merata dalam batas max_frames. Ini memastikan jumlah total frame tidak melebihi batas. Rentang nilai seri qwen3.5, seri qwen3-vl-plus, seri qwen3-vl-flash, qwen3-vl-235b-a22b-thinking, dan qwen3-vl-235b-a22b-instruct: Nilai maksimum dan default adalah 2000. qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-0813, qwen-vl-plus, qwen-vl-plus-latest, qwen-vl-plus-0815: Nilai maksimum dan default adalah 512.
Nilai contoh {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_frame": 2000}
Saat Anda menggunakan API yang kompatibel OpenAI, Anda tidak dapat menyesuaikan parameter max_frames. API secara otomatis menggunakan nilai default untuk setiap model. min_pixels integer (Opsional) Menetapkan ambang batas piksel minimum untuk gambar masukan atau frame video. Jika jumlah piksel dari gambar masukan atau frame video kurang dari min_pixels, gambar tersebut diperbesar hingga jumlah total pikselnya lebih besar dari min_pixels. Nilai contoh Gambar masukan: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536} File video masukan: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"min_pixels": 65536} Daftar gambar masukan: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"min_pixels": 65536}
max_pixels integer (Opsional) Menetapkan ambang batas piksel maksimum untuk gambar masukan atau frame video. Jika jumlah piksel dari gambar masukan atau video berada dalam rentang [min_pixels, max_pixels], model mengenali gambar aslinya. Jika jumlah piksel dari gambar masukan lebih besar dari max_pixels, gambar tersebut diperkecil hingga jumlah total pikselnya di bawah max_pixels. Rentang nilai Gambar masukan: Nilai max_pixels bergantung pada apakah parameter <a baseurl="t3230323_v1_0_0.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="t2614691.xdita#0edad44583knr" id="758d486a79gkv">vl_high_resolution_images</a> diaktifkan. File video masukan atau daftar gambar: seri qwen3.5, seri qwen3-vl-plus, seri qwen3-vl-flash, qwen3-vl-235b-a22b-thinking, dan qwen3-vl-235b-a22b-instruct: Nilai default adalah 655360, dan nilai maksimum adalah 2048000.
Model open source Qwen3-VL lainnya, qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-0813, qwen-vl-plus, qwen-vl-plus-latest, qwen-vl-plus-0815: Nilai default adalah 655360, dan nilai maksimum adalah 786432. Model qwen-vl-plus lainnya, model qwen-vl-max lainnya, seri open source Qwen2.5-VL, dan model seri QVQ: Nilai default adalah 501760, dan nilai maksimum adalah 602112.
Nilai contoh Gambar masukan: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608} File video masukan: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_pixels": 655360} Daftar gambar masukan: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"max_pixels": 655360}
total_pixels integer (Opsional) Membatasi jumlah total piksel dari semua frame yang diekstraksi dari video (jumlah piksel per frame × total frame). Jika jumlah total piksel video melebihi batas ini, sistem memperkecil frame video tetapi memastikan bahwa nilai piksel satu frame tetap dalam rentang [min_pixels, max_pixels]. Ini berlaku untuk model Qwen-VL dan QVQ. Untuk video panjang dengan banyak frame yang diekstraksi, Anda dapat mengurangi nilai ini untuk mengurangi konsumsi token dan waktu pemrosesan, tetapi hal ini dapat menyebabkan hilangnya detail gambar. Rentang nilai seri qwen3.5, seri qwen3-vl-plus, seri qwen3-vl-flash, qwen3-vl-235b-a22b-thinking, dan qwen3-vl-235b-a22b-instruct: Nilai default dan minimum adalah 134217728. Ini sesuai dengan 131072 token gambar (1 token gambar per 32×32 piksel). Model open source Qwen3-VL lainnya, qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-0813, qwen-vl-plus, qwen-vl-plus-latest, qwen-vl-plus-0815: Nilai default dan minimum adalah 67108864. Ini sesuai dengan 65536 token gambar (1 token gambar per 32×32 piksel). Model qwen-vl-plus lainnya, model qwen-vl-max lainnya, seri open source Qwen2.5-VL, dan model seri QVQ: Nilai default dan minimum adalah 51380224. Ini sesuai dengan 65536 token gambar (1 token gambar per 28×28 piksel).
Nilai contoh File video masukan: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"total_pixels": 134217728} Daftar gambar masukan: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"total_pixels": 134217728}
cache_control object (Opsional) Mengaktifkan caching eksplisit. Ini hanya didukung oleh model yang mendukung caching eksplisit. Properti type string (Required) Nilainya tetap sebagai ephemeral. role string (Required) Peran untuk pesan pengguna. Nilainya tetap sebagai user. Pesan Asisten object (Opsional) Respons model terhadap pesan pengguna. Properti content string (Opsional) Konten pesan. Ini tidak diperlukan jika parameter tool_calls ditentukan dalam pesan asisten. role string (Required) Nilainya tetap sebagai assistant. partial boolean (Opsional) Menentukan apakah akan mengaktifkan kelanjutan awalan. Untuk informasi tentang referensi dan model yang didukung, lihat Kelanjutan Awalan. tool_calls array (Opsional) Informasi alat dan parameter masukan yang dikembalikan setelah Anda memanggil Pemanggilan Fungsi. Ini berisi satu atau beberapa objek. Ini diperoleh dari bidang tool_calls dari respons model sebelumnya. Properti id string ID respons alat. type string Jenis alat. Saat ini, hanya function yang didukung. function object Informasi alat dan parameter masukan. Properti arguments string Informasi parameter masukan, dalam string berformat JSON. index integer Indeks informasi alat saat ini dalam array tool_calls. Pesan Alat object (Opsional) Informasi keluaran alat. Properti content string (Required) Konten keluaran fungsi alat. Harus dalam format string. role string (Required) Nilainya tetap sebagai tool. tool_call_id string (Opsional) ID yang dikembalikan setelah Anda memanggil Pemanggilan Fungsi. Anda dapat memperolehnya dari response.output.choices[0].message.tool_calls[$index]["id"]. Ini digunakan untuk menandai alat yang sesuai dengan Pesan Alat. |
|
temperature float (Opsional)
Suhu pengambilan sampel. Ini mengontrol keragaman teks yang dihasilkan model.
Suhu yang lebih tinggi menghasilkan teks yang lebih beragam. Suhu yang lebih rendah menghasilkan teks yang lebih deterministik.
Rentang nilai: [0, 2)
Untuk panggilan HTTP, letakkan temperature dalam objek parameters.
Jangan ubah nilai default suhu untuk model QVQ.
|
top_p float (Opsional) Ambang batas probabilitas untuk pengambilan sampel inti, yang mengontrol keragaman teks yang dihasilkan model. Nilai top_p yang lebih tinggi menghasilkan teks yang lebih beragam. Nilai top_p yang lebih rendah menghasilkan teks yang lebih deterministik. Rentang nilai: (0, 1.0]. Nilai default top_p Qwen3.5 (mode non-thinking), Qwen3 (mode non-thinking), seri Qwen3-Instruct, seri Qwen3-Coder, seri qwen-max, seri qwen-plus (mode non-thinking), seri qwen-flash (mode non-thinking), seri qwen-turbo (mode non-thinking), seri open source qwen, qwen-vl-max-2025-08-13, Qwen3-VL (mode non-thinking): 0.8 : 0.01 seri qwen-vl-plus, qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-2025-04-08, qwen2.5-vl-3b-instruct, qwen2.5-vl-7b-instruct, qwen2.5-vl-32b-instruct, qwen2.5-vl-72b-instruct: 0.001 Seri QVQ, qwen-vl-plus-2025-07-10, qwen-vl-plus-2025-08-15: 0.5 qwen3-max-preview (mode thinking), seri Qwen3-Omni-Flash: 1.0; Qwen3.5 (mode thinking), Qwen3 (mode thinking), Qwen3-VL (mode thinking), Qwen3-Thinking, seri QwQ, Qwen3-Omni-Captioner: 0.95 Dalam SDK Java, ini adalah topP. Saat menggunakan HTTP, letakkan top_p di dalam objek parameters. Jangan ubah nilai default top_p untuk model QVQ. |
top_k integer (Opsional) Ukuran set kandidat untuk pengambilan sampel selama generasi. Misalnya, jika nilainya 50, hanya 50 token dengan skor tertinggi dalam satu generasi yang membentuk set kandidat pengambilan sampel acak. Nilai yang lebih besar meningkatkan keacakan. Nilai yang lebih kecil meningkatkan determinisme. Setel top_k ke None atau ke nilai lebih besar dari 100 untuk menonaktifkan strategi top_k. Dalam kasus ini, hanya strategi top_p yang berlaku. Nilainya harus lebih besar dari atau sama dengan 0. Nilai default top_k Seri QVQ, qwen-vl-plus-2025-07-10, qwen-vl-plus-2025-08-15: 10 Seri QwQ: 40 seri qwen-vl-plus lainnya, model sebelum qwen-vl-max-2025-08-13, qwen2.5-omni-7b: 1 Seri Qwen3-Omni-Flash: 50 Semua model lainnya: 20 Dalam SDK Java, gunakan topK. Saat memanggil melalui HTTP, letakkan top_k di dalam objek parameters. Jangan ubah nilai default top_k untuk model QVQ. |
enable_thinking boolean (Opsional) Saat menggunakan model hybrid thinking, ini mengaktifkan mode thinking. Berlaku untuk model Qwen3.5, Qwen3, dan Qwen3-VL. Untuk informasi lebih lanjut, lihat Pemikiran mendalam. Nilai yang mungkin: true: Diaktifkan
Saat diaktifkan, konten berpikir dikembalikan dalam bidang reasoning_content. false: Dinonaktifkan
Untuk nilai default model yang berbeda, lihat Model yang didukung. Dalam SDK Java, ini adalah enableThinking. Saat menggunakan HTTP, letakkan enable_thinking di dalam objek parameters. |
thinking_budget integer (Opsional) Panjang maksimum proses berpikir. Parameter ini berlaku untuk versi komersial dan open source dari model Qwen3.5, Qwen3-VL, dan Qwen3. Untuk informasi lebih lanjut, lihat Batasi panjang berpikir. Nilai default adalah panjang maksimum rantai-pikiran model. Untuk informasi lebih lanjut, lihat Daftar model. Dalam SDK Java, parameter ini adalah thinkingBudget. Saat menggunakan HTTP, letakkan thinking_budget di dalam objek parameters. Nilai default adalah panjang maksimum rantai-pikiran model. |
|
enable_code_interpreter boolean (Opsional) Default: false
Mengaktifkan fitur interpreter kode. Hanya didukung untuk qwen3.5, dan untuk qwen3-max, qwen3-max-2026-01-23, dan qwen3-max-preview dalam mode thinking. Untuk informasi lebih lanjut, lihat Interpreter kode.
Nilai yang mungkin:
Tidak didukung oleh SDK Java. Saat menggunakan HTTP, letakkan enable_code_interpreter di dalam objek parameters.
|
repetition_penalty float (Opsional) Hukuman pengulangan untuk urutan berturut-turut selama generasi model. Meningkatkan repetition_penalty dapat mengurangi pengulangan model. Nilai 1.0 berarti tidak ada hukuman. Tidak ada rentang nilai ketat, selama nilainya lebih besar dari 0. Dalam SDK Java, ini adalah repetitionPenalty. Saat menggunakan HTTP, letakkan repetition_penalty di dalam objek parameters. Saat menggunakan model qwen-vl-plus_2025-01-25 untuk ekstraksi teks, setel repetition_penalty ke 1.0. Jangan ubah nilai default repetition_penalty untuk model QVQ. |
|
presence_penalty float (Opsional)
Mengontrol pengulangan dalam teks yang dihasilkan model. Nilai yang valid: -2.0 hingga 2.0. Nilai positif mengurangi pengulangan; nilai negatif meningkatkannya. Untuk skenario yang membutuhkan keragaman dan kreativitas, seperti penulisan kreatif atau brainstorming, tingkatkan nilai ini. Untuk skenario yang membutuhkan konsistensi dan akurasi terminologi, seperti dokumen teknis atau teks formal, turunkan nilai ini. Nilai default presence_penalty Qwen3.5 (mode non-thinking), qwen3-max-preview (mode thinking), Qwen3 (mode non-thinking), seri Qwen3-Instruct, qwen3-0.6b/1.7b/4b (mode thinking), seri QVQ, qwen-max, qwen-max-latest, qwen-max-latest seri qwen2.5-vl, seri qwen-vl-max, qwen-vl-plus, Qwen3-VL (non-thinking): 1.5. qwen-vl-plus-latest, qwen-vl-plus-2025-08-15: 1.2. qwen-vl-plus-2025-01-25: 1.0. qwen3-8b/14b/32b/30b-a3b/235b-a22b (mode thinking), qwen-plus/qwen-plus-latest/2025-04-28 (mode thinking), qwen-turbo/qwen-turbo/2025-04-28 (mode thinking): 0.5. Semua model lainnya: 0.0. Cara kerjanya Saat nilai parameter positif, model menghukum token yang sudah muncul dalam teks yang dihasilkan. Hukuman tidak bergantung pada berapa kali token muncul. Hal ini mengurangi kemungkinan token tersebut muncul kembali, yang mengurangi pengulangan dan meningkatkan keragaman leksikal. Contoh Prompt: Terjemahkan kalimat ini ke dalam bahasa Mandarin: "Film ini bagus. Alurnya bagus, aktingnya bagus, musiknya bagus, dan secara keseluruhan, seluruh film ini sangat bagus. Bahkan, film ini benar-benar bagus—alurnya luar biasa, aktingnya luar biasa, dan musiknya luar biasa." Nilai parameter 2.0: Film ini luar biasa. Alurnya fantastis, aktingnya luar biasa, dan musiknya indah. Secara keseluruhan, seluruh film ini benar-benar luar biasa. Bahkan, film ini benar-benar luar biasa. Ceritanya menarik, aktingnya brilian, dan skornya sangat mengharukan. Nilai parameter 0.0: Film ini bagus. Alurnya bagus, aktingnya bagus, dan musiknya juga bagus. Secara keseluruhan, seluruh film ini sangat bagus. Bahkan, film ini benar-benar hebat. Alurnya sangat bagus, aktingnya juga luar biasa, dan musiknya juga luar biasa. Nilai parameter -2.0: Film ini sangat bagus. Alurnya sangat bagus, aktingnya sangat bagus, dan musiknya juga sangat bagus. Secara keseluruhan, seluruh film ini sangat bagus. Bahkan, film ini benar-benar hebat. Alurnya sangat bagus, aktingnya juga sangat bagus, dan musiknya juga sangat bagus. Saat menggunakan model qwen-vl-plus-2025-01-25 untuk ekstraksi teks, setel presence_penalty ke 1.5. Jangan ubah nilai default presence_penalty untuk model QVQ.
Parameter ini tidak didukung oleh SDK Java. Saat menggunakan HTTP, letakkan presence_penalty di dalam objek parameters.
|
|
vl_high_resolution_images boolean (Opsional. Default ke false.) Parameter ini meningkatkan batas piksel maksimum untuk gambar masukan ke nilai piksel yang sesuai dengan 16384 token. Untuk informasi lebih lanjut, lihat Memproses gambar resolusi tinggi. vl_high_resolution_images: true: Menggunakan strategi resolusi tetap dan mengabaikan pengaturan max_pixels. Jika gambar melebihi resolusi ini, Anda dapat memperkecil jumlah total pikselnya agar sesuai dengan batas.
Klik untuk melihat batas piksel untuk setiap model Saat vl_high_resolution_images adalah true, model yang berbeda memiliki batas piksel yang berbeda: seri qwen3.5, seri Qwen3-VL, qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-0813, qwen-vl-plus, qwen-vl-plus-latest, qwen-vl-plus-0815, : 16777216 (setiap Token sesuai dengan 32 × 32 piksel, yaitu 16384 × 32 × 32)
seri QVQ dan model seri Qwen2.5-VL lainnya: 12845056 (setiap Token sesuai dengan 28 × 28 piksel, yaitu 16384 × 28 × 28)
Jika vl_high_resolution_images adalah false, batas piksel aktual ditentukan oleh max_pixels. Jika gambar masukan melebihi max_pixels, gambar tersebut diperkecil agar sesuai dengan max_pixels. Batas piksel default untuk model sesuai dengan nilai default max_pixels.
SDK Java mendukung vlHighResolutionImages (versi minimum yang diperlukan: 2.20.8). Saat melakukan panggilan HTTP, Anda dapat menyertakan vl_high_resolution_images dalam objek parameters.
|
vl_enable_image_hw_output boolean (Opsional) Default: false Anda dapat menggunakan parameter ini untuk menentukan apakah model mengembalikan tinggi dan lebar gambar masukan setelah diskalakan. Jika Anda menyetel parameter ini ke true, dimensi yang diskalakan disertakan dalam keluaran. Jika keluaran streaming diaktifkan, informasi ini muncul di chunk terakhir. Parameter ini didukung oleh model Qwen-VL. Dalam SDK Java, parameter ini bernama vlEnableImageHwOutput dan memerlukan versi 2.20.8 atau yang lebih baru. Untuk panggilan HTTP, sertakan vl_enable_image_hw_output dalam objek parameters. |
max_tokens integer (Opsional) Jumlah maksimum token dalam keluaran model. Generasi berhenti ketika batas ini tercapai, dan bidang finish_reason dalam respons disetel ke length. Nilai default dan maksimum sesuai dengan panjang keluaran maksimum model. Untuk informasi lebih lanjut, lihat Generasi Teks - Qwen. Anda dapat menggunakan parameter ini untuk mengontrol panjang keluaran dalam skenario seperti menghasilkan ringkasan atau kata kunci, atau untuk mengurangi biaya dan mempersingkat waktu respons. Saat max_tokens dipicu, bidang finish_reason dalam respons disetel ke length. max_tokens tidak membatasi panjang rantai-pikiran.
Dalam SDK Java, parameter ini adalah maxTokens. Untuk model Qwen-VL, ini adalah maxLength. Mulai versi 2.18.4, Anda juga dapat menyetelnya sebagai maxTokens. Saat menggunakan HTTP, sertakan max_tokens di dalam objek parameters. |
|
seed integer (Opsional)
Bilangan acak seed. Parameter ini memastikan hasil yang dapat direproduksi. Jika Anda menggunakan nilai seed yang sama dalam panggilan dan menjaga semua parameter lainnya tidak berubah, model mengembalikan hasil yang sama kapan pun memungkinkan. Nilai yang valid: [0, 2<sup>31</sup> − 1].
Saat menggunakan HTTP, letakkan seed di dalam objek parameters.
|
stream boolean (Opsional). Default: false Parameter ini menentukan apakah akan menggunakan keluaran streaming untuk respons. Nilai yang valid adalah: Parameter ini hanya didukung oleh kit pengembangan perangkat lunak (SDK) Python. Untuk mengimplementasikan keluaran streaming menggunakan SDK Java, panggil antarmuka streamCall. Untuk mengimplementasikan keluaran streaming melalui HTTP, setel header X-DashScope-SSE ke enable. Edisi komersial Qwen3 (mode thinking), edisi open source Qwen3, QwQ, dan model QVQ hanya mendukung keluaran streaming. |
Parameter incremental_output adalah nilai boolean. Ini opsional dan default ke false. Untuk model Qwen3-Max, Qwen3-VL, Qwen3 open source, QwQ, dan QVQ, defaultnya adalah true. Anda dapat menggunakan parameter ini untuk mengaktifkan keluaran inkremental dalam mode keluaran streaming. Setel ke true. Nilai parameter: false: Setiap keluaran berisi urutan lengkap yang dihasilkan sejauh ini. Keluaran akhir adalah hasil lengkapnya. I
I like
I like apple
I like apple.
true (disarankan): Keluaran bersifat inkremental. Keluaran berikutnya tidak menyertakan konten dari keluaran sebelumnya. Baca potongan ini secara real time untuk merekonstruksi hasil lengkapnya. I
like
apple
.
Dalam SDK Java, parameter ini disebut incrementalOutput. Untuk panggilan HTTP, Anda dapat menempatkan incremental_output dalam objek parameters. Model QwQ dan model Qwen3 dalam mode thinking hanya mendukung true. Model komersial Qwen3 default ke false, jadi Anda harus menyetel parameter ini secara manual ke true saat menggunakan mode thinking. Model open source Qwen3 tidak mendukung false. |
response_format object (Opsional. Default: {"type": "text"}.) Format respons. Nilai yang valid: {"type": "text"}: Mengembalikan (string)(teks biasa).
{"type": "json_object"}: Mengembalikan string JSON.
{"type": "json_schema","json_schema": {...}}: Mengembalikan string JSON yang sesuai dengan skema yang ditentukan.
Untuk informasi lebih lanjut, lihat Output terstruktur. Untuk model yang didukung, lihat Model yang didukung. Jika Anda menentukan {"type": "json_object"}, Anda harus secara eksplisit menginstruksikan model untuk mengembalikan JSON dalam prompt, seperti "Silakan keluarkan dalam format JSON". Jika tidak, akan terjadi kesalahan. Dalam SDK Java, gunakan responseFormat. Saat memanggil API melalui HTTP, sertakan response_format dalam parameters Properti type string (Required) Format respons. Nilai yang valid adalah: text: Mengembalikan teks biasa.
json_object: Mengembalikan string JSON standar.
json_schema: Mengembalikan string JSON yang sesuai dengan skema yang ditentukan.
json_schema object Bidang ini diperlukan jika type disetel ke json_schema. Ini mendefinisikan konfigurasi untuk keluaran terstruktur. Properti name string (Required) Pengidentifikasi unik untuk skema. Hanya huruf (tidak membedakan huruf besar/kecil), angka, garis bawah, dan tanda hubung yang diizinkan. Panjang maksimum adalah 64 karakter. description string (Opsional) Deskripsi tujuan skema. Ini membantu model memahami konteks semantik keluaran. schema object (Opsional) Objek yang mengikuti standar JSON Schema dan mendefinisikan struktur data keluaran model. Untuk informasi tentang cara membangun JSON Schema, lihat JSON Schema strict boolean (Opsional) Default: false Menentukan apakah model harus benar-benar mematuhi semua batasan skema. true (disarankan) Model menegakkan semua batasan, seperti jenis bidang, bidang yang diperlukan, dan format, untuk memastikan keluaran sepenuhnya sesuai. false (tidak disarankan) Model hanya mengikuti skema secara longgar dan mungkin menghasilkan keluaran yang melanggar spesifikasi, yang dapat menyebabkan validasi gagal.
|
result_format string (Opsional). Default: text (Default untuk model Qwen3-Max, Qwen3-VL, model QwQ, model open source Qwen3 (kecuali qwen3-next-80b-a3b-instruct) adalah message.) Format data yang dikembalikan. Setel ini ke message, yang lebih cocok untuk percakapan multi-putaran. Platform nanti akan menstandarkan nilai default ke message. Dalam SDK Java, parameter ini adalah resultFormat. Untuk panggilan HTTP, Anda dapat meneruskan result_format ke objek parameters. Saat model adalah Qwen-VL/QVQ, menyetel text tidak berpengaruh. Model Qwen3-Max, Qwen3-VL, dan Qwen3 dalam mode thinking hanya dapat disetel ke message. Default untuk model komersial Qwen3 adalah text, jadi Anda harus menyetel parameter ini ke message. Jika Anda memanggil model open source Qwen3 menggunakan SDK Java dan meneruskan text, respons akan dalam format message. |
logprobs boolean (Opsional). Default: false. Menentukan apakah akan mengembalikan probabilitas log dari token keluaran. Nilai yang valid: Model yang didukung: Versi snapshot dari seri qwen-plus, tidak termasuk versi stabil. Versi snapshot dari seri qwen-turbo, tidak termasuk versi stabil. Seri qwen3-vl-plus, termasuk versi stabil. Seri qwen3-vl-flash, termasuk versi stabil. Model open source Qwen3.
Saat menggunakan HTTP, letakkan logprobs di dalam objek parameters. |
top_logprobs integer (Opsional) Default: 0 Menentukan jumlah token kandidat paling mungkin yang akan dikembalikan pada setiap langkah generasi. Rentang nilai: [0, 5] Parameter ini hanya digunakan saat logprobs adalah true. Dalam SDK Java, gunakan topLogprobs. Untuk panggilan HTTP, sertakan top_logprobs dalam objek parameters. |
n integer (Opsional) Default: 1 Parameter ini menentukan jumlah respons yang akan dihasilkan. Nilainya harus dalam rentang 1-4. Untuk skenario yang memerlukan beberapa respons, seperti penulisan kreatif atau iklan, Anda dapat menyetel nilai n yang lebih tinggi. Parameter ini saat ini hanya didukung oleh Qwen3 (mode non-thinking) models. Nilainya tetap 1 jika parameter tools diteruskan. Menyetel nilai n yang lebih tinggi tidak meningkatkan konsumsi token masukan, tetapi meningkatkan konsumsi token keluaran. Saat menggunakan HTTP, Anda dapat menempatkan n di dalam objek parameters. |
|
stop string or array (Opsional)
Parameter ini menentukan kata berhenti. Jika string atau token_id, sebagaimana ditentukan dalam stop, muncul dalam teks yang dihasilkan model, model segera berhenti menghasilkan teks. Teruskan kata sensitif untuk mengontrol keluaran model. Jika stop adalah array, jangan gunakan nilai token_id dan string sebagai elemen. Misalnya, ["Hello",104307] bukan nilai yang valid.
Saat Anda menggunakan HTTP, letakkan parameter stop di dalam objek parameters.
|
tools array (Opsional) Array yang berisi satu atau beberapa objek alat yang dapat digunakan model untuk pemanggilan fungsi. Untuk informasi lebih lanjut, lihat Pemanggilan Fungsi. Saat menggunakan tools, setel result_format ke message. Saat memulai pemanggilan fungsi atau mengirimkan hasil eksekusi alat, setel parameter tools. Properti type string (Required) Jenis alat. Saat ini, hanya function yang didukung. function object (Required) Properti name string (Required) Nama fungsi alat. Harus terdiri dari huruf dan angka, dan dapat menyertakan garis bawah dan tanda hubung. Panjang maksimum adalah 64 karakter. description string (Required) Deskripsi fungsi alat. Model menggunakan deskripsi ini untuk memutuskan kapan dan bagaimana memanggil fungsi. parameters object (Opsional) Default: {} Deskripsi parameter alat, yang harus merupakan JSON Schema yang valid. Untuk informasi lebih lanjut tentang JSON Schema, lihat dokumentasi JSON Schema. Jika objek parameters kosong, alat tersebut tidak memiliki parameter masukan (seperti alat kueri waktu). Untuk meningkatkan akurasi pemanggilan alat, berikan parameters. Saat menggunakan HTTP, letakkan tools di dalam objek parameters. Saat ini tidak didukung untuk model seri qwen-vl. |
tool_choice string or object (Opsional). Default: auto Kebijakan pemilihan alat. Setel parameter ini untuk menerapkan metode pemanggilan alat tertentu untuk jenis masalah tertentu, seperti selalu menggunakan alat tertentu atau menonaktifkan semua alat. auto
Large Language Model (LLM) secara otonom memilih kebijakan alat. none
Untuk sementara menonaktifkan pemanggilan alat untuk permintaan tertentu, setel parameter tool_choice ke none. {"type": "function", "function": {"name": "the_function_to_call"}}
Untuk memaksa panggilan ke alat tertentu, setel parameter tool_choice ke {"type": "function", "function": {"name": "the_function_to_call"}}, di mana the_function_to_call adalah nama fungsi alat yang ditentukan. Model mode thinking tidak mendukung pemaksaan panggilan ke alat tertentu.
Dalam SDK Java, gunakan toolChoice. Saat memanggil melalui HTTP, letakkan tool_choice di dalam objek parameters. |
parallel_tool_calls boolean (Opsional). Default: false. Menentukan apakah akan mengaktifkan pemanggilan alat paralel. Nilai yang valid: true: Diaktifkan
false: Dinonaktifkan.
Untuk informasi lebih lanjut, lihat Pemanggilan alat paralel. Untuk SDK Java, parameter ini adalah parallelToolCalls. Untuk panggilan HTTP, sertakan parallel_tool_calls di dalam objek parameters. |