全部产品
Search
文档中心

Alibaba Cloud Model Studio:Pemanggilan Aplikasi

更新时间:Oct 15, 2025

Anda dapat mengintegrasikan aplikasi agen, alur kerja, atau orkestrasi agen dari Model Studio ke dalam sistem bisnis Anda melalui SDK DashScope atau HTTP.

Prasyarat

Gunakan SDK DashScope atau antarmuka HTTP untuk memanggil aplikasi Model Studio. Persiapkan lingkungan Anda sebelum melanjutkan.

Tidak peduli metode pemanggilan yang digunakan, kami sarankan Anda konfigurasikan Kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK DashScope, Anda juga harus instal SDK DashScope.

Cara menggunakan

Percakapan satu putaran

Kode contoh untuk SDK DashScope atau metode HTTP untuk mengimplementasikan percakapan satu putaran.

Python

Permintaan contoh

import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
response = Application.call(
    # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='YOUR_APP_ID',# Ganti dengan ID aplikasi yang sebenarnya
    prompt='Siapa kamu?')

if response.status_code != HTTPStatus.OK:
    print(f'request_id={response.request_id}')
    print(f'code={response.status_code}')
    print(f'message={response.message}')
    print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
else:
    print(response.output.text)

Tanggapan contoh

Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, bernama Qwen. Saya dirancang untuk membantu pengguna menghasilkan berbagai jenis teks, seperti artikel, cerita, puisi, cerita, dll., dan dapat disesuaikan serta dioptimalkan sesuai dengan skenario dan kebutuhan yang berbeda. Selain itu, saya juga dapat menjawab berbagai pertanyaan, memberikan informasi dan penjelasan, serta membantu dalam pembelajaran dan penelitian. Jika Anda memiliki kebutuhan apa pun, jangan ragu untuk bertanya kepada saya kapan saja!

Java

Permintaan contoh

// Versi SDK dashscope yang direkomendasikan >= 2.12.0
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
    static {
      Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void appCall()
            throws ApiException, NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
                // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .appId("YOUR_APP_ID")
                .prompt("Siapa kamu?")
                .build();

        Application application = new Application();
        ApplicationResult result = application.call(param);

        System.out.printf("text: %s\n",
                result.getOutput().getText());
    }

    public static void main(String[] args) {
        try {
            appCall();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("message: "+e.getMessage());
            System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }
}

Tanggapan contoh

text: Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, bernama Qwen.

HTTP

curl

Permintaan contoh

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "Siapa kamu?"
    },
    "parameters":  {},
    "debug": {}
}' 
Ganti YOUR_APP_ID dengan ID aplikasi yang sebenarnya.

Tanggapan contoh

{"output":{"finish_reason":"stop",
"session_id":"232ea2e9e6ef448db6b14465c06a9a56",
"text":"Saya adalah model bahasa berskala sangat besar yang dikembangkan oleh Alibaba Cloud, dan nama saya adalah Qwen. Saya adalah asisten AI yang dapat menjawab pertanyaan, membuat teks, menyatakan pendapat, dan bahkan menulis kode. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk memberi tahu saya, dan saya akan melakukan yang terbaik untuk memberikan bantuan yang Anda butuhkan."},
"usage":{"models":[{"output_tokens":51,"model_id":"qwen-max","input_tokens":121}]},
"request_id":"661c9cad-e59c-9f78-a262-78eff243f151"}% 
PHP

Permintaan contoh

<?php

# Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan API Key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
$api_key = getenv("DASHSCOPE_API_KEY");
$application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi Anda yang sebenarnya

$url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";

// Konstruksi data permintaan
$data = [
    "input" => [
        'prompt' => 'Siapa kamu?'
    ]
];

// Enkode data sebagai JSON
$dataString = json_encode($data);

// Periksa apakah json_encode berhasil
if (json_last_error() !== JSON_ERROR_NONE) {
    die("Pengkodean JSON gagal dengan kesalahan: " . json_last_error_msg());
}

// Inisialisasi sesi curl
$ch = curl_init($url);

// Set opsi curl
curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
curl_setopt($ch, curlOPT_RETURNTRANSFER, true);
curl_setopt($ch, curlOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
]);

// Jalankan permintaan
$response = curl_exec($ch);

// Periksa apakah eksekusi curl berhasil
if ($response === false) {
    die("Kesalahan curl: " . curl_error($ch));
}

// Dapatkan kode status HTTP
$status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
// Tutup sesi curl
curl_close($ch);
// Dekode data tanggapan
$response_data = json_decode($response, true);
// Tangani tanggapan
if ($status_code == 200) {
    if (isset($response_data['output']['text'])) {
        echo "{$response_data['output']['text']}\n";
    } else {
        echo "Tidak ada teks dalam tanggapan.\n";
    }}
else {
    if (isset($response_data['request_id'])) {
        echo "request_id={$response_data['request_id']}\n";}
    echo "code={$status_code}\n";
    if (isset($response_data['message'])) {
        echo "message={$response_data['message']}\n";} 
    else {
        echo "message=Kesalahan tidak dikenal\n";}
}
?>

Tanggapan contoh

Saya adalah model bahasa berskala sangat besar yang dikembangkan oleh Alibaba Cloud, dan nama saya adalah Qwen.
Node.js

Dependensi:

npm install axios

Permintaan contoh

const axios = require('axios');

async function callDashScope() {
    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    const apiKey = process.env.DASHSCOPE_API_KEY;
    const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi yang sebenarnya

    const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;

    const data = {
        input: {
            prompt: "Siapa kamu?"
        },
        parameters: {},
        debug: {}
    };

    try {
        const response = await axios.post(url, data, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Content-Type': 'application/json'
            }
        });

        if (response.status === 200) {
            console.log(`${response.data.output.text}`);
        } else {
            console.log(`request_id=${response.headers['request_id']}`);
            console.log(`code=${response.status}`);
            console.log(`message=${response.data.message}`);
        }
    } catch (error) {
        console.error(`Kesalahan saat memanggil DashScope: ${error.message}`);
        if (error.response) {
            console.error(`Status tanggapan: ${error.response.status}`);
            console.error(`Data tanggapan: ${JSON.stringify(error.response.data, null, 2)}`);
        }
    }
}

callDashScope();

Tanggapan contoh

Saya adalah model bahasa berskala besar yang dikembangkan oleh Alibaba Cloud, dan nama saya adalah Qwen.
C#

Permintaan contoh

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        //Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key. 
        string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY tidak diatur.");
        string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi yang sebenarnya

        string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

            string jsonContent = @"{
                ""input"": {
                    ""prompt"": ""Siapa kamu?""
                },
                ""parameters"": {},
                ""debug"": {}
            }";

            HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Permintaan berhasil:");
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Kesalahan saat memanggil DashScope: {ex.Message}");
            }
        }
    }
}

Tanggapan contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "c274e14a58d9492f9baeffdc003a97c5",
        "text": "Saya adalah model bahasa berskala sangat besar yang dikembangkan oleh Alibaba Cloud, dan nama saya adalah Qwen. Saya dirancang untuk membantu pengguna menghasilkan berbagai jenis teks, seperti artikel, cerita, puisi, dll., dan dapat beradaptasi serta berinovasi sesuai dengan skenario dan kebutuhan yang berbeda. Selain itu, saya mampu menjawab berbagai macam pertanyaan, memberikan informasi dan penjelasan, serta membantu pengguna memecahkan masalah dan mendapatkan pengetahuan. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk memberi tahu saya kapan saja!"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 79,
                "model_id": "qwen-plus",
                "input_tokens": 74
            }
        ]
    },
    "request_id": "5c4b86b1-cd2d-9847-8d00-3fba8f187bc6"
}
Go

Permintaan contoh

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi yang sebenarnya

	if apiKey == "" {
		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
		return
	}

	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)

	// Buat badan permintaan
	requestBody := map[string]interface{}{
		"input": map[string]string{
			"prompt": "Siapa kamu?",
		},
		"parameters": map[string]interface{}{},
		"debug":      map[string]interface{}{},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Printf("Gagal mengubah JSON: %v\n", err)
		return
	}

	// Buat permintaan HTTP POST
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Printf("Gagal membuat permintaan: %v\n", err)
		return
	}

	// Atur header permintaan
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// Kirim permintaan
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// Baca tanggapan
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
		return
	}

	// Proses tanggapan
	if resp.StatusCode == http.StatusOK {
		fmt.Println("Permintaan berhasil:")
		fmt.Println(string(body))
	} else {
		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
		fmt.Println(string(body))
	}
}

Tanggapan contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "6105c965c31b40958a43dc93c28c7a59",
        "text": "Saya adalah Qwen, asisten AI yang dikembangkan oleh Alibaba Cloud. Saya dirancang untuk menjawab berbagai pertanyaan, memberikan informasi, dan terlibat dalam percakapan dengan pengguna. Apakah ada hal yang bisa saya bantu?"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 36,
                "model_id": "qwen-plus",
                "input_tokens": 74
            }
        ]
    },
    "request_id": "f97ee37d-0f9c-9b93-b6bf-bd263a232bf9"
}

Percakapan multi-putaran

Dalam percakapan multi-putaran, LLM dapat merujuk pada riwayat percakapan, sehingga lebih mirip dengan skenario komunikasi sehari-hari.

Saat ini, hanya aplikasi agen dan aplikasi alur kerja dialog yang mendukung percakapan multi-putaran.
  • Ketika Anda memasukkan session_id, permintaan secara otomatis membawa riwayat percakapan yang disimpan di cloud.

    Ketika memasukkan session_id, prompt diperlukan.
  • Anda juga dapat memilih untuk memelihara array messages. Tambahkan setiap putaran riwayat percakapan dan instruksi baru ke dalam array messages. Kemudian, lewatkan riwayat melalui messages.

    Ketika memasukkan messages, prompt bersifat opsional. Jika keduanya dimasukkan, prompt akan ditambahkan ke akhir messages sebagai informasi tambahan.
Jika baik session_id maupun messages dimasukkan, messages akan digunakan terlebih dahulu.

Penyimpanan awan (session_id)

Python

Permintaan contoh

import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def call_with_session():
    response = Application.call(
        # Jika variabel lingkungan tidak dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='YOUR_APP_ID',  # Ganti dengan ID aplikasi aktual
        prompt='Siapa kamu?')

    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
        return response

    responseNext = Application.call(
                # Jika variabel lingkungan tidak dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                api_key=os.getenv("DASHSCOPE_API_KEY"),
                app_id='YOUR_APP_ID',  # Ganti dengan ID aplikasi aktual
                prompt='Apa saja kemampuanmu?',
                session_id=response.output.session_id)  # session_id dari respons sebelumnya

    if responseNext.status_code != HTTPStatus.OK:
        print(f'request_id={responseNext.request_id}')
        print(f'code={responseNext.status_code}')
        print(f'message={responseNext.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print('%s\n session_id=%s\n' % (responseNext.output.text, responseNext.output.session_id))
        # print('%s\n' % (response.usage))

if __name__ == '__main__':
    call_with_session()

Respons contoh

Saya memiliki beberapa kemampuan dan dapat membantu Anda dengan berbagai tugas. Berikut adalah beberapa kemampuan utama saya:

1. **Pengambilan informasi**: Menyediakan cuaca, berita, fakta sejarah, pengetahuan ilmiah, dan berbagai informasi lainnya.
2. **Pemrosesan bahasa**: Menerjemahkan teks, memperbaiki kesalahan tata bahasa, menghasilkan artikel dan cerita.
3. **Pemecahan masalah teknis**: Menjawab pertanyaan pemrograman, penggunaan perangkat lunak, pemecahan masalah teknis, dll.
4. **Bantuan pendidikan**: Membantu menjawab pertanyaan dalam mata pelajaran seperti matematika, fisika, kimia, dll.
5. **Saran kehidupan**: Memberikan saran tentang kesehatan, diet, perjalanan, belanja, dll.
6. **Interaksi hiburan**: Menceritakan lelucon, bermain game kata, terlibat dalam interaksi obrolan sederhana.
7. **Manajemen jadwal**: Mengingatkan tanggal penting, mengatur jadwal, menyetel pengingat.
8. **Analisis data**: Menjelaskan bagan data, memberikan saran analisis data.
9. **Dukungan emosional**: Mendengarkan perasaan Anda, memberikan kenyamanan dan dukungan.

Jika Anda memiliki kebutuhan atau pertanyaan tertentu, Anda bisa memberi tahu saya langsung, dan saya akan melakukan yang terbaik untuk membantu Anda!
 session_id=98ceb3ca0c4e4b05a20a00f913050b42
Java

Permintaan contoh

import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.utils.Constants;
public class Main {
    static {
      Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void callWithSession()
            throws ApiException, NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
                // Jika variabel lingkungan tidak dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // Ganti dengan ID aplikasi aktual
                .appId("YOUR_APP_ID")
                .prompt("Siapa kamu?")
                .build();

        Application application = new Application();
        ApplicationResult result = application.call(param);

        param.setSessionId(result.getOutput().getSessionId());
        param.setPrompt("Apa saja kemampuanmu?");
        result = application.call(param);

        System.out.printf("%s\n, session_id: %s\n",
                result.getOutput().getText(), result.getOutput().getSessionId());
    }

    public static void main(String[] args) {
        try {
            callWithSession();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Pengecualian: %s", e.getMessage());
            System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }
}

Respons contoh

Saya memiliki beberapa kemampuan dan dapat memberikan berbagai jenis bantuan. Berikut adalah beberapa kemampuan utama saya:

1. **Pemahaman dan pembuatan multibahasa**: Saya dapat memahami dan menghasilkan teks dalam beberapa bahasa termasuk Cina dan Inggris.
2. **Pengambilan dan sintesis informasi**: Saya dapat mencari informasi relevan berdasarkan pertanyaan Anda dan mengorganisir serta meringkasnya.
3. **Bantuan penulisan**: Baik itu menulis artikel, laporan, atau penulisan kreatif, saya dapat memberikan dukungan.
4. **Asisten pemrograman**: Untuk programmer, saya dapat membantu menjawab pertanyaan terkait pemrograman, memberikan contoh kode, dll.
5. **Panduan pendidikan**: Saat menghadapi kesulitan dalam proses belajar, saya dapat bertindak sebagai asisten untuk memberikan bantuan, mencakup banyak bidang subjek dari matematika hingga sejarah.
6. **Saran kehidupan**: Saya juga dapat memberikan beberapa saran tentang masalah terkait pola makan sehat, perencanaan perjalanan, dll.
7. **Komunikasi emosional**: Meskipun saya adalah AI, saya berusaha untuk berkomunikasi dengan Anda dengan cara yang hangat dan mendukung.

Jika Anda memiliki kebutuhan atau ingin mempelajari lebih lanjut tentang aspek tertentu, jangan ragu untuk memberi tahu saya!
, session_id: f2e94a980a34424fa25be45a7048d77c
HTTP
curl

Permintaan contoh (putaran 1)

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "Siapa kamu?"
    },
    "parameters":  {},
    "debug": {}
}' 

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "4f8ef7233dc641aba496cb201fa59f8c",
        "text": "Saya adalah Qwen, asisten AI yang dikembangkan oleh Alibaba Cloud. Saya dirancang untuk menjawab berbagai pertanyaan, menyediakan informasi, dan terlibat dalam percakapan dengan pengguna. Apakah ada hal yang dapat saya bantu?"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 36,
                "model_id": "qwen-plus",
                "input_tokens": 75
            }
        ]
    },
    "request_id": "e571b14a-423f-9278-8d1e-d86c418801e0"
}

Permintaan contoh (putaran 2)

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "Apa saja kemampuanmu?",
        "session_id":"4f8ef7233dc641aba496cb201fa59f8c"
    },
    "parameters":  {},
    "debug": {}
}' 

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "4f8ef7233dc641aba496cb201fa59f8c",
        "text": "Sebagai asisten AI, saya memiliki beberapa kemampuan yang dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:

1. **Kueri pengetahuan**: Saya dapat membantu Anda menemukan informasi di berbagai bidang seperti sains, sejarah, budaya, teknologi, dll.
2. **Terjemahan bahasa**: Saya dapat membantu Anda menerjemahkan teks dalam berbagai bahasa, mendukung penerjemahan antara beberapa bahasa.
3. **Pembuatan teks**: Saya dapat menghasilkan artikel, cerita, puisi, siaran pers, dan berbagai jenis teks lainnya.
4. **Tanya jawab**: Baik itu pertanyaan akademik, pengetahuan umum, atau masalah teknis, saya dapat mencoba memberikan jawaban untuk Anda.
5. **Pertukaran percakapan**: Saya dapat berbicara dengan Anda secara alami dan lancar, memberikan dukungan emosional atau hiburan.
6. **Penulisan dan debugging kode**: Saya dapat membantu Anda menulis kode dan memecahkan masalah dalam pemrograman.
7. **Analisis data**: Saya dapat membantu Anda menganalisis data, memberikan hasil statistik dan saran visualisasi.
8. **Inspirasi kreatif**: Jika Anda membutuhkan inspirasi kreatif, seperti desain, salinan iklan, strategi pemasaran, dll., Saya juga dapat memberikan bantuan.

Jika Anda memiliki kebutuhan atau pertanyaan tertentu, jangan ragu untuk memberi tahu saya kapan saja!"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 208,
                "model_id": "qwen-plus",
                "input_tokens": 125
            }
        ]
    },
    "request_id": "9de2c3ed-e1f0-9963-85f4-8f289203418b"
}
PHP

Permintaan contoh (putaran 1)

<?php
# Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
$api_key = getenv("DASHSCOPE_API_KEY");
$application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual

$url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";

// Konstruksi data permintaan
$data = [
    "input" => [
        'prompt' => 'Siapa kamu?'
    ]
];

// Enkode data sebagai JSON
$dataString = json_encode($data);

// Periksa apakah json_encode berhasil
if (json_last_error() !== JSON_ERROR_NONE) {
    die("JSON encoding gagal dengan kesalahan: " . json_last_error_msg());
}

// Inisialisasi sesi curl
$ch = curl_init($url);

// Set opsi curl
curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
curl_setopt($ch, curlOPT_RETURNTRANSFER, true);
curl_setopt($ch, curlOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
]);

// Eksekusi permintaan
$response = curl_exec($ch);

// Periksa apakah eksekusi curl berhasil
if ($response === false) {
    die("curl Error: " . curl_error($ch));
}

// Dapatkan kode status HTTP
$status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
// Tutup sesi curl
curl_close($ch);
// Dekode data respons
$response_data = json_decode($response, true);
// Tangani respons
if ($status_code == 200) {
    if (isset($response_data['output']['text'])) {
        echo "{$response_data['output']['text']}\n";
    } else {
        echo "Tidak ada teks dalam respons.\n";
    };
    if (isset($response_data['output']['session_id'])) {
        echo "session_id={$response_data['output']['session_id']}\n";
    }
} else {
    if (isset($response_data['request_id'])) {
        echo "request_id={$response_data['request_id']}\n";
    }
    echo "code={$status_code}\n";
    if (isset($response_data['message'])) {
        echo "message={$response_data['message']}\n";
    } else {
        echo "message=Kesalahan tidak diketahui\n";
    }
}
?>

Respons contoh

Saya adalah model bahasa besar dari Alibaba Cloud, nama saya adalah Qwen.
session_id=2e658bcb514f4d30ab7500b4766a8d43

Permintaan contoh (putaran 2)

<?php
# Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
$api_key = getenv("DASHSCOPE_API_KEY");
$application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual

$url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";

// Konstruksi data permintaan
$data = [
    "input" => [
        'prompt' => 'Apa saja kemampuanmu?',
        // Ganti dengan session_id yang dikembalikan dari percakapan putaran sebelumnya
        'session_id' => '2e658bcb514f4d30ab7500b4766a8d43'
    ]
];

// Enkode data sebagai JSON
$dataString = json_encode($data);

// Periksa apakah json_encode berhasil
if (json_last_error() !== JSON_ERROR_NONE) {
    die("JSON encoding gagal dengan kesalahan: " . json_last_error_msg());
}

// Inisialisasi sesi curl
$ch = curl_init($url);

// Set opsi curl
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
]);

// Eksekusi permintaan
$response = curl_exec($ch);

// Periksa apakah eksekusi curl berhasil
if ($response === false) {
    die("curl Error: " . curl_error($ch));
}

// Dapatkan kode status HTTP
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Tutup sesi curl
curl_close($ch);
// Dekode data respons
$response_data = json_decode($response, true);
// Tangani respons
if ($status_code == 200) {
    if (isset($response_data['output']['text'])) {
        echo "{$response_data['output']['text']}\n";
    } else {
        echo "Tidak ada teks dalam respons.\n";
    }
    if (isset($response_data['output']['session_id'])) {
        echo "session_id={$response_data['output']['session_id']}\n";
    }
} else {
    if (isset($response_data['request_id'])) {
        echo "request_id={$response_data['request_id']}\n";
    }
    echo "code={$status_code}\n";
    if (isset($response_data['message'])) {
        echo "message={$response_data['message']}\n";
    } else {
        echo "message=Kesalahan tidak diketahui\n";
    }
}
?>

Respons contoh

Saya memiliki beberapa kemampuan, termasuk tetapi tidak terbatas pada:

1. **Kemampuan multibahasa**: Saya dapat memahami dan menghasilkan konten teks dalam beberapa bahasa.
2. **Penulisan dan pembuatan**: Membantu menulis artikel, cerita, puisi, dan konten kreatif lainnya.
3. **Tanya jawab pengetahuan**: Menjawab pertanyaan umum dan profesional dari berbagai bidang.
4. **Penulisan dan pemahaman kode**: Dapat menulis kode program sederhana, dan membantu menjelaskan atau memperbaiki kode.
5. **Penalaran logis**: Memecahkan masalah dan teka-teki yang memerlukan pemikiran logis.
6. **Dukungan emosional**: Memberikan dukungan psikologis positif dan dorongan.
7. **Permainan dan hiburan**: Berpartisipasi dalam permainan kata atau bentuk lain dari aktivitas interaktif hiburan.

Tujuan saya adalah menjadi asisten Anda yang cakap, memberikan bantuan dan dukungan saat Anda membutuhkannya. Jika Anda memiliki kebutuhan atau fitur tertentu yang ingin Anda coba, jangan ragu untuk memberi tahu saya!
session_id=2e658bcb514f4d30ab7500b4766a8d43
Node.js

Dependensi:

npm install axios

Permintaan contoh (putaran 1)

const axios = require('axios');

async function callDashScope() {
    // Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    const apiKey = process.env.DASHSCOPE_API_KEY;
    const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi aktual

    const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;

    const data = {
        input: {
            prompt: "Siapa kamu?"
        },
        parameters: {},
        debug: {}
    };

    try {
        const response = await axios.post(url, data, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Content-Type': 'application/json'
            }
        });

        if (response.status === 200) {
            console.log(`${response.data.output.text}`);
            console.log(`session_id=${response.data.output.session_id}`);
        } else {
            console.log(`request_id=${response.headers['request_id']}`);
            console.log(`code=${response.status}`);
            console.log(`message=${response.data.message}`);
        }
    } catch (error) {
        console.error(`Error calling DashScope: ${error.message}`);
        if (error.response) {
            console.error(`Response status: ${error.response.status}`);
            console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
        }
    }
}
callDashScope();

Respons contoh

Saya adalah Qwen, asisten kecerdasan buatan yang dikembangkan oleh Alibaba Cloud. Saya dapat menjawab berbagai pertanyaan, menyediakan informasi, dan terlibat dalam percakapan dengan pengguna. Apakah ada hal yang dapat saya bantu?
session_id=fe4ce8b093bf46159ea9927a7b22f0d3

Permintaan contoh (putaran 2)

const axios = require('axios');

async function callDashScope() {
    // Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    const apiKey = process.env.DASHSCOPE_API_KEY;
    const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi aktual

    const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    // Ganti session_id dengan session_id aktual dari percakapan sebelumnya
    const data = {
        input: {
            prompt: "Apa saja kemampuanmu?",
            session_id: 'fe4ce8b093bf46159ea9927a7b22f0d3',
        },
        parameters: {},
        debug: {}
    };

    try {
        const response = await axios.post(url, data, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Content-Type': 'application/json'
            }
        });

        if (response.status === 200) {
            console.log(`${response.data.output.text}`);
            console.log(`session_id=${response.data.output.session_id}`);
        } else {
            console.log(`request_id=${response.headers['request_id']}`);
            console.log(`code=${response.status}`);
            console.log(`message=${response.data.message}`);
        }
    } catch (error) {
        console.error(`Error calling DashScope: ${error.message}`);
        if (error.response) {
            console.error(`Response status: ${error.response.status}`);
            console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
        }
    }
}
callDashScope();

Respons contoh

Saya memiliki berbagai kemampuan yang dapat membantu Anda menangani tugas dan pertanyaan yang berbeda. Berikut adalah beberapa area kemampuan utama saya:

1. **Kueri informasi dan pengambilan**: Saya dapat membantu menemukan informasi, data, atau berita spesifik.
2. **Penulisan dan pembuatan**: Termasuk menulis artikel, cerita, puisi, laporan, dll.
3. **Terjemahan bahasa**: Dapat memberikan layanan terjemahan antara bahasa yang berbeda.
4. **Bimbingan pendidikan**: Menjawab pertanyaan akademik, membantu memahami konsep kompleks.
5. **Dukungan teknis**: Memecahkan masalah teknis yang dihadapi dalam penggunaan komputer.
6. **Saran kehidupan**: Memberikan saran tentang kesehatan, diet, perjalanan, dan aspek lainnya.
7. **Interaksi hiburan**: Menceritakan lelucon, bermain game kata, dan aktivitas santai lainnya.

Jika Anda memiliki kebutuhan spesifik atau ingin mempelajari lebih lanjut tentang aspek tertentu, silakan beri tahu saya!
session_id=fe4ce8b093bf46159ea9927a7b22f0d3
C#

Permintaan contoh (putaran 1)

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        //Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key. 
        string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");
        string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi aktual

        string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

            string jsonContent = @"{
                ""input"": {
                    ""prompt"": ""Siapa kamu?""
                },
                ""parameters"": {},
                ""debug"": {}
            }";

            HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Permintaan berhasil:");
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error calling DashScope: {ex.Message}");
            }
        }
    }
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "7b830e4cc8fe44faad0e648f9b71435f",
        "text": "Saya adalah Qwen, asisten AI yang dikembangkan oleh Alibaba Cloud. Saya dirancang untuk menjawab berbagai pertanyaan, menyediakan informasi, dan terlibat dalam percakapan dengan pengguna. Apakah ada hal yang dapat saya bantu?"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 36,
                "model_id": "qwen-plus",
                "input_tokens": 75
            }
        ]
    },
    "request_id": "53691ae5-be17-96c6-a830-8f0f92329028"
}

Permintaan contoh (putaran 2)

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        //Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key. 
        string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");
        string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi aktual

        string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

            string jsonContent = @"{
                ""input"": {
                    ""prompt"": ""Apa saja kemampuanmu?"",
                    ""session_id"": ""7b830e4cc8fe44faad0e648f9b71435f""
                },
                ""parameters"": {},
                ""debug"": {}
            }";

            HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("Permintaan berhasil:");
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error calling DashScope: {ex.Message}");
            }
        }
    }
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "7b830e4cc8fe44faad0e648f9b71435f",
        "text": "Saya memiliki beberapa kemampuan dan dapat:

- Menjawab pertanyaan pengetahuan dari berbagai bidang
- Menyediakan sumber belajar dan saran
- Membantu dengan masalah teknis
- Berkomunikasi dalam beberapa bahasa
- Membantu merencanakan perjalanan dan aktivitas
- Memberikan saran praktis untuk kehidupan sehari-hari

Jika Anda memiliki kebutuhan atau pertanyaan tertentu, jangan ragu untuk memberi tahu saya!"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 70,
                "model_id": "qwen-plus",
                "input_tokens": 123
            }
        ]
    },
    "request_id": "da5044ed-461e-9e91-8ca5-38a3c72a8306"
}
Go

Permintaan contoh (putaran 1)

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	// Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual

	if apiKey == "" {
		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
		return
	}

	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)

	// Buat body permintaan
	requestBody := map[string]interface{}{
		"input": map[string]string{
			"prompt": "Siapa kamu?",
		},
		"parameters": map[string]interface{}{},
		"debug":      map[string]interface{}{},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Printf("Gagal mengubah JSON: %v\n", err)
		return
	}

	// Buat permintaan HTTP POST
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Printf("Gagal membuat permintaan: %v\n", err)
		return
	}

	// Set header permintaan
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// Kirim permintaan
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// Baca respons
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Gagal membaca respons: %v\n", err)
		return
	}

	// Proses respons
	if resp.StatusCode == http.StatusOK {
		fmt.Println("Permintaan berhasil:")
		fmt.Println(string(body))
	} else {
		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
		fmt.Println(string(body))
	}
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "f7eea37f0c734c20998a021b688d6de2",
        "text": "Saya adalah Qwen, asisten AI yang dikembangkan oleh Alibaba Cloud. Saya dirancang untuk menjawab berbagai pertanyaan, menyediakan informasi, dan terlibat dalam percakapan dengan pengguna. Apakah ada hal yang dapat saya bantu?"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 36,
                "model_id": "qwen-plus",
                "input_tokens": 75
            }
        ]
    },
    "request_id": "fa65e14a-ab63-95b2-aa43-035bf5c51835"
}

Permintaan contoh (putaran 2)

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	// Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual

	if apiKey == "" {
		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
		return
	}

	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)

	// Buat body permintaan
	requestBody := map[string]interface{}{
		"input": map[string]string{
			"prompt":     "Apa saja kemampuanmu?",
			"session_id": "f7eea37f0c734c20998a021b688d6de2", // Ganti dengan session_id aktual dari percakapan sebelumnya
		},
		"parameters": map[string]interface{}{},
		"debug":      map[string]interface{}{},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Printf("Gagal mengubah JSON: %v\n", err)
		return
	}

	// Buat permintaan HTTP POST
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Printf("Gagal membuat permintaan: %v\n", err)
		return
	}

	// Set header permintaan
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// Kirim permintaan
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// Baca respons
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Gagal membaca respons: %v\n", err)
		return
	}

	// Proses respons
	if resp.StatusCode == http.StatusOK {
		fmt.Println("Permintaan berhasil:")
		fmt.Println(string(body))
	} else {
		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
		fmt.Println(string(body))
	}
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "f7eea37f0c734c20998a021b688d6de2",
        "text": "Saya memiliki beberapa kemampuan dan dapat:

- Menjawab berbagai pertanyaan pengetahuan di bidang seperti sains, sejarah, budaya, dll.
- Memberikan saran praktis, seperti tips perjalanan, tips kesehatan, metode belajar, dll.
- Membantu dengan pekerjaan teks, seperti menulis artikel, mengedit dokumen, menciptakan cerita atau puisi.
- Melakukan terjemahan multibahasa, mendukung terjemahan antara beberapa bahasa.
- Melakukan percakapan alami dan lancar dengan pengguna, menemani mereka, menjawab pertanyaan.

Jika Anda memiliki kebutuhan tertentu, jangan ragu untuk memberi tahu saya!"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 104,
                "model_id": "qwen-plus",
                "input_tokens": 125
            }
        ]
    },
    "request_id": "badccade-9f54-986b-8d8c-75ef15e9616c"
}
Ganti YOUR_APP_ID dengan ID aplikasi aktual. Untuk putaran 2, ganti session_id dengan session_id aktual yang dikembalikan dari putaran 1.

Pengelolaan mandiri (messages)

Python

Permintaan contoh

# Versi SDK dashscope harus >= 1.20.14
import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [
    {'role': 'system', 'content': 'Anda adalah asisten yang membantu.'},
    {'role': 'user', 'content': 'Siapa kamu?'},
    {"role": "assistant","content": "Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen."},
    {"role": "user","content": "Apa yang bisa kamu lakukan?"}
]
response = Application.call(
    # Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    app_id='YOUR_APP_ID',  # Ganti dengan ID aplikasi aktual
    messages=messages)

if response.status_code != HTTPStatus.OK:
    print(f'request_id={response.request_id}')
    print(f'code={response.status_code}')
    print(f'message={response.message}')
    print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/error-code')
else:
    print('%s\n' % (response.output.text))

Respons contoh

Sebagai Qwen, saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:

1. Menjawab pertanyaan: Baik itu pengetahuan ilmiah, masalah teknis, atau pengetahuan umum, saya dapat memberikan informasi dan jawaban yang akurat.
2. Membuat teks: Seperti menulis cerita, puisi, artikel, dll., Menghasilkan konten kreatif berdasarkan kondisi yang diberikan.
3. Asisten pemrograman: Dapat membantu pembelajaran pemrograman, menjelaskan logika kode, membantu memperbaiki kesalahan program, dll.
4. Terjemahan bahasa: Mendukung layanan terjemahan antara beberapa bahasa.
5. Memberikan saran: Memberikan saran atau solusi saat menghadapi keputusan.
6. Komunikasi emosional: Terlibat dalam percakapan dengan pengguna, mendengarkan dan memberikan tanggapan serta dukungan positif.

Singkatnya, tujuan saya adalah menjadi asisten Anda yang cakap dalam pekerjaan dan kehidupan. Jika Anda memiliki kebutuhan tertentu, jangan ragu untuk memberi tahu saya!
Java

Permintaan contoh

// Versi SDK dashscope harus >= 2.17.0
import java.util.ArrayList;
import java.util.List;

import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;

public class Main {
      static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
      }
      public static void appCall()
            throws ApiException, NoApiKeyException, InputRequiredException {
        List messages = new ArrayList<>();
        messages.add(Message.builder().role("system").content("Anda adalah asisten yang membantu.").build());
        messages.add(Message.builder().role("user").content("Siapa kamu?").build());
        messages.add(Message.builder().role("assistant").content("Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen.").build());
        messages.add(Message.builder().role("user").content("Apa yang bisa kamu lakukan?").build());

        ApplicationParam param = ApplicationParam.builder()
                // Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .appId("YOUR_APP_ID")
                .messages(messages)
                .build();

        Application application = new Application();
        ApplicationResult result = application.call(param);

        System.out.printf("text: %s\n",
                result.getOutput().getText());
    }

    public static void main(String[] args) {
        try {
            appCall();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("message: "+e.getMessage());
            System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/error-code");
        }
        System.exit(0);
    }
}

Respons contoh

text: Saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:

1. Menjawab pertanyaan: Baik itu pertanyaan akademik, pengetahuan umum, atau pertanyaan di bidang profesional, saya akan berusaha memberikan jawaban yang akurat.
2. Membuat teks: Seperti menulis cerita, dokumen resmi, email, skrip, dll., Cukup berikan saya beberapa informasi dasar dan persyaratan.
3. Pemrosesan tabel: Dapat membantu Anda mengatur data, menghasilkan atau memodifikasi tabel.
4. Penulisan kode: Mendukung penulisan dan penjelasan kode dalam beberapa bahasa pemrograman.
5. Terjemahan multibahasa: Dapat menerjemahkan antara bahasa yang berbeda.
6. Percakapan simulasi: Dapat memainkan peran yang berbeda untuk terlibat dalam percakapan simulasi dengan pengguna.

Jika Anda memiliki kebutuhan tertentu, jangan ragu untuk memberi tahu saya!
HTTP
curl

Permintaan contoh

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "messages":[      
            {
                "role": "system",
                "content": "Anda adalah asisten yang membantu."
            },
            {
                "role": "user",
                "content": "Siapa kamu?"
            },
            {
                "role": "assistant",
                "content": "Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen."
            },
            {
                "role": "user",
                "content": "Apa yang bisa kamu lakukan?"
            }
        ]
    },
    "parameters":  {},
    "debug": {}
}' 

Respons contoh

{"output":
{"finish_reason":"stop","session_id":"990ca89d89794826976d7499ad10cddb",
"text":"Saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:\n\n1. Menjawab pertanyaan: Baik itu pengetahuan akademik, tips praktis, atau pertanyaan pengetahuan umum, saya akan berusaha memberikan jawaban yang akurat.\n2. Membuat teks: Seperti menulis cerita, dokumen resmi, email, skrip, dll., Selama Anda memberi tahu saya kebutuhan spesifik Anda, saya dapat membantu Anda menulisnya.\n3. Menyatakan pendapat: Untuk beberapa pertanyaan subjektif, saya juga dapat memberikan pandangan saya sendiri dan mendiskusikannya dengan Anda.\n4. Permainan dan hiburan: Kita dapat bermain game kata bersama, atau saya dapat menceritakan lelucon untuk membantu Anda bersantai.\n\nSingkatnya, apa pun yang terkait dengan bahasa, Anda dapat meminta bantuan saya!"},"usage":{"models":[{"output_tokens":126,"model_id":"qwen-max","input_tokens":86}]},"request_id":"3908c4a3-8d7a-9e51-81a5-0fc366582990"}%  
PHP

Permintaan contoh

<?php
# Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
$api_key = getenv("DASHSCOPE_API_KEY");
$application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual

$url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";

// Konstruksi data permintaan
$data = [
    "input" => [
        "messages" => [
            [
                "role" => "system",
                "content" => "Anda adalah asisten yang membantu."
            ],
            [
                "role" => "user",
                "content" => "Siapa kamu?"
            ],
            [
                "role" => "assistant",
                "content" => "Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, dan nama saya adalah Qwen."
            ],
            [
                "role" => "user",
                "content" => "Apa yang bisa kamu lakukan?"
            ]
        ]
    ]
];

// Enkode data sebagai JSON
$dataString = json_encode($data);

// Periksa apakah json_encode berhasil
if (json_last_error() !== JSON_ERROR_NONE) {
    die("JSON encoding gagal dengan kesalahan: " . json_last_error_msg());
}

// Inisialisasi sesi curl
$ch = curl_init($url);

// Set opsi curl
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
]);

// Eksekusi permintaan
$response = curl_exec($ch);

// Periksa apakah eksekusi curl berhasil
if ($response === false) {
    die("curl Error: " . curl_error($ch));
}

// Dapatkan kode status HTTP
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Tutup sesi curl
curl_close($ch);

// Dekode data respons
$response_data = json_decode($response, true);

// Tangani respons
if ($status_code == 200) {
    if (isset($response_data['output']['text'])) {
        echo "{$response_data['output']['text']}\n";
    } else {
        echo "Tidak ada teks dalam respons.\n";
    }
} else {
    if (isset($response_data['request_id'])) {
        echo "request_id={$response_data['request_id']}\n";
    }
    echo "code={$status_code}\n";
    if (isset($response_data['message'])) {
        echo "message={$response_data['message']}\n";
    } else {
        echo "message=Kesalahan tidak diketahui\n";
    }
}
?>

Respons contoh

Saya dapat membantu Anda menyelesaikan berbagai tugas, seperti:

1. Menjawab pertanyaan: Baik itu pertanyaan akademik, pengetahuan praktis, atau gosip hiburan, saya akan berusaha memberikan jawaban yang akurat.
2. Membuat teks: Termasuk tetapi tidak terbatas pada menulis cerita, dokumen resmi, email, dll.
3. Memberikan saran: Seperti saran perjalanan, metode belajar, perencanaan karier, dan panduan serta saran lainnya.
4. Terlibat dalam percakapan: Kita bisa mengobrol, berbagi perasaan, dan bahkan memiliki diskusi menarik.

Jika Anda membutuhkan bantuan untuk apa pun, cukup beri tahu saya!
Node.js

Dependensi:

npm install axios

Permintaan contoh

const axios = require('axios');
async function callDashScope() {
    // Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    const apiKey = process.env.DASHSCOPE_API_KEY;
    const appId = 'YOUR_APP_ID';//Ganti dengan ID aplikasi aktual

    const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;

    const data = {
        "input": {
        "messages":[      
            {
                "role": "system",
                "content": "Anda adalah asisten yang membantu."
            },
            {
                "role": "user",
                "content": "Siapa kamu?"
            },
            {
                "role": "assistant",
                "content": "Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen."
            },
            {
                "role": "user",
                "content": "Apa yang bisa kamu lakukan?"
            }
        ]
    },
        parameters: {},
        debug: {}
    };

    try {
        const response = await axios.post(url, data, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Content-Type': 'application/json'
            }
        });

        if (response.status === 200) {
            console.log(`${response.data.output.text}`);
        } else {
            console.log(`request_id=${response.headers['request_id']}`);
            console.log(`code=${response.status}`);
            console.log(`message=${response.data.message}`);
        }
    } catch (error) {
        console.error(`Error calling DashScope: ${error.message}`);
        if (error.response) {
            console.error(`Response status: ${error.response.status}`);
            console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
        }
    }
}

callDashScope();

Respons contoh

Saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:

1. Menjawab pertanyaan: Baik itu pengetahuan akademik, informasi praktis, atau pertanyaan pengetahuan umum, saya akan berusaha memberikan jawaban yang akurat.
2. Membuat teks: Seperti menulis cerita, dokumen resmi, email, skrip, dll., Selama Anda memberikan cukup informasi latar belakang dan persyaratan, saya dapat membantu Anda menulisnya.
3. Memberikan saran: Jika Anda memerlukan saran tentang keputusan tertentu, seperti pemilihan tujuan perjalanan, pemilihan hadiah, metode belajar, dll., Saya juga dapat memberikan saran berdasarkan deskripsi Anda.
4. Terjemahan bahasa: Mendukung terjemahan teks antara beberapa bahasa.
5. Penulisan dan penjelasan kode: Untuk pertanyaan terkait pemrograman, saya dapat membantu menulis program sederhana atau menjelaskan konsep kompleks.
6. Terlibat dalam percakapan: Selain fungsi-fungsi di atas, saya juga dapat melakukan komunikasi sehari-hari dengan pengguna, berbagi ide.

Jika Anda memiliki kebutuhan tertentu, jangan ragu untuk memberi tahu saya!
C#

Permintaan contoh

using System.Text;

class Program
{
    static async Task Main(string[] args)
    {
        // Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
        string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi aktual
        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("Pastikan DASHSCOPE_API_KEY telah diatur.");
            return;
        }

        string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
        
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
            string jsonContent = $@"{{
                ""input"": {{
                    ""messages"": [
                        {{
                            ""role"": ""system"",
                            ""content"": ""Anda adalah asisten yang membantu.""
                        }},
                        {{
                            ""role"": ""user"",
                            ""content"": ""Siapa kamu?""
                        }},
                        {{
                            ""role"": ""assistant"",
                            ""content"": ""Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen.""
                        }},
                        {{
                            ""role"": ""user"",
                            ""content"": ""Apa yang bisa kamu lakukan?""
                        }}
                    ]
                }},
                ""parameters"": {{}},
                ""debug"": {{}}
            }}";

            HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            try
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
                else
                {
                    Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                    string responseBody = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error calling DashScope: {ex.Message}");
            }
        }
    }
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "a6d041ca3d084a7ca9eff1c456afad70",
        "text": "Sebagai Qwen, saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:\n\n1. Menjawab pertanyaan: Memberikan jawaban untuk berbagai pertanyaan berbasis pengetahuan.\n2. Pembuatan teks: Menulis artikel, cerita, puisi, dan konten teks lainnya.\n3. Terjemahan bahasa: Melakukan pekerjaan terjemahan antara bahasa yang berbeda.\n4. Pertukaran percakapan: Melakukan percakapan alami dan lancar dengan pengguna.\n5. Memberikan saran: Menawarkan saran atau solusi berdasarkan kebutuhan pengguna.\n\nJika Anda memiliki kebutuhan tertentu, beri tahu saya, dan saya akan berusaha membantu Anda."
    },
    "usage": {
        "models": [
            {
                "output_tokens": 102,
                "model_id": "qwen-max",
                "input_tokens": 87
            }
        ]
    },
    "request_id": "27fb8a01-70d5-974f-bb0a-e9408a9c1772"
}
Go

Permintaan contoh

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	// Jika variabel lingkungan tidak dikonfigurasikan, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk menuliskan API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual

	if apiKey == "" {
		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
		return
	}

	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)

	// Buat body permintaan
	requestBody := map[string]interface{}{
		"input": map[string]interface{}{
			"messages": []interface{}{
				map[string]string{
					"role":    "system",
					"content": "Anda adalah asisten yang membantu.",
				},
				map[string]string{
					"role":    "user",
					"content": "Siapa kamu?",
				},
				map[string]string{
					"role":    "assistant",
					"content": "Saya adalah model bahasa besar yang dikembangkan oleh Alibaba Cloud, nama saya adalah Qwen.",
				},
				map[string]string{
					"role":    "user",
					"content": "Apa yang bisa kamu lakukan?",
				},
			},
		},
		"parameters": map[string]interface{}{},
		"debug":      map[string]interface{}{},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		fmt.Printf("Gagal mengubah JSON: %v\n", err)
		return
	}

	// Buat permintaan HTTP POST
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
	if err != nil {
		fmt.Printf("Gagal membuat permintaan: %v\n", err)
		return
	}

	// Set header permintaan
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// Kirim permintaan
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
		return
	}
	defer resp.Body.Close()

	// Baca respons
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("Gagal membaca respons: %v\n", err)
		return
	}

	// Proses respons
	if resp.StatusCode == http.StatusOK {
		fmt.Println("Permintaan berhasil:")
		fmt.Println(string(body))
	} else {
		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
		fmt.Println(string(body))
	}
}

Respons contoh

{
    "output": {
        "finish_reason": "stop",
        "session_id": "2ae51a5eac3b4b269834cf0695330a05",
        "text": "Saya dapat membantu Anda menyelesaikan berbagai tugas, termasuk tetapi tidak terbatas pada:\n\n1. Menjawab pertanyaan: Memberikan jawaban untuk pertanyaan berbasis pengetahuan di berbagai bidang.\n2. Pembuatan teks: Menulis cerita, artikel, puisi, dll.\n3. Asisten pemrograman: Memberikan panduan dan contoh kode untuk pemrograman.\n4. Obrolan percakapan: Melakukan percakapan sehari-hari, menemani Anda.\n5. Layanan terjemahan: Memberikan dukungan terjemahan antara beberapa bahasa.\n6. Kueri informasi: Menemukan berita, prakiraan cuaca, data sejarah, dan informasi lainnya.\n7. Panduan belajar: Membantu menjawab pertanyaan dalam proses belajar, memberikan saran belajar.\n\nJika Anda memiliki kebutuhan atau pertanyaan tertentu, Anda bisa memberi tahu saya, dan saya akan berusaha membantu Anda!"
    },
    "usage": {
        "models": [
            {
                "output_tokens": 132,
                "model_id": "qwen-max",
                "input_tokens": 87
            }
        ]
    },
    "request_id": "1289eb09-e4ed-9f9e-98ca-805c83b333a1"
}

Pass parameter kustom

Untuk menyesuaikan agen atau alur kerja yang sama dengan skenario bisnis yang berbeda, Anda dapat mengonfigurasi parameter kustom untuk plugin atau node, dan meneruskan parameter melalui biz_params saat memanggil aplikasi. Untuk mengetahui cara mengonfigurasi parameter tersebut, lihat Penerusan parameter aplikasi. Contoh kode:

  1. Plugin kustom parameter: Teruskan melalui Agent Application terkait atau melalui Plug-in Node dari Workflow Application terkait.

    Anda dapat meneruskan parameter dan informasi otentikasi tingkat pengguna untuk plugin kustom:

    • Parameter: user_defined_params.

    • Otentikasi tingkat pengguna: user_defined_tokens. user_token adalah informasi otentikasi yang diperlukan oleh plugin, seperti DASHSCOPE_API_KEY.

    Berikut ini adalah contoh Agent Application yang membutuhkan parameter index dan informasi otentikasi tingkat pengguna dari plugin terkait.

    Alat plugin hanya dapat dikaitkan dengan Agent Applications di ruang kerja yang sama.
    Ganti your_plugin_code dengan ID alat plugin terkait yang ditampilkan pada kartu plugin, dan teruskan pasangan nilai-kunci dari parameter input. Dalam contoh ini, article_index dengan nilai 2.

    Penerusan parameter

    Python

    Contoh permintaan

    import os
    from http import HTTPStatus
    # Versi SDK dashscope yang direkomendasikan >= 1.14.0
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        # Penerusan parameter input plugin kustom untuk aplikasi agen, ganti your_plugin_code dengan ID plugin kustom Anda
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}}}
    response = Application.call(
            # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            app_id='YOUR_APP_ID',
            prompt='Isi konvensi asrama',
            biz_params=biz_params)
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output.text))  # Proses output teks saja
        # print('%s\n' % (response.usage))

    Contoh tanggapan

    Aturan kedua Konvensi Asrama menyatakan:
    
    "Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain."
    
    Ini menunjukkan bahwa di dalam asrama, anggota harus menciptakan suasana positif untuk hidup dan belajar, mendukung dan membantu satu sama lain, serta belajar untuk memahami dan menghormati satu sama lain. Jika Anda perlu mengetahui tentang klausul lain dari konvensi, silakan beri tahu saya!
    Java

    Contoh permintaan

    import com.alibaba.dashscope.app.*;
    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.utils.Constants;
    
    public class Main {
        static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void appCall() throws NoApiKeyException, InputRequiredException {
            String bizParams =
                    // Penerusan parameter input plugin kustom untuk aplikasi agen, ganti {your_plugin_code} dengan ID plugin kustom Anda
                    "{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}}}";
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID")
                    .prompt("Isi konvensi asrama")
                    .bizParams(JsonUtils.parse(bizParams))
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());
        }
    
        public static void main(String[] args) {
            try {
                appCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }      

    Contoh tanggapan

    Pasal Dua Konvensi Asrama menetapkan:
    
    Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Ini menekankan bahwa dalam lingkungan hidup bersama, teman sekamar harus menjaga hubungan positif dan menciptakan suasana harmonis untuk hidup dan belajar melalui bantuan dan dukungan bersama. Jika Anda perlu mengetahui lebih lanjut tentang klausul spesifik, silakan beri tahu saya.
    HTTP
    curl

    Contoh permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Isi konvensi asrama",
            "biz_params": 
            {
                "user_defined_params":
                {
                    "{your_plugin_code}":
                        {
                        "article_index": 2
                        }
                }
            } 
        },
        "parameters":  {},
        "debug":{}
    }'
    Ganti YOUR_APP_ID dengan ID aplikasi sebenarnya.

    Contoh tanggapan

    {"output":
    {"finish_reason":"stop",
    "session_id":"e151267ffded4fbdb13d91439011d31e",
    "text":"Aturan kedua Konvensi Asrama menyatakan: "Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain." Ini menyiratkan bahwa dalam kehidupan asrama, semua orang harus mendukung satu sama lain dan bersama-sama menciptakan lingkungan hidup yang harmonis dan positif."},
    "usage":{"models":[{"output_tokens":94,"model_id":"qwen-max","input_tokens":453}]},
    "request_id":"a39fd2b5-7e2c-983e-84a1-1039f726f18a"}%
    PHP

    Contoh permintaan

    <?php
    
    # Jika variabel lingkungan belum dikonfigurasi, ganti dengan Dashscope API Key: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi sebenarnya
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    // Ganti {your_plugin_code} dengan ID plugin sebenarnya
    // Buat data permintaan
    $data = [
        "input" => [
            'prompt' => 'Isi konvensi asrama',
            'biz_params' => [
            'user_defined_params' => [
                '{your_plugin_code}' => [
                    'article_index' => 2            
                    ]
                ]
            ]
        ],
    ];
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding failed with error: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("curl Error: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    // Dekode data tanggapan
    $response_data = json_decode($response, true);
    // Tangani tanggapan
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "Tidak ada teks dalam tanggapan.\n";
        }
    }else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";}
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";} 
        else {
            echo "message=Unknown error\n";}
    }
    ?>
    

    Contoh tanggapan

    Pasal Dua Konvensi Asrama menetapkan: Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain. Ini menekankan bahwa dalam lingkungan hidup bersama, teman sekamar harus menjaga hubungan positif dan menciptakan suasana harmonis untuk hidup dan belajar melalui bantuan dan dukungan bersama. Jika Anda perlu mengetahui lebih lanjut tentang klausul spesifik, silakan beri tahu saya.
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi sebenarnya
        const pluginCode = 'YOUR_PLUGIN_CODE';// Ganti dengan ID plugin sebenarnya
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Isi konvensi asrama",
                biz_params: {
                    user_defined_params: {
                        [pluginCode]: {
                            // article_index adalah variabel untuk plugin kustom, ganti dengan variabel plugin sebenarnya
                            'article_index': 3
                        }
                    }
                }
            },
            parameters: {},
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                if (response.data.output && response.data.output.text) {
                    console.log(`${response.data.output.text}`);
                }
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Unknown error');
                }
            }
        } catch (error) {
            console.error(`Error calling DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Response status: ${error.response.status}`);
                console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    callDashScope();
    

    Contoh tanggapan

    Aturan ketiga Konvensi Asrama adalah sebagai berikut:
    
    Perhatikan keselamatan listrik, dan hilangkan bahaya kebakaran. Penggunaan nyala api terbuka, peralatan listrik yang tidak sah, berbagai kompor, dan barang-barang terlarang lainnya secara ketat dilarang di asrama. Juga dilarang menyimpan bahan peledak atau mudah terbakar dan menghubungkan daya secara pribadi.
    
    Jika Anda perlu mengetahui lebih banyak peraturan, silakan beri tahu saya.
    C#

    Contoh permintaan

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
            string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi sebenarnya
    
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("Pastikan Anda telah mengatur DASHSCOPE_API_KEY.");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string pluginCode = "{your_plugin_code}"; // Ganti {your_plugin_code} dengan ID plugin sebenarnya
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""Isi konvensi asrama"",
                        ""biz_params"": {{
                            ""user_defined_params"": {{
                                ""{pluginCode}"": {{
                                    ""article_index"": 2
                                }}
                            }}
                        }}
                    }},
                    ""parameters"": {{}},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error calling DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "237ca6187c814f3b9e7461090a5f8b74",
            "text": "Aturan kedua Konvensi Asrama adalah sebagai berikut:
            
    "Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.\"
    
    Ini menunjukkan bahwa di dalam asrama, anggota perlu menjalin hubungan positif dan menciptakan lingkungan hidup dan belajar yang harmonis melalui bantuan, kepedulian, dan dukungan bersama. Penting juga untuk memahami dan menerima perbedaan di antara teman sekamar dan berkomunikasi dengan tulus. Jika ada klausul lain atau konten spesifik yang ingin Anda ketahui, silakan beri tahu saya!"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 133,
                    "model_id": "qwen-max",
                    "input_tokens": 829
                }
            ]
        },
        "request_id": "64e8c359-d071-9d2e-bb94-187e86cc3a79"
    }
    
    Go

    Contoh permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID"           // Ganti dengan ID aplikasi sebenarnya
    	pluginCode := "YOUR_PLUGIN_CODE" // Ganti dengan ID plugin sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan Anda telah mengatur DASHSCOPE_API_KEY.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "Isi konvensi asrama",
    			"biz_params": map[string]interface{}{
    				"user_defined_params": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"article_index": 2,
    					},
    				},
    			},
    		},
    		"parameters": map[string]interface{}{},
    		"debug":      map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengubah JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Set header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }
    

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "860d2a4c1f3649ac880298537993cb51",
            "text": "Aturan kedua Konvensi Asrama adalah sebagai berikut:
    Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Ini menekankan bahwa dalam kehidupan asrama, teman sekamar harus menjaga bantuan yang baik sambil juga saling menghormati. Apakah Anda ingin mengetahui tentang klausul lain?"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 84,
                    "model_id": "qwen-max",
                    "input_tokens": 876
                }
            ]
        },
        "request_id": "0a250055-90a4-992d-9276-e268ad35d1ab"
    }
    

    Otentikasi tingkat pengguna

    Python

    Contoh permintaan

    from http import HTTPStatus
    import os
    # Versi SDK dashscope yang direkomendasikan >= 1.14.0
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        # Penerusan otentikasi plugin kustom untuk aplikasi agen, ganti your_plugin_code dengan ID plugin kustom Anda, dan YOUR_TOKEN dengan informasi otentikasi, seperti API key
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}},
        "user_defined_tokens": {
            "your_plugin_code": {
                "user_token": "YOUR_TOKEN"}}}
    response = Application.call(
                # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                api_key=os.getenv("DASHSCOPE_API_KEY"), 
                app_id='YOUR_APP_ID',
                prompt='Isi konvensi asrama',
                biz_params=biz_params)
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output.text))  # Proses output teks saja
        # print('%s\n' % (response.usage))

    Contoh tanggapan

    Aturan kedua Konvensi Asrama adalah sebagai berikut:
    
    Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Jika Anda memerlukan informasi lebih lanjut tentang aturan tambahan, silakan beri tahu saya.
    Java

    Contoh permintaan

    import com.alibaba.dashscope.app.*;
    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.utils.Constants;
    
    public class Main {
        static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void appCall() throws NoApiKeyException, InputRequiredException {
            String bizParams =
                    // Ganti {your_plugin_code} dengan ID plugin sebenarnya, YOUR_TOKEN dengan Token sebenarnya, seperti API key
                    "{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}},\"user_defined_tokens\":{\"{your_plugin_code}\":{\"user_token\":\"YOUR_TOKEN\"}}}";
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID")
                    .prompt("Isi konvensi asrama")
                    .bizParams(JsonUtils.parse(bizParams))
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());
        }
        public static void main(String[] args) {
            try {
                appCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Contoh tanggapan

    Aturan kedua Konvensi Asrama menyatakan:
    
    Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Jika Anda memerlukan informasi lebih lanjut tentang aturan tambahan, silakan beri tahu saya.
    HTTP
    curl

    Contoh permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Isi konvensi asrama",
            "biz_params": 
            {
                "user_defined_params":
                {
                    "{your_plugin_code}":
                        {
                        "article_index": 2
                        }
                },
                "user_defined_tokens":
                {
                    "{your_plugin_code}":
                        {
                        "user_token": "YOUR_TOKEN"
                        }
                }
            } 
        },
        "parameters":  {},
        "debug":{}
    }'
    
    
    
    Ganti YOUR_APP_ID dengan ID aplikasi sebenarnya.

    Contoh tanggapan

    {"output":{"finish_reason":"stop",
    "session_id":"d3b5c3e269dc40479255a7a02df5c630",
    "text":"Pasal kedua Konvensi Asrama menyatakan: "Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain." Ini menyiratkan bahwa dalam kehidupan asrama, semua orang harus mendukung satu sama lain dan bersama-sama menciptakan lingkungan hidup yang harmonis dan positif."},
    "usage":{"models":[{"output_tokens":80,"model_id":"qwen-max","input_tokens":432}]},
    "request_id":"1f77154c-edc3-9003-b622-816fa2f849cf"}%
    PHP

    Contoh permintaan

    <?php
    
    # Jika variabel lingkungan belum dikonfigurasi, ganti dengan Dashscope API Key: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi sebenarnya
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Buat data permintaan
    $data = [
        "input" => [
            'prompt' => 'Isi konvensi asrama',
            'biz_params' => [
            'user_defined_params' => [
                '{your_plugin_code}' => [// Ganti {your_plugin_code} dengan ID plugin sebenarnya
                    'article_index' => 2            
                    ]
                ],
            'user_defined_tokens' => [
                '{your_plugin_code}' => [// Ganti {your_plugin_code} dengan ID plugin sebenarnya
                    'user_token' => 'YOUR_TOKEN'// Ganti dengan informasi otentikasi sebenarnya, seperti API key
                ]
            ]
            ]
        ],
    ];
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding failed with error: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("curl Error: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    // Dekode data tanggapan
    $response_data = json_decode($response, true);
    // Tangani tanggapan
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "Tidak ada teks dalam tanggapan.\n";
        }
    }else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";}
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";} 
        else {
            echo "message=Unknown error\n";}
    }
    ?>
    

    Contoh tanggapan

    Aturan kedua Konvensi Asrama adalah sebagai berikut:
    
    > Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Jika Anda memerlukan informasi lebih lanjut tentang konvensi atau detail lainnya, jangan ragu untuk memberi tahu saya!
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi sebenarnya
        const pluginCode = 'YOUR_PLUGIN_CODE';// Ganti dengan ID plugin sebenarnya
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Isi konvensi asrama",
                biz_params: {
                    user_defined_params: {
                        [pluginCode]: {
                            // article_index adalah variabel untuk plugin kustom, ganti dengan variabel plugin sebenarnya
                            'article_index': 6
                        }
                    },
                    user_defined_tokens: {
                        [pluginCode]: {
                            // Ganti YOUR_TOKEN dengan informasi otentikasi sebenarnya, seperti API key
                            user_token: 'YOUR_TOKEN'
                        }
                    }
                }
            },
            parameters: {},
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                if (response.data.output && response.data.output.text) {
                    console.log(`${response.data.output.text}`);
                }
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Unknown error');
                }
            }
        } catch (error) {
            console.error(`Error calling DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Response status: ${error.response.status}`);
                console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    callDashScope();

    Contoh tanggapan

    Aturan keenam Konvensi Asrama menetapkan: Budayakan kebiasaan baik terkait rutinitas sehari-hari; setiap anggota asrama memiliki hak untuk istirahat dan tanggung jawab untuk memastikan hak orang lain untuk beristirahat. Jika Anda memerlukan informasi lebih lanjut tentang peraturan, silakan beri tahu saya.
    C#

    Contoh permintaan

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
            string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi sebenarnya
    
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("Pastikan Anda telah mengatur DASHSCOPE_API_KEY.");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string pluginCode = "your_plugin_code"; // Ganti your_plugin_code dengan ID plugin sebenarnya
                // Ganti YOUR_TOKEN dengan Token sebenarnya, seperti API key
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""Isi konvensi asrama"",
                        ""biz_params"": {{
                            ""user_defined_params"": {{
                                ""{pluginCode}"": {{
                                    ""article_index"": 2
                                }}
                            }},
                            ""user_defined_tokens"": {{
                                ""{pluginCode}"": {{
                                    ""user_token"": ""YOUR_TOKEN"" 
                                }}
                            }}
                        }}
                    }},
                    ""parameters"": {{}},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error calling DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "1a1913a9922a401f8eba36df8ea1a062",
            "text": "Aturan kedua Konvensi Asrama adalah sebagai berikut:
            
    Anggota asrama harus saling membantu, saling peduli, saling belajar, dan bersama-sama meningkatkan; bersikap toleran, rendah hati, saling menghormati, dan bersikap tulus satu sama lain.
    
    Jika ada klausul lain atau konten spesifik yang ingin Anda ketahui, silakan beri tahu saya!"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 66,
                    "model_id": "qwen-max",
                    "input_tokens": 802
                }
            ]
        },
        "request_id": "04bac806-c5e6-9fab-a846-a66641862be9"
    }
    Go

    Contoh permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID"           // Ganti dengan ID aplikasi sebenarnya
    	pluginCode := "YOUR_PLUGIN_CODE" // Ganti dengan ID plugin sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan Anda telah mengatur DASHSCOPE_API_KEY.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "Isi konvensi asrama",
    			"biz_params": map[string]interface{}{
    				"user_defined_params": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"article_index": 10,
    					},
    				},
    				"user_defined_tokens": map[string]interface{}{
    					pluginCode: map[string]interface{}{
    						"user_token": "YOUR_USER_TOKEN", // Ganti dengan Token otentikasi sebenarnya, seperti API key
    					},
    				},
    			},
    		},
    		"parameters": map[string]interface{}{},
    		"debug":      map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengubah JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Set header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }
    

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "b8e051ba7e954ff8919208e7b84430fa",
            "text": "Aturan kesepuluh Konvensi Asrama menyatakan bahwa anggota asrama harus bekerja sama untuk menciptakan dan memelihara lingkungan asrama yang bersih, rapi, estetis, dan kaya budaya. Jika Anda perlu memahami isi lengkap Konvensi Asrama, Anda mungkin perlu memeriksa klausul lain atau langsung berkonsultasi dengan departemen manajemen asrama. Apakah ada konten lebih spesifik yang ingin Anda ketahui?"
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 70,
                    "model_id": "qwen-max",
                    "input_tokens": 855
                }
            ]
        },
        "request_id": "0921ee34-2754-9616-a826-cea33a0e0a14"
    }
    
  2. Parameter node kustom: Teruskan melalui Workflow Application's Start Node, atau melalui Agent Orchestration Application's Application Node.

    Pada contoh berikut, Workflow Application mendefinisikan parameter city di Start Node. Masukkan variabel city dan query di Prompt, lalu Publish aplikasi tersebut.

    image

    Saat memanggil, teruskan city melalui biz_params dan teruskan query melalui prompt.

    Python

    Contoh permintaan

    import os
    from http import HTTPStatus
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    # Penerusan parameter kustom untuk aplikasi alur kerja dan orkestrasi agen
    biz_params = {"city": "Hangzhou"}
    response = Application.call(
        # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='YOUR_APP_ID',  # Ganti dengan ID aplikasi sebenarnya
        prompt='Kueri pembagian administratif kota ini',
        biz_params=biz_params  # Teruskan parameter bisnis
    )
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print(f'{response.output.text}')  # Proses output teks saja

    Contoh tanggapan

    Kota Hangzhou, sebagai ibu kota Provinsi Zhejiang, memiliki pembagian administratif yang terdiri dari 10 distrik: Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, dan Distrik Lin'an. Setiap distrik memiliki karakteristik dan fokus pengembangan uniknya sendiri.
    
    - Distrik Shangcheng: Terletak di area pusat Hangzhou, ini adalah salah satu pusat politik, ekonomi, dan budaya kota.
    - Distrik Gongshu: Terkenal dengan budaya kanalnya, fitur banyak situs warisan budaya dan sejarah.
    - Distrik Xihu: Terkenal dengan area pemandangan Danau Barat, tujuan penting untuk pariwisata.
    - Distrik Binjiang: Pusat industri teknologi tinggi, dengan perusahaan terkenal seperti Alibaba yang berlokasi di sini.
    - Distrik Xiaoshan: Distrik administratif di tenggara, mengalami pertumbuhan ekonomi pesat, terutama di sektor manufaktur.
    - Distrik Yuhang: Telah berkembang pesat dalam beberapa tahun terakhir, terutama di bidang ekonomi internet; markas besar Alibaba juga berlokasi di sini (Catatan: Markas besar Alibaba sebenarnya berada di Distrik Binjiang).
    - Distrik Linping: Distrik baru yang bertujuan untuk mendorong perkembangan ekonomi dan sosial komprehensif di wilayah tersebut.
    - Distrik Qiantang: Juga hasil penyesuaian administratif baru-baru ini, berfokus pada integrasi inovasi dan perlindungan ekologi.
    - Distrik Fuyang: Terletak di barat daya Hangzhou, dikenal dengan lanskap alam yang kaya dan sejarah serta budaya panjangnya.
    - Distrik Lin'an: Terletak di barat Hangzhou, terkenal dengan lingkungan ekologi yang indah dan warisan budaya yang mendalam.
    
    Harap dicatat bahwa perencanaan kota dapat berubah seiring waktu, dan disarankan untuk merujuk ke informasi resmi terbaru.

    Java

    Contoh permintaan

    import com.alibaba.dashscope.app.*;
    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 com.alibaba.dashscope.utils.Constants;
    
    public class Main {
        static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void appCall() throws NoApiKeyException, InputRequiredException {
    
            String bizParams =
                    "{\"city\":\"Hangzhou\"}";
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID")
                    .prompt("Kueri pembagian administratif kota ini")
                    .bizParams(JsonUtils.parse(bizParams))
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());
        }
    
        public static void main(String[] args) {
            try {
                appCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Contoh tanggapan

    Kota Hangzhou adalah ibu kota Provinsi Zhejiang dan pembagian administrasinya terutama mencakup 10 distrik: Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, dan Distrik Lin'an. Setiap distrik memiliki karakteristik dan fokus pengembangan uniknya sendiri.
    
    - Distrik Shangcheng: Terletak di pusat kota Hangzhou, menampung banyak situs warisan budaya dan sejarah.
    - Distrik Gongshu: Dikenal dengan budaya Kanal Besar, juga merupakan area komersial dan residensial penting.
    - Distrik Xihu: Terkenal dengan pemandangan alamnya yang indah, termasuk area pemandangan Danau Barat yang terkenal.
    - Distrik Binjiang: Pusat industri teknologi tinggi, rumah bagi Zona Pengembangan Industri Teknologi Tinggi Nasional Hangzhou.
    - Distrik Xiaoshan: Mengalami pertumbuhan ekonomi pesat, terutama menonjol di sektor manufaktur.
    - Distrik Yuhang: Telah bangkit pesat dalam beberapa tahun terakhir mengikuti pengembangan perusahaan teknologi tinggi seperti Alibaba.
    - Distrik Linping: Dibentuk pada tahun 2021 dari bagian Distrik Yuhang sebelumnya, berfokus pada konstruksi ekologis dan inovasi teknologi.
    - Distrik Qiantang: Juga didirikan sebagai distrik baru pada tahun 2021, diposisikan sebagai hub transportasi timur dan area pengembangan industri baru Hangzhou.
    - Distrik Fuyang: Kota budaya dengan sejarah panjang dan salah satu basis penting untuk industri kertas.
    - Distrik Lin'an: Terletak di bagian barat Hangzhou, terkenal dengan cakupan hutan yang tinggi dan lingkungan ekologi yang baik.
    
    Distrik-distrik ini bersama-sama membentuk tata letak geografis dan struktur sosial-ekonomi unik kota Hangzhou. Jika Anda tertarik pada distrik tertentu atau membutuhkan informasi lebih rinci, silakan beri tahu saya!

    HTTP

    curl

    Contoh permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Kueri pembagian administratif kota ini",
            "biz_params": {
            "city": "Hangzhou"}
        },
        "parameters":  {}
    }'
    
    Ganti YOUR_APP_ID dengan ID aplikasi sebenarnya.

    Contoh tanggapan

    {
      "output": {
        "finish_reason": "stop",
        "session_id": "c211219896004b50a1f6f66f2ec5413e",
        "text": "Kota Hangzhou memiliki yurisdiksi atas 10 distrik, 1 kabupaten, dan mengelola 2 kota tingkat kabupaten, sebagai berikut:
    Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, dan Distrik Lin'an, Kabupaten Tonglu, Kabupaten Chun'an, Kota Jiande, Kota Zhuji.
    Perhatikan bahwa Kota Zhuji secara langsung berada di bawah administrasi Provinsi Zhejiang dan dikelola bersama oleh kota Hangzhou dan Shaoxing."
      },
      "usage": {},
      "request_id": "02c3c9e1-7912-9505-91aa-248d04fb1f5d"
    }
    
    PHP

    Contoh permintaan

    <?php
    
    # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi sebenarnya
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Buat data permintaan
    $data = [
        "input" => [
            'prompt' => 'Kueri pembagian administratif kota ini',
            'biz_params' => [
                'city' => 'Hangzhou'
            ]
        ],
    ];
    // Enkode data ke JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding failed with error: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("curl Error: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    // Tutup sesi curl
    curl_close($ch);
    
    // Dekode data tanggapan
    $response_data = json_decode($response, true);
    
    // Tangani tanggapan
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "Tidak ada teks dalam tanggapan.\n";
        }
    } else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";
        }
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";
        } else {
            echo "message=Unknown error\n";
        }
    }
    

    Contoh tanggapan

    Hangzhou adalah ibu kota Provinsi Zhejiang dan pembagian administrasinya terutama mencakup 10 distrik: Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, dan Distrik Lin'an.
    
    Setiap distrik memiliki karakteristik dan fokus pengembangan uniknya sendiri, seperti:
    - **Distrik Shangcheng** dan **Distrik Gongshu** terletak di pusat Hangzhou, dikenal dengan perdagangan yang ramai dan sejarah yang kaya.
    - **Distrik Xihu** terkenal dengan pemandangan alam yang indah, termasuk area pemandangan Danau Barat yang terkenal.
    - **Distrik Binjiang** terkenal dengan pengembangan industri teknologi tinggi.
    - **Distrik Xiaoshan** dan **Distrik Yuhang**, di antara lainnya, telah muncul pesat sebagai distrik perkotaan baru atau zona pengembangan ekonomi akibat pertumbuhan kota baru-baru ini.
    - **Distrik Lin'an** dan **Distrik Fuyang** telah mempertahankan lebih banyak pemandangan alam dan daya tarik pedesaan.
    
    Harap dicatat bahwa pembagian administratif Tiongkok dapat berubah berdasarkan kebijakan nasional, jadi harap merujuk ke pengumuman resmi terbaru untuk informasi terkini.
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi sebenarnya
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Kueri pembagian administratif kota ini",
                biz_params: {
                    'city': 'Hangzhou',
                },
            },
            parameters: {},
            debug: {},
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                if (response.data.output && response.data.output.text) {
                    console.log(`${response.data.output.text}`);
                }
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Unknown error');
                }
            }
        } catch (error) {
            console.error(`Error calling DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Response status: ${error.response.status}`);
                console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();
    

    Contoh tanggapan

    Hangzhou adalah ibu kota Provinsi Zhejiang, dan pembagian administrasinya mencakup 10 distrik, secara spesifik:
    
    1. **Distrik Shangcheng (Shàngchéng Qū)**: Terletak di bagian selatan pusat Hangzhou, ini adalah salah satu area paling bersejarah dan signifikan secara budaya di kota tersebut.
    2. **Distrik Gongshu (Gōngshù Qū)**: Awalnya dibentuk dari penggabungan Distrik Xiacheng dan Distrik Gongshu, terletak di bagian utara Hangzhou.
    3. **Distrik Xihu (Xīhú Qū)**: Dikenal dengan Situs Warisan Dunia Danau Barat, menampilkan banyak pemandangan alam dan budaya yang melimpah.
    4. **Distrik Binjiang (Bīnjiāng Qū)**: Terletak di tepi selatan Sungai Qiantang, ini adalah pusat industri teknologi tinggi.
    5. **Distrik Xiaoshan (Xiāoshān Qū)**: Terletak di bagian timur Hangzhou, ini adalah salah satu basis manufaktur utama di Tiongkok.
    6. **Distrik Yuhang (Yúháng Qū)**: Dulunya merupakan rumah bagi Linping, salah satu dari empat kota kuno terkenal di Tiongkok, kini telah berkembang menjadi zona pengembangan ekonomi penting di Hangzhou.
    7. **Distrik Fuyang (Fùyáng Qū)**: Terletak di barat daya Hangzhou, dinamai berdasarkan Sungai Fuchun yang mengalir melewatinya.
    8. **Distrik Lin'an (Lín'ān Qū)**: Berada di area pegunungan barat Hangzhou, dikenal dengan pemandangan alamnya yang indah.
    9. **Distrik Qiantang (Qiántáng Qū)**: Didirikan pada tahun 2021, dibentuk dari Klaster Industri Dajiangdong sebelumnya dan bagian dari Distrik Xiaoshan, bertujuan untuk mendorong perkembangan di wilayah timur Hangzhou.
    10. **Distrik Linping (Lín Píng Qū)**: Divisi administratif baru yang dipisahkan dari Distrik Yuhang, terutama mencakup area seperti Jalan Linping yang dulunya merupakan bagian dari Distrik Yuhang.
    
    Informasi ini mencerminkan situasi hingga pembaruan terakhir saya. Harap dicatat bahwa pembagian administratif dapat berubah, jadi silakan merujuk ke pengumuman resmi terbaru untuk informasi terkini.
    C#

    Contoh permintaan

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            //Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key. 
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");
            string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi sebenarnya
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string jsonContent = @"{
                    ""input"": {
                        ""prompt"": ""Kueri pembagian administratif kota ini"",
                        ""biz_params"":{
                            ""city"":""Hangzhou""
                        }
                    },
                    ""parameters"": {},
                    ""debug"": {}
                }";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error calling DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "7a9ff57eec7d475fa5d487de5f5178d2",
            "text": "Hangzhou adalah ibu kota Provinsi Zhejiang, dan memiliki yurisdiksi atas 10 distrik: Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, dan Distrik Lin'an. Setiap distrik memiliki lokasi geografis unik dan fitur pengembangan. Sebagai contoh, Distrik Xihu terkenal dengan pemandangan alamnya yang indah, terutama Danau Barat yang terkenal; sementara Distrik Binjiang lebih dikenal dengan pengembangan industri teknologi tinggi. Selain itu, dengan pertumbuhan kota, pembagian administratif dapat mengalami penyesuaian. Silakan merujuk ke pengumuman resmi terbaru untuk informasi paling mutakhir."
        },
        "usage": {
    
        },
        "request_id": "d2c2fcc9-f821-98c9-9430-8704a2a41225"
    }
    Go

    Contoh permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan Anda telah mengatur DASHSCOPE_API_KEY.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "Kueri pembagian administratif kota ini",
    			"biz_params": map[string]interface{}{
    				"city": "Hangzhou",
    			},
    		},
    		"parameters": map[string]interface{}{},
    		"debug":      map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengubah JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Set header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }
    

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "2dc3e1a9dcd248c6bb9ca92bffc3e745",
            "text": "Hangzhou, disingkat sebagai 'Hang,' adalah ibu kota Provinsi Zhejiang. Menurut penyesuaian pembagian administratif terbaru, Hangzhou saat ini mengawasi 10 distrik, 2 kota tingkat kabupaten, dan 1 kabupaten, secara spesifik:
    
    - Distrik (10): Distrik Shangcheng, Distrik Gongshu, Distrik Xihu, Distrik Binjiang, Distrik Xiaoshan, Distrik Yuhang, Distrik Linping, Distrik Qiantang, Distrik Fuyang, Distrik Lin'an.
    - Kota Tingkat Kabupaten (2): Kota Jiande, Kabupaten Tonglu (Catatan bahwa Tonglu sebenarnya diperlakukan sebagai kota tingkat kabupaten di sini, tetapi lebih akuratnya, itu adalah kabupaten).
    - Kabupaten (1): Kabupaten Chun'an.
    
    Harap diingat bahwa wilayah administratif dapat berubah seiring waktu, jadi harap merujuk ke pengumuman resmi terbaru untuk informasi paling mutakhir. Informasi di atas dikompilasi berdasarkan data relatif terbaru; untuk perubahan terbaru, kunjungi situs web resmi pemerintah untuk informasi paling akurat."
        },
        "usage": {
    
        },
        "request_id": "d3c8f368-b645-9446-bfe4-20ca51821a02"
    }

Keluaran Streaming

Dalam mode keluaran streaming, model menghasilkan hasil perantara, dan hasil akhir terbentuk dengan menggabungkan hasil perantara ini. Anda dapat membaca keluaran model saat dihasilkan, sehingga mempersingkat waktu tunggu untuk tanggapan model. Tergantung pada metode pemanggilan, Anda dapat mengatur parameter untuk mengimplementasikan keluaran streaming:

  • Python SDK: Atur stream ke True.

  • Java SDK: Panggil melalui antarmuka streamCall.

  • HTTP: Tentukan X-DashScope-SSE sebagai enable di Header.

keluaran streaming inkrementalincremental_output (incrementalOutput untuk Java) ke true. Untuk HTTP, atur incremental_output ke true dan letakkan dalam objek parameter.

Contoh:

  • Untuk Agent Application:

    Python

    Permintaan Contoh

    import os
    from http import HTTPStatus
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    responses = Application.call(
                # Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                api_key=os.getenv("DASHSCOPE_API_KEY"), 
                app_id='YOUR_APP_ID',
                prompt='Siapa kamu?',
                stream=True,  # Keluaran streaming
                incremental_output=True)  # Keluaran inkremental
    
    for response in responses:
        if response.status_code != HTTPStatus.OK:
            print(f'request_id={response.request_id}')
            print(f'code={response.status_code}')
            print(f'message={response.message}')
            print(f'Lihat dokumentasi: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
        else:
            print(f'{response.output.text}\n')  # Proses untuk mengeluarkan hanya teks

    Tanggapan Contoh

    Saya adalah
    
    Alibaba
    
    Cloud
    
    model bahasa skala besar,
    
    nama saya adalah
    
    Qwen.

    Java

    Permintaan Contoh

    // Versi dashscope SDK yang direkomendasikan >= 2.15.0
    import com.alibaba.dashscope.app.*;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.InputRequiredException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import io.reactivex.Flowable;// Keluaran streaming
    // Implementasi aplikasi agen untuk hasil keluaran streaming
    
    import com.alibaba.dashscope.utils.Constants;
    
    public class Main {
        static {
          Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void streamCall() throws NoApiKeyException, InputRequiredException {
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: .apiKey("sk-xxx"). Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    // Ganti dengan ID aplikasi aktual
                    .appId("YOUR_APP_ID")
                    .prompt("Siapa kamu?")
                    // Keluaran inkremental
                    .incrementalOutput(true)
                    .build();
            Application application = new Application();
            // .streamCall(): Konten keluaran streaming
            Flowable<ApplicationResult> result = application.streamCall(param);
            result.blockingForEach(data -> {
                System.out.printf("%s\n",
                        data.getOutput().getText());
            });
        }
        public static void main(String[] args) {
            try {
                streamCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Pengecualian: %s", e.getMessage());
                System.out.println("Lihat dokumentasi: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Tanggapan Contoh

    Saya
    adalah
    Cloud
    model bahasa skala besar,
    nama saya adalah
    Qwen
    .

    HTTP

    curl

    Permintaan Contoh

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --header 'X-DashScope-SSE: enable' \
    --data '{
        "input": {
            "prompt": "Siapa kamu?"
    
        },
        "parameters":  {
            "incremental_output":true
        },
        "debug": {}
    }'
    Ganti YOUR_APP_ID dengan ID aplikasi aktual.

    Tanggapan Contoh

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":"Saya"},"usage":{"models":[{"input_tokens":203,"output_tokens":1,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":"adalah"},"usage":{"models":[{"input_tokens":203,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":" Alibaba"},"usage":{"models":[{"input_tokens":203,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":" Cloud"},"usage":{"models":[{"input_tokens":203,"output_tokens":4,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":"'s large-scale language"},"usage":{"models":[{"input_tokens":203,"output_tokens":8,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":" model, my name is"},"usage":{"models":[{"input_tokens":203,"output_tokens":12,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":" Qwen"},"usage":{"models":[{"input_tokens":203,"output_tokens":16,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"null","text":"."},"usage":{"models":[{"input_tokens":203,"output_tokens":17,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    
    id:9
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"70ac158ae65f4764b9228a52951f3711","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":203,"output_tokens":17,"model_id":"qwen-max"}]},"request_id":"f66273ce-1a4d-9107-9c8a-da2a0f7267b5"}
    PHP

    Permintaan Contoh

    <?php
    
    // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: $api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual
    
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Konstruksi data permintaan
    $data = [
        "input" => [
            'prompt' => 'Siapa kamu?'],
        "parameters" => [
            'incremental_output' => true]];// Keluaran inkremental
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding gagal dengan kesalahan: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, curlOPT_RETURNTRANSFER, false); // Jangan kembalikan data yang ditransfer
    curl_setopt($ch, curlOPT_WRITEFUNCTION, function ($ch, $string) {
        echo $string; // Proses data streaming
        return strlen($string);
    });
    curl_setopt($ch, curlOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key,
        'X-DashScope-SSE: enable' // Keluaran streaming
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("Kesalahan curl: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    
    if ($status_code != 200) {
        echo "Kode Status HTTP: $status_code\n";
        echo "Permintaan Gagal.\n";
    }
    ?>

    Tanggapan Contoh

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":"Saya adalah Alibaba"},"usage":{"models":[{"input_tokens":58,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":" Cloud"},"usage":{"models":[{"input_tokens":58,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":"'s"},"usage":{"models":[{"input_tokens":58,"output_tokens":4,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":" a large-scale language"},"usage":{"models":[{"input_tokens":58,"output_tokens":8,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":" model, my name is"},"usage":{"models":[{"input_tokens":58,"output_tokens":12,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":" Qwen"},"usage":{"models":[{"input_tokens":58,"output_tokens":16,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"null","text":"."},"usage":{"models":[{"input_tokens":58,"output_tokens":17,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"232f8a3622774c5182997c6f262c59f9","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":58,"output_tokens":17,"model_id":"qwen-max"}]},"request_id":"e682ec04-28a5-9957-ac48-76f87693cab5"}
    
    Node.js

    Dependensi:

    npm install axios

    Permintaan Contoh

    1. Keluaran respons lengkap

    const axios = require('axios');
    
    async function callDashScope() {
        // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi aktual
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Siapa kamu?"
            },
            parameters: {
                'incremental_output' : 'true' // Keluaran inkremental
            },
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json',
                    'X-DashScope-SSE': 'enable' // Keluaran streaming
                },
                responseType: 'stream' // Untuk menangani respons streaming
            });
    
            if (response.status === 200) {
                // Proses respons streaming
                response.data.on('data', (chunk) => {
                    console.log(`Received chunk: ${chunk.toString()}`);
                });
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Kesalahan tidak dikenal');
                }
            }
        } catch (error) {
            console.error(`Error calling DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Response status: ${error.response.status}`);
                console.error(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();

    Perluas panel untuk melihat kode contoh:

    2. Keluaran hanya bidang teks

    const axios = require('axios');
    const { Transform } = require('stream');
    
    async function callDashScope() {
        // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: apiKey='sk-xxx'. Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: { prompt: "Siapa kamu?" },
            parameters: { incremental_output: true }, // Keluaran inkremental
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json',
                    'X-DashScope-SSE': 'enable' // Keluaran streaming
                },
                responseType: 'stream' // Untuk menangani respons streaming
            });
    
            if (response.status === 200) {
                // Transformer parsing protokol SSE untuk keluaran streaming
                const sseTransformer = new Transform({
                    transform(chunk, encoding, callback) {
                        this.buffer += chunk.toString();
                        
                        // Pisahkan berdasarkan acara SSE (dua baris baru)
                        const events = this.buffer.split(/\n\n/);
                        this.buffer = events.pop() || ''; // Simpan bagian yang tidak lengkap
                        
                        events.forEach(eventData => {
                            const lines = eventData.split('\n');
                            let textContent = '';
                            
                            // Parsing isi acara
                            lines.forEach(line => {
                                if (line.startsWith('data:')) {
                                    try {
                                        const jsonData = JSON.parse(line.slice(5).trim());
                                        if (jsonData.output?.text) {
                                            textContent = jsonData.output.text;
                                        }
                                    } catch(e) {
                                        console.error('Kesalahan parsing JSON:', e.message);
                                    }
                                }
                            });
    
                            if (textContent) {
                                // Tambahkan line feed dan dorong
                                this.push(textContent + '\n');
                            }
                        });
                        
                        callback();
                    },
                    flush(callback) {
                        if (this.buffer) {
                            this.push(this.buffer + '\n');
                        }
                        callback();
                    }
                });
                sseTransformer.buffer = '';
    
                // Pemrosesan pipeline
                response.data
                    .pipe(sseTransformer)
                    .on('data', (textWithNewline) => {
                        process.stdout.write(textWithNewline); // Output otomatis dengan line feed
                    })
                    .on('end', () => console.log(""))
                    .on('error', err => console.error("Pipeline error:", err));
    
            } else {
                console.log("Permintaan gagal, kode status:", response.status);
                response.data.on('data', chunk => console.log(chunk.toString()));
            }
        } catch (error) {
            console.error(`Pemanggilan API gagal: ${error.message}`);
            if (error.response) {
                console.error(`Kode status: ${error.response.status}`);
                error.response.data.on('data', chunk => console.log(chunk.toString()));
            }
        }
    }
    
    callDashScope();

    Tanggapan Contoh

    1. Keluaran respons lengkap
    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"bb9fb75687104983ae47fc1f34ef36a1","finish_reason":"null","text":"Halo!"},"usage":{"models":[{"input_tokens":56,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"d96ec7e0-5ad8-9f19-82c1-9c87f86e12b8"}
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"bb9fb75687104983ae47fc1f34ef36a1","finish_reason":"null","text":" Apakah ada"},"usage":{"models":[{"input_tokens":56,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"d96ec7e0-5ad8-9f19-82c1-9c87f86e12b8"}
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"bb9fb75687104983ae47fc1f34ef36a1","finish_reason":"null","text":" sesuatu yang bisa saya bantu?"},"usage":{"models":[{"input_tokens":56,"output_tokens":7,"model_id":"qwen-max"}]},"request_id":"d96ec7e0-5ad8-9f19-82c1-9c87f86e12b8"}
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"bb9fb75687104983ae47fc1f34ef36a1","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":56,"output_tokens":7,"model_id":"qwen-max"}]},"request_id":"d96ec7e0-5ad8-9f19-82c1-9c87f86e12b8"}
    2. Keluaran hanya bidang teks
    Saya
    adalah
    Cloud
    model bahasa skala besar, saya
    disebut 
    Qwen.
    C#

    Permintaan Contoh

    using System.Net;
    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");
            string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi aktual
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                client.DefaultRequestHeaders.Add("X-DashScope-SSE", "enable");
    
                string jsonContent = @"{
                    ""input"": {
                        ""prompt"": ""Siapa kamu""
                    },
                    ""parameters"": {""incremental_output"": true},
                    ""debug"": {}
                }";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                try
                {
                    var request = new HttpRequestMessage(HttpMethod.Post, url);
                    request.Content = content;
    
                    HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
                    
    
                    if (response.IsSuccessStatusCode)
                    {
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                        using (var stream = await response.Content.ReadAsStreamAsync())
                        using (var reader = new StreamReader(stream))
                        {
                            string? line; // Deklarasikan sebagai string nullable
                            while ((line = await reader.ReadLineAsync()) != null)
                            {
                                if (line.StartsWith("data:"))
                                {
                                    string data = line.Substring(5).Trim();
                                    Console.WriteLine(data);
                                    Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error memanggil DashScope: {ex.Message}");
                }
            }
        }
    }

    Tanggapan Contoh

    2025-02-14 16:22:08:482
    Permintaan berhasil:
    2025-02-14 16:22:09:098
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":"I"},"usage":{"models":[{"input_tokens":51,"output_tokens":1,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:099
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" am"},"usage":{"models":[{"input_tokens":51,"output_tokens":2,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:172
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" Alibaba"},"usage":{"models":[{"input_tokens":51,"output_tokens":3,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:172
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" Cloud's large-scale language"},"usage":{"models":[{"input_tokens":51,"output_tokens":7,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:463
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" model, my name is"},"usage":{"models":[{"input_tokens":51,"output_tokens":11,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:618
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" Qwen"},"usage":{"models":[{"input_tokens":51,"output_tokens":15,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:777
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":". I am your AI"},"usage":{"models":[{"input_tokens":51,"output_tokens":19,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:09:932
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" assistant,"},"usage":{"models":[{"input_tokens":51,"output_tokens":23,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:091
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" I can answer questions,"},"usage":{"models":[{"input_tokens":51,"output_tokens":27,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:244
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" create text, such as"},"usage":{"models":[{"input_tokens":51,"output_tokens":31,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:389
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" writing stories, writing"},"usage":{"models":[{"input_tokens":51,"output_tokens":35,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:525
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" documents, writing"},"usage":{"models":[{"input_tokens":51,"output_tokens":39,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:662
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" emails, writing scripts"},"usage":{"models":[{"input_tokens":51,"output_tokens":43,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:10:902
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":", and I can also express"},"usage":{"models":[{"input_tokens":51,"output_tokens":47,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:11:062
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":" opinions, play games, etc"},"usage":{"models":[{"input_tokens":51,"output_tokens":51,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:11:233
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"null","text":"."},"usage":{"models":[{"input_tokens":51,"output_tokens":52,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:11:309
    {"output":{"session_id":"c2265dd99e4b40e0b5b3638824f21dd9","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":51,"output_tokens":52,"model_id":"qwen-plus"}]},"request_id":"2d40821d-98bb-960e-999d-c456af8bc9e9"}
    2025-02-14 16:22:11:388
    Go

    Contoh permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    	"strings"
    	"time"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi yang sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat badan permintaan, di mana incremental_output menunjukkan apakah akan mengaktifkan tanggapan aliran
    	requestBody := map[string]interface{}{
    		"input": map[string]string{
    			"prompt": "Siapa kamu?",
    		},
    		"parameters": map[string]interface{}{
    			"incremental_output": true,
    		},
    		"debug": map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal membuat JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Atur header permintaan, di mana X-DashScope-SSE diaktifkan menunjukkan mengaktifkan tanggapan aliran
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    	req.Header.Set("X-DashScope-SSE", "enable")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	if resp.StatusCode != http.StatusOK {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		body, _ := io.ReadAll(resp.Body)
    		fmt.Println(string(body))
    		return
    	}
    
    	// Proses tanggapan aliran
    	reader := io.Reader(resp.Body)
    	buf := make([]byte, 1024)
    	for {
    		n, err := reader.Read(buf)
    		if n > 0 {
    			data := string(buf[:n])
    			lines := strings.Split(data, "\n")
    			for _, line := range lines {
    				line = strings.TrimSpace(line)
    				if len(line) >= 5 && line[:5] == "data:" {
    					timestamp := time.Now().Format("2006-01-02 15:04:05.000")
    					fmt.Printf("%s: %s\n", timestamp, line[5:])
    				} else if len(line) > 0 {
    					fmt.Println(line)
    				}
    			}
    		}
    		if err != nil {
    			if err == io.EOF {
    				break
    			}
    			fmt.Printf("Kesalahan membaca tanggapan: %v\n", err)
    			break
    		}
    	}
    }
    

    Contoh tanggapan

    id:1
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:09.050: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":"Saya adalah"},"usage":{"models":[{"input_tokens":262,"output_tokens":1,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:2
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.016: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" Tong"},"usage":{"models":[{"input_tokens":262,"output_tokens":2,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:3
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.016: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":"yi"},"usage":{"models":[{"input_tokens":262,"output_tokens":3,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:4
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.016: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" Qianwen, dikembangkan oleh"},"usage":{"models":[{"input_tokens":262,"output_tokens":7,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:5
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.017: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" Alibaba Cloud"},"usage":{"models":[{"input_tokens":262,"output_tokens":11,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:6
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.017: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":", sebuah asisten AI. Saya"},"usage":{"models":[{"input_tokens":262,"output_tokens":15,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:7
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.017: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" dirancang untuk menjawab"},"usage":{"models":[{"input_tokens":262,"output_tokens":19,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:8
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.018: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" berbagai pertanyaan, memberikan"},"usage":{"models":[{"input_tokens":262,"output_tokens":23,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:9
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.102: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" informasi dan terlibat"},"usage":{"models":[{"input_tokens":262,"output_tokens":27,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:10
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.257: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" dalam percakapan. Butuh"},"usage":{"models":[{"input_tokens":262,"output_tokens":31,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:11
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.414: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"null","text":" bantuan?"},"usage":{"models":[{"input_tokens":262,"output_tokens":34,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
    id:12
    event:result
    :HTTP_STATUS/200
    2025-02-13 18:21:10.481: {"output":{"session_id":"830189188149488794708ae012f4c595","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":262,"output_tokens":34,"model_id":"qwen-plus"}]},"request_id":"2563953d-914c-9256-ae1a-b62beb957112"}
  • Workflow Application menyediakan dua mode keluaran streaming, ditentukan oleh nilai dari flow_stream_mode.

    Nilai parameter dan metode penggunaan:

    • full_thoughts (nilai default):

      • Deskripsi: Hasil streaming dari semua node akan dikeluarkan di bidang thoughts.

      • Persyaratan: Anda juga harus mengatur has_thoughts ke True.

    • agent_format:

      • Deskripsi: Mode keluaran yang sama dengan aplikasi agen.

      • Efek: Di konsol, Anda dapat mengaktifkan sakelar Response untuk node tertentu, dan hasil streaming dari node tersebut akan disertakan dalam bidang text dari output.

      • Skenario: Cocok untuk skenario di mana Anda hanya peduli pada keluaran node perantara tertentu.

      Sakelar Response hanya tersedia di node transformasi teks, node LLM, dan node akhir (sakelar ini dihidupkan secara default untuk node akhir). Node yang tidak mendukung keluaran streaming akan mengeluarkan kontennya sekaligus.

    Contoh:

    full_thoughts

    Ini adalah dipublikasikan Workflow Application dengan keluaran streaming.

    image

    Python

    Permintaan Contoh

    import os
    from http import HTTPStatus
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        "city": "Hangzhou"}
    responses = Application.call(
        # Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx". Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # Ganti dengan ID aplikasi aktual
        app_id='YOUR_APP_ID',
        prompt='Halo',
        biz_params=biz_params,
        # Aktifkan keluaran streaming
        stream=True,
        # incremental_output=true mengaktifkan keluaran inkremental, false menonaktifkannya, defaultnya adalah false jika tidak ditentukan
        incremental_output=True,
        # Perlu mengatur has_thoughts ke True
        has_thoughts=True)
    
    for response in responses:
        if response.status_code != HTTPStatus.OK:
            print(f'request_id={response.request_id}')
            print(f'code={response.status_code}')
            print(f'message={response.message}')
            print(f'Lihat dokumentasi: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
        else:
            print(f'{response.output.thoughts}\n')  # Proses keluaran untuk mengembalikan hanya thoughts; informasi proses dikembalikan di bidang thoughts dari output

    Tanggapan Contoh

    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_99FA","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_99FA"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"Dongpo\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_99FA"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\" Pork, West Lake Vinegar Fish,\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_99FA"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\" Longjing Shrimp, Hangzhou Pa\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_99FA"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"stry, Beggar\'s Chicken\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_qkYJ","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_qkYJ"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_2","nodeResult":"{\\"result\\":\\"West Lake,\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_qkYJ"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_2","nodeResult":"{\\"result\\":\\" Lingyin Temple, Xixi\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_qkYJ"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_2","nodeResult":"{\\"result\\":\\" National Wetland Park, Hefang\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_qkYJ"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_2","nodeResult":"{\\"result\\":\\" Street, Hangzhou Botanical Garden\\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_qkYJ"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    
    [ApplicationThought(thought=None, action_type=None, response='{"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_1","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_99FA","nodeExecTime":"1027ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"LLM_2","nodeResult":"{\\"result\\":\\"\\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_qkYJ","nodeExecTime":"1048ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None), ApplicationThought(thought=None, action_type=None, response='{"nodeName":"End","nodeResult":"{\\"result\\":\\"What do you think about our recommendation?\\"}","nodeType":"End","nodeStatus":"success","nodeId":"End_DrQn7F","nodeExecTime":"0ms"}', action_name=None, action=None, action_input_stream=None, action_input=None, observation=None)]
    Java

    Permintaan Contoh

    // Versi dashscope SDK yang direkomendasikan >= 2.15.0
    import com.alibaba.dashscope.app.*;
    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 com.alibaba.dashscope.utils.Constants;
    
    public class Main {
        static {
          Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void streamCall() throws NoApiKeyException, InputRequiredException {
            String bizParams =
                    "{\"city\":\"Hangzhou\"}";
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan: .apiKey("sk-xxx"). Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID") // Ganti dengan ID aplikasi aktual
                    .prompt("Halo")
                    .bizParams(JsonUtils.parse(bizParams))
                    .incrementalOutput(true) // Keluaran inkremental
                    .hasThoughts(true) // Untuk aplikasi alur kerja untuk mengimplementasikan keluaran streaming, parameter ini harus diatur ke true, dan hasil dapat dilihat di bidang thoughts
                    .build();
    
            Application application = new Application();
            Flowable<ApplicationResult> result = application.streamCall(param); // Implementasi keluaran streaming
            result.blockingForEach(data -> {
                System.out.printf("%s\n",data.getOutput().getThoughts());// Proses keluaran untuk menampilkan hanya bidang thoughts
            });
        }
    
        public static void main(String[] args) {
            try {
                streamCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Pengecualian: %s", e.getMessage());
                System.out.println("Lihat dokumentasi: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Tanggapan Contoh

    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Ilo9","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_Ilo9"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"West Lake Fish in Vinegar Sauce\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_Ilo9"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\",\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_Ilo9"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"Dongpo Pork,Zhiwei Steamed\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_Ilo9"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\",Longjing Shrimp\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_Ilo9"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\",Beggar's Chicken\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_vQDv","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_vQDv"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_kBgf","nodeResult":"{\"result\":\"West Lake,\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_vQDv"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_kBgf","nodeResult":"{\"result\":\"Ling\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_vQDv"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_kBgf","nodeResult":"{\"result\":\"yin Temple,Songcheng\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_vQDv"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_kBgf","nodeResult":"{\"result\":\",Xixi Wetland,Thousand Island Lake\"}","nodeType":"LLM","nodeStatus":"executing","nodeId":"LLM_vQDv"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    [ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"Start","nodeType":"Start","nodeStatus":"success","nodeId":"Start_bYxoRU","nodeExecTime":"0ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_Bsvj","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_Ilo9","nodeExecTime":"1486ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"LLM_kBgf","nodeResult":"{\"result\":\"\"}","nodeType":"LLM","nodeStatus":"success","nodeId":"LLM_vQDv","nodeExecTime":"855ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null), ApplicationOutput.Thought(thought=null, actionType=null, response={"nodeName":"End","nodeResult":"{\"result\":\"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Thousand Island Lake\"}","nodeType":"End","nodeStatus":"success","nodeId":"End_DrQn7F","nodeExecTime":"5ms"}, actionName=null, action=null, actionInputStream=null, actionInput=null, observation=null)]
    HTTP
    curl

    Permintaan Contoh

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header 'X-DashScope-SSE: enable' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Halo",
            "biz_params": {
            "city": "Hangzhou"}
        },
        "parameters":  {
            "has_thoughts": true,
            "incremental_output": true
        },
        "debug": {}
    }'
    Ganti YOUR_APP_ID dengan ID aplikasi aktual.

    Tanggapan Contoh

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_j45e\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake Fish in Vinegar Sauce,Long\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":5,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"jing Shrimp,Dongpo Pork,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":13,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"Beggar's Chicken,Song\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":18,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"cheng Fish Soup\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2Km9\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:9
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"Ling\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:10
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"yin Temple,Songcheng,Xixi\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":11,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:11
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\" National Wetland Park,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    
    id:12
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"Hangzhou Zoo\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_2Km9\",\"nodeExecTime\":\"1137ms\"}"},{"response":"{\"nodeName\":\"End\",\"nodeResult\":\"{\\\"result\\\":\\\"Dear, are you satisfied with my introduction\\\"}\",\"nodeType\":\"End\",\"nodeStatus\":\"success\",\"nodeId\":\"End_DrQn7F\",\"nodeExecTime\":\"1ms\"}"}],"session_id":"6035ee0814b64a9fb88346ecaf8b44bf","finish_reason":"stop","text":"Halo, apakah Anda puas dengan perkenalan saya"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":17,"model_id":"qwen-max"}]},"request_id":"64825069-b3aa-93a7-bcf1-c66fe57111fd"}
    PHP

    Contoh permintaan

    <?php
    
    # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi yang sebenarnya
    
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Membuat data permintaan
    $data = [
        "input" => [
            'prompt' => 'Halo',
            'biz_params' => [
                'city' => 'Hangzhou'
            ]
        ],
        "parameters" => [
            'has_thoughts' => true, // Untuk aplikasi alur kerja dan aplikasi orkestrasi, parameter ini harus diatur ke true, dan informasi proses dikembalikan dalam thoughts
            'incremental_output' => true // Keluaran bertahap
        ]
    ];
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("Pengodean JSON gagal dengan kesalahan: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Atur opsi curl
    curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, curlOPT_RETURNTRANSFER, false); // Jangan kembalikan data yang ditransfer
    curl_setopt($ch, curlOPT_WRITEFUNCTION, function ($ch, $string) {
        echo $string; // Proses data streaming
        return strlen($string);
    });
    curl_setopt($ch, curlOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key,
        'X-DashScope-SSE: enable' // Parameter tetap untuk keluaran streaming
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("Kesalahan curl: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    
    if ($status_code != 200) {
        echo "Kode Status HTTP: $status_code\n";
        echo "Permintaan Gagal.\n";
    }
    ?>

    Contoh tanggapan

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Ilo9\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_Ilo9\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake Fish in Vinegar Sauce\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_Ilo9\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\",\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_Ilo9\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"Dongpo Pork,Zhiwei Steamed\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_Ilo9\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\",Longjing Shrimp\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_Ilo9\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"requestid:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\",Beggar's Chicken\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"},{"response":"{\"nodeName\":\"LLM_vQDv\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_vQDv\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:9
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"},{"response":"{\"nodeName\":\"LLM_kBgf\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,Lingyin\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_vQDv\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:10
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"},{"response":"{\"nodeName\":\"LLM_kBgf\",\"nodeResult\":\"{\\\"result\\\":\\\" Temple,Songcheng\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_vQDv\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:11
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"},{"response":"{\"nodeName\":\"LLM_kBgf\",\"nodeResult\":\"{\\\"result\\\":\\\",Xixi Wetland\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_vQDv\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"null"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    id:12
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_Bsvj\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_Ilo9\",\"nodeExecTime\":\"1486ms\"}"},{"response":"{\"nodeName\":\"LLM_kBgf\",\"nodeResult\":\"{\\\"result\\\":\\\",Hangzhou Tower\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_vQDv\",\"nodeExecTime\":\"899ms\"}"},{"response":"{\"nodeName\":\"End\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Hangzhou Tower\\\"}\",\"nodeType\":\"End\",\"nodeStatus\":\"success\",\"nodeId\":\"End_DrQn7F\",\"nodeExecTime\":\"0ms\"}"}],"session_id":"a3b73a6db84d444d8efdab2b2e754f52","finish_reason":"stop","text":"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Hangzhou Tower"},"usage":{},"request_id":"795e98eb-5de3-969f-a9b5-5983d1b6d955"}
    
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan: apiKey='sk-xxx' menggunakan Model Studio API Key. Namun, tidak disarankan untuk menuliskan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi yang sebenarnya
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "hello",
                biz_params:{
                    'city':'Hangzhou'
                }
            },
            parameters: {
                'incremental_output' : 'true',
                'has_thoughts':'true'// Parameter ini perlu diatur untuk aplikasi alur kerja dan aplikasi orkestrasi agen untuk mengimplementasikan keluaran streaming
            },
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json',
                    'X-DashScope-SSE': 'enable'
                },
                responseType: 'stream' // Digunakan untuk menangani tanggapan streaming
            });
    
            if (response.status === 200) {
                console.log("Permintaan berhasil:");
    
                // Menangani tanggapan streaming
                response.data.on('data', (chunk) => {
                    console.log(`Menerima chunk: ${chunk.toString()}`);
                });
    
                response.data.on('end', () => {
                    console.log("Aliran berakhir.");
                });
    
                response.data.on('error', (error) => {
                    console.error(`Kesalahan aliran: ${error.message}`);
                });
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Kesalahan tidak dikenal');
                }
            }
        } catch (error) {
            console.error(`Kesalahan memanggil DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Status respons: ${error.response.status}`);
                console.error(`Data respons: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();

    Contoh tanggapan

    /opt/homebrew/bin/node ./index.js
    Mengirim permintaan ke API DashScope...
    Permintaan berhasil:
    Menerima chunk: id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake Fish\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\" in Vinegar Sauce,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Longjing Shrimp\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Dongpo Pork\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Zhiwei\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\" Steamed Buns,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:9
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Beggar's Chicken\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:10
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:11
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Lingyin\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:12
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\" Temple,Songcheng,Xixi Wetland\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:13
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Thousand Island Lake\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"null"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Menerima chunk: id:14
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"2180ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_5ZzA\",\"nodeExecTime\":\"855ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Thousand Island Lake\\\"}\",\"nodeType\":\"End\",\"nodeStatus\":\"success\",\"nodeId\":\"End_DrQn7F\",\"nodeExecTime\":\"1ms\"}"}],"session_id":"7e9fcc8be3294954815c1a0a956d5e55","finish_reason":"stop","text":"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Thousand Island Lake"},"usage":{},"request_id":"e52dce21-16a4-9a3d-ad6c-88e8921e927f"}
    Aliran berakhir.
    C#

    Permintaan contoh

    using System.Net;
    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");
            string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi yang sebenarnya
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                client.DefaultRequestHeaders.Add("X-DashScope-SSE", "enable");
    
                string jsonContent = @"{
                    ""input"": {
                        ""prompt"": ""Hello"",
                        ""biz_params"":{
                            ""city"":""Hangzhou""
                        }
                    },
                    ""parameters"": {
                        ""incremental_output"": true,
                        ""has_thoughts"": true 
                        },
                    ""debug"": {}
                }";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                try
                {
                    var request = new HttpRequestMessage(HttpMethod.Post, url);
                    request.Content = content;
    
                    HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
                    
    
                    if (response.IsSuccessStatusCode)
                    {
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                        using (var stream = await response.Content.ReadAsStreamAsync())
                        using (var reader = new StreamReader(stream))
                        {
                            string? line; // Deklarasikan sebagai string nullable
                            while ((line = await reader.ReadLineAsync()) != null)
                            {
                                if (line.StartsWith("data:"))
                                {
                                    string data = line.Substring(5).Trim();
                                    Console.WriteLine(data);
                                    Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Kesalahan memanggil DashScope: {ex.Message}");
                }
            }
        }
    }

    Tanggapan contoh

    2025-02-14 16:55:28:670
    Permintaan berhasil:
    2025-02-14 16:55:28:980
    {"output":{"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:28:980
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:28:980
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_j45e\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:29:178
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake Fish in Vinegar Sauce,Long\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":5,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:29:780
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"jing Shrimp,Dongpo Pork,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":13,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:29:979
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"Zhiwei Steamed Buns,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_j45e\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":18,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:30:179
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"Beggar's Chicken\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1315ms\"}"},{"response":"{\"nodeName\":\"LLM_2Km9\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:30:379
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1315ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:30:986
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1315ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"Lingyin Temple,Song\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":7,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:31:180
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1315ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"cheng,Xixi Wetland,Thousand Island Lake\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_2Km9\",\"nodeExecTime\":\"1008ms\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"null"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":16,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:31:382
    {"output":{"thoughts":[{"response":"{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1315ms\"}"},{"response":"{\"nodeName\":\"LLM_2\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_2Km9\",\"nodeExecTime\":\"1008ms\"}"},{"response":"{\"nodeName\":\"End\",\"nodeResult\":\"{\\\"result\\\":\\\"Dear, are you satisfied with my introduction\\\"}\",\"nodeType\":\"End\",\"nodeStatus\":\"success\",\"nodeId\":\"End_DrQn7F\",\"nodeExecTime\":\"0ms\"}"}],"session_id":"1a3f45d95e654534bb01bdbf59e9b732","finish_reason":"stop","text":"Dear, are you satisfied with my introduction"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":16,"model_id":"qwen-max"}]},"request_id":"520d48fd-d7e8-9632-87e2-1ff866da1151"}
    2025-02-14 16:55:31:751
    Go

    Contoh permintaan

    package main
    
    import (
    	"bufio"
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"net/http"
    	"os"
    )
    
    func main() {
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi yang sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan bahwa DASHSCOPE_API_KEY telah diatur.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "hello",
    			"biz_params": map[string]interface{}{
    				"city": "Hangzhou",
    			},
    		},
    		"parameters": map[string]interface{}{
    			"incremental_output": true,
    			"has_thoughts":       true,
    		},
    		"debug": map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengonversi JSON: %v\n", err)
    		return
    	}
    
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    	req.Header.Set("X-DashScope-SSE", "enable")
    
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	scanner := bufio.NewScanner(resp.Body)
    	for scanner.Scan() {
    		line := scanner.Text()
    		fmt.Println(line)
    	}
    
    	if err := scanner.Err(); err != nil {
    		fmt.Printf("Kesalahan membaca tanggapan: %v\n", err)
    	}
    
    	if resp.StatusCode != http.StatusOK {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    	}
    }
    

    Contoh tanggapan

    Permintaan berhasil:
    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake Vinegar\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Fish,\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Longjing Shrimp\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Dongpo Pork\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Zhiwei Small\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Basket,Beggar's\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_S78u\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:9
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Chicken\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:10
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,Lingyin\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:11
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"Temple,Songcheng\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:12
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Xixi Wetland\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:13
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\",Qiandao Lake\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_5ZzA\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:14
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_5ZzA\",\"nodeExecTime\":\"1760ms\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"null"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    
    id:15
    event:result
    :HTTP_STATUS/200
    data:{"output":{"thoughts":[{"response":"{\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_S78u\",\"nodeExecTime\":\"1680ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_5ZzA\",\"nodeExecTime\":\"1760ms\"}"},{"response":"{\"nodeResult\":\"{\\\"result\\\":\\\"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Qiandao Lake\\\"}\",\"nodeType\":\"End\",\"nodeStatus\":\"success\",\"nodeId\":\"End_DrQn7F\",\"nodeExecTime\":\"1ms\"}"}],"session_id":"f3f5c63ec17d44b2a2e9aa18f0e6a22c","finish_reason":"stop","text":"West Lake,Lingyin Temple,Songcheng,Xixi Wetland,Qiandao Lake"},"usage":{},"request_id":"dfea28e9-801b-9c10-a4e7-c8fef790d34f"}
    • Setiap item dalam thoughts adalah detail eksekusi dari sebuah node. Berikut adalah contoh hasil node LLM.

      id:7
      event:result
      :HTTP_STATUS/200
      data:
      {
          "output": {
              "thoughts": [
                  {
                      "response": "{\"nodeName\":\"Start\",\"nodeType\":\"Start\",\"nodeStatus\":\"success\",\"nodeId\":\"Start_bYxoRU\",\"nodeExecTime\":\"0ms\"}"
                  },
                  {
                      "response": "{\"nodeName\":\"LLM_1\",\"nodeResult\":\"{\\\"result\\\":\\\"Songcheng Fish Soup\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"success\",\"nodeId\":\"LLM_j45e\",\"nodeExecTime\":\"1167ms\"}"
                  },
                  {
                      "response": "{\"nodeName\":\"LLM_2Km9\",\"nodeResult\":\"{\\\"result\\\":\\\"\\\"}\",\"nodeType\":\"LLM\",\"nodeStatus\":\"executing\",\"nodeId\":\"LLM_2Km9\"}"
                  }
              ],
              "session_id": "6035ee0814b64a9fb88346ecaf8b44bf",
              "finish_reason": "null"
          },
          "usage": {
              "models": [
                  {
                      "input_tokens": 25,
                      "output_tokens": 21,
                      "model_id": "qwen-max"
                  }
              ]
          },
          "request_id": "64825069-b3aa-93a7-bcf1-c66fe57111fd"
      }
      Jika Anda tertarik pada hasil streaming dari node LLM (menggunakan LLM_j45e dalam contoh di atas), Anda dapat fokus pada keluaran node dengan nodeId LLM_j45e di setiap push dari thoughts.
    • Jika sebuah node gagal, seluruh tugas juga akan gagal.

    agent_format

    Ini adalah dipublikasikan Workflow Application. Sakelar Response hanya menyala untuk LLM Node pertama, yang berfokus hanya pada hasil dari node ini.

    image

    Python

    Contoh permintaan

    import os
    from http import HTTPStatus
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        "city": "Hangzhou"}
    responses = Application.call(
        # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # Ganti dengan ID aplikasi yang sebenarnya
        app_id='YOUR_APP_ID',
        prompt='Halo',
        biz_params=biz_params,
        # Aktifkan keluaran streaming
        stream=True,
        # Aktifkan mode kompatibilitas untuk mengeluarkan hasil streaming dari node tertentu
        flow_stream_mode="agent_format",
        # incremental_output=true mengaktifkan keluaran tambahan, false menonaktifkannya, default adalah false jika tidak ditentukan
        incremental_output=True)
    
    for response in responses:
        if response.status_code != HTTPStatus.OK:
            print(f'request_id={response.request_id}')
            print(f'code={response.status_code}')
            print(f'message={response.message}')
            print(f'Silakan merujuk pada dokumentasi: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
        else:
            print(f'{response.output.text}\n')  # Proses teks keluaran, hasil dikembalikan dalam teks

    Contoh tanggapan

    Danau Barat
    
    Ikan dalam Saus Cuka,
    
    Udang Longjing
    
    ,Dongpo Babi
    
    ,Bakpao Kecil Zhiwei
    
    ,Ayam Pengemis
    HTTP
    curl

    Contoh permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header 'X-DashScope-SSE: enable' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Halo",
            "biz_params": {
            "city": "Hangzhou"}
        },
        "parameters":  {
            "incremental_output": true,
            "flow_stream_mode": "agent_format"
        },
        "debug": {}
    }'

    Contoh tanggapan

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":"Danau Barat"},"usage":{"models":[{"input_tokens":25,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":" Ikan dalam Saus Cuka"},"usage":{"models":[{"input_tokens":25,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":" Saus"},"usage":{"models":[{"input_tokens":25,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":",Udang Longjing,Dongpo"},"usage":{"models":[{"input_tokens":25,"output_tokens":11,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":" Babi,Zhiwei"},"usage":{"models":[{"input_tokens":25,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":" Bakpao Kecil,Ayam Pengemis"},"usage":{"models":[{"input_tokens":25,"output_tokens":19,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"null","text":" Ayam"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"4f99497fdde14ac88799cf1f3209b952","finish_reason":"stop","text":"Tuan, apakah Anda puas dengan perkenalan saya"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"942a4e9f-1976-9615-ac43-c3a0a1ec58fc"}
    PHP

    Contoh permintaan

    <?php
    
    # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi yang sebenarnya
    
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Konstruksi data permintaan
    $data = [
        "input" => [
            'prompt' => 'Halo',
            'biz_params' => [
                'city' => 'Hangzhou'
            ]
        ],
        "parameters" => [
            'flow_stream_mode' => 'agent_format', // Untuk aplikasi alur kerja keluaran streaming mode kompatibilitas, atur parameter ini ke agent_format
            'incremental_output' => true // Keluaran tambahan
        ]
    ];
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding gagal dengan kesalahan: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, curlOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, curlOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, curlOPT_RETURNTRANSFER, false); // Jangan kembalikan data yang ditransfer
    curl_setopt($ch, curlOPT_WRITEFUNCTION, function ($ch, $string) {
        echo $string; // Proses data streaming
        return strlen($string);
    });
    curl_setopt($ch, curlOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key,
        'X-DashScope-SSE: enable' // Parameter tetap untuk keluaran streaming
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("Kesalahan curl: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, curlINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    
    if ($status_code != 200) {
        echo "Kode Status HTTP: $status_code\n";
        echo "Permintaan Gagal.\n";
    }
    ?>

    Contoh tanggapan

    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"8ef1ff3df37646ef9c7b8522e8cba912","finish_reason":"null","text":"Danau Barat"},"usage":{"models":[{"input_tokens":25,"output_tokens":1,"model_id":"qwen-max"}]},"request_id":"9cf6539f-32id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"8ef1ff3df37646ef9c7b8522e8cba912","finish_reason":"null","text":" Ikan dalam Saus Cuka,Udang Longjing,Dongpo Babi,"},"usage":{"models":[{"input_tokens":25,"output_tokens":13,"model_id":"qwen-max"}]},"request_id":"9cf6539f-32a0-960b-bdfb-1823545edb5f"}
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"8ef1ff3df37646ef9c7b8522e8cba912","finish_reason":"null","text":"Bakpao Kecil Zhiwei,"},"usage":{"models":[{"input_tokens":25,"output_tokens":18,"model_id":"qwen-max"}]},"request_id":"9cf6539f-32a0-960b-bdfb-1823545edb5f"}
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"8ef1ff3df37646ef9c7b8522e8cba912","finish_reason":"null","text":"Ayam Pengemis"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"9cf6539f-32a0-960b-bdfb-1823545edb5f"}
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"8ef1ff3df37646ef9c7b8522e8cba912","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"9cf6539f-32a0-960b-bdfb-1823545edb5f"}
    
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';// Ganti dengan ID aplikasi yang sebenarnya
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Halo",
                biz_params:{
                    'city':'Hangzhou'
                }
            },
            parameters: {
                'incremental_output' : 'true',
                "flow_stream_mode" : "agent_format"
            },
            debug: {}
        };
    
        try {
            console.log("Mengirim permintaan ke API DashScope...");
    
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json',
                    'X-DashScope-SSE': 'enable'
                },
                responseType: 'stream' // Untuk menangani tanggapan streaming
            });
    
            if (response.status === 200) {
                console.log("Permintaan berhasil:");
    
                // Proses tanggapan streaming
                response.data.on('data', (chunk) => {
                    console.log(`Menerima chunk: ${chunk.toString()}`);
                });
    
                response.data.on('end', () => {
                    console.log("Stream berakhir.");
                });
    
                response.data.on('error', (error) => {
                    console.error(`Kesalahan stream: ${error.message}`);
                });
            } else {
                console.log("Permintaan gagal:");
                if (response.data.request_id) {
                    console.log(`request_id=${response.data.request_id}`);
                }
                console.log(`code=${response.status}`);
                if (response.data.message) {
                    console.log(`message=${response.data.message}`);
                } else {
                    console.log('message=Kesalahan tidak dikenal');
                }
            }
        } catch (error) {
            console.error(`Kesalahan memanggil DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Status tanggapan: ${error.response.status}`);
                console.error(`Data tanggapan: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();

    Contoh tanggapan

    Mengirim permintaan ke API DashScope...
    Permintaan berhasil:
    Menerima chunk: id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":"Danau Barat"},"usage":{"models":[{"input_tokens":25,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":" Ikan dalam Saus Cuka"},"usage":{"models":[{"input_tokens":25,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":",Udang Longjing"},"usage":{"models":[{"input_tokens":25,"output_tokens":7,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":",Dongpo Babi"},"usage":{"models":[{"input_tokens":25,"output_tokens":11,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":",Ayam Pengemis"},"usage":{"models":[{"input_tokens":25,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":",Zhiwei Steamed"},"usage":{"models":[{"input_tokens":25,"output_tokens":19,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"null","text":" Bakpao"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Menerima chunk: id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"688dbfb307194b6fa4df7346e7c9eded","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"8f179fcf-b2d2-90a2-97e8-ce0b4fdc8819"}
    
    
    Stream berakhir.
    C#

    Contoh permintaan

    using System.Net;
    using System.Text;
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY") ?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY tidak diatur.");
            string appId = "YOUR_APP_ID"; // Ganti dengan ID aplikasi yang sebenarnya
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
    
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                client.DefaultRequestHeaders.Add("X-DashScope-SSE", "enable");
    
                string jsonContent = @"{
                    ""input"": {
                        ""prompt"": ""Halo"",
                        ""biz_params"":{
                            ""city"":""Hangzhou""
                        }
                    },
                    ""parameters"": {
                        ""incremental_output"": true,
                        ""flow_stream_mode"": ""agent_format"" 
                        },
                    ""debug"": {}
                }";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                try
                {
                    var request = new HttpRequestMessage(HttpMethod.Post, url);
                    request.Content = content;
    
                    HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
                    
    
                    if (response.IsSuccessStatusCode)
                    {
                        Console.WriteLine("Permintaan berhasil:");
                        Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                        using (var stream = await response.Content.ReadAsStreamAsync())
                        using (var reader = new StreamReader(stream))
                        {
                            string? line; // Deklarasikan sebagai string nullable
                            while ((line = await reader.ReadLineAsync()) != null)
                            {
                                if (line.StartsWith("data:"))
                                {
                                    string data = line.Substring(5).Trim();
                                    Console.WriteLine(data);
                                    Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Kesalahan memanggil DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh tanggapan

    2025-02-14 17:17:09:408
    Permintaan berhasil:
    2025-02-14 17:17:10:256
    {"output":{"session_id":"37b12773b63944a5b18e352a9c2cef7d","finish_reason":"null","text":"Danau Barat"},"usage":{"models":[{"input_tokens":25,"output_tokens":1,"model_id":"qwen-max"}]},"request_id":"aee133b1-9b5e-9658-a91f-380938c4162c"}
    2025-02-14 17:17:10:257
    {"output":{"session_id":"37b12773b63944a5b18e352a9c2cef7d","finish_reason":"null","text":" Ikan dalam Saus Cuka,Udang Longjing,"},"usage":{"models":[{"input_tokens":25,"output_tokens":9,"model_id":"qwen-max"}]},"request_id":"aee133b1-9b5e-9658-a91f-380938c4162c"}
    2025-02-14 17:17:10:449
    {"output":{"session_id":"37b12773b63944a5b18e352a9c2cef7d","finish_reason":"null","text":"Ayam Pengemis,Dongpo"},"usage":{"models":[{"input_tokens":25,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"aee133b1-9b5e-9658-a91f-380938c4162c"}
    2025-02-14 17:17:10:650
    {"output":{"session_id":"37b12773b63944a5b18e352a9c2cef7d","finish_reason":"null","text":" Babi,Zhiwei Steamed Buns"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"aee133b1-9b5e-9658-a91f-380938c4162c"}
    2025-02-14 17:17:10:850
    {"output":{"session_id":"37b12773b63944a5b18e352a9c2cef7d","finish_reason":"stop","text":"Tuan, apakah Anda puas dengan perkenalan saya"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"aee133b1-9b5e-9658-a91f-380938c4162c"}
    Go

    Contoh permintaan

    package main
    
    import (
    	"bufio"
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkodekan API Key secara langsung ke dalam kode di lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi yang sebenarnya
    
    	if apiKey == "" {
    		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]interface{}{
    			"prompt": "Halo",
    			"biz_params": map[string]interface{}{
    				"city": "Hangzhou", // Pengiriman parameter
    			},
    		},
    		"parameters": map[string]interface{}{
    			"incremental_output": true,           // Mengatur parameter ini ke true mengaktifkan keluaran tambahan dari hasil
    			"flow_stream_mode":   "agent_format", // Untuk aplikasi alur kerja untuk menerapkan keluaran streaming dalam mode kompatibilitas, parameter ini perlu diatur ke agent_format
    		},
    		"debug": map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal melakukan marshal JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Atur header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    	req.Header.Set("X-DashScope-SSE", "enable") // Permintaan keluaran streaming perlu mengatur parameter ini ke enable
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	scanner := bufio.NewScanner(resp.Body)
    	for scanner.Scan() {
    		line := scanner.Text()
    		fmt.Println(line)
    	}
    
    	if err := scanner.Err(); err != nil {
    		fmt.Printf("Kesalahan membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    	}
    }
    

    Contoh tanggapan

    Permintaan berhasil:
    id:1
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":"Danau Barat"},"usage":{"models":[{"input_tokens":25,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:2
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":" Ikan dalam Saus Cuka"},"usage":{"models":[{"input_tokens":25,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:3
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":",Udang Longjing"},"usage":{"models":[{"input_tokens":25,"output_tokens":7,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:4
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":",Dongpo Babi"},"usage":{"models":[{"input_tokens":25,"output_tokens":11,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:5
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":",Zhiwei"},"usage":{"models":[{"input_tokens":25,"output_tokens":15,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:6
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":" Bakpao Kecil,Ayam Pengemis"},"usage":{"models":[{"input_tokens":25,"output_tokens":19,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:7
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"null","text":" Ayam"},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}
    
    id:8
    event:result
    :HTTP_STATUS/200
    data:{"output":{"session_id":"ec54aef85e8a462396ecf5fce5074ce8","finish_reason":"stop","text":""},"usage":{"models":[{"input_tokens":25,"output_tokens":21,"model_id":"qwen-max"},{"input_tokens":23,"output_tokens":16,"model_id":"qwen-max"}]},"request_id":"1c4955e2-5d0e-9344-a9a7-6b86000eb5da"}

Ambil basis pengetahuan

Basis Pengetahuan adalah kemampuan RAG dari Model Studio. Ini dapat secara efektif melengkapi model dengan pengetahuan pribadi dan terbaru. Anda dapat menentukan ruang lingkup pengambilan saat memanggil Agent Applications untuk meningkatkan akurasi jawaban.

Sebelum Anda mulai

Di konsol Model Studio, aktifkan Knowledge Base Retrieval Augmentation untuk Agent Application Anda. Kemudian, Publish aplikasi tersebut.

Lewati prasyarat ini untuk RAG Applications.

Tentukan ruang lingkup pengambilan

  1. Untuk mengambil basis pengetahuan yang ditentukan, pilih salah satu metode berikut:

    • Di konsol, klik Configure Knowledge Base di aplikasi dan pilih basis pengetahuan yang ditentukan. Lalu, Publish aplikasi tersebut.

    • Jangan asosiasikan basis pengetahuan yang ditentukan di konsol. Kirim ID basis pengetahuan melalui rag_options saat melakukan panggilan API;

    • Asosiasikan basis pengetahuan yang ditentukan di konsol, dan kirim ID basis pengetahuan melalui rag_options saat melakukan panggilan API.

      Dalam hal ini, hanya basis pengetahuan yang dikirim selama pemanggilan yang akan diambil. Sebagai contoh, sebuah Agent Application diasosiasikan dengan basis pengetahuan A. Namun, Anda menentukan basis pengetahuan B saat melakukan panggilan API. Maka, basis pengetahuan A tidak akan diambil, hanya basis pengetahuan B yang akan diambil.

    Untuk mendapatkan ID basis pengetahuan (pipeline_ids): Anda bisa mendapatkannya di halaman Knowledge Base Index, atau gunakan Data.Id yang dikembalikan oleh CreateIndex API. CreateIndex hanya mendukung basis pengetahuan tidak terstruktur.

    Spesifikasi Telepon Bailian.docx digunakan dalam sampel berikut sebagai basis pengetahuan tidak terstruktur.

    Python

    Contoh permintaan

    import os
    from http import HTTPStatus
    # Versi SDK dashscope yang direkomendasikan >= 1.20.11
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    
    response = Application.call(
        # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"), 
        app_id='YOUR_APP_ID',  # Ganti YOUR_APP_ID dengan ID aplikasi
        prompt='Tolong rekomendasikan telepon seluler di bawah 3000 yuan',
        rag_options={
            "pipeline_ids": ["YOUR_PIPELINE_ID1,YOUR_PIPELINE_ID2"],  # Ganti dengan ID basis pengetahuan aktual, pisahkan beberapa ID dengan koma
        }
    )
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output.text))  # Proses keluaran teks saja
        # print('%s\n' % (response.usage))

    Contoh tanggapan

    Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan, yang sesuai dengan anggaran Anda. Fiturnya mencakup desain layar ringan 6,4 inci 1080 x 2340 piksel, dipadukan dengan penyimpanan 128GB dan RAM 6GB, cocok untuk penggunaan sehari-hari. Selain itu, ia memiliki baterai 4000mAh dan lensa yang mendukung zoom digital 30×, yang dapat memenuhi kebutuhan fotografi dan masa pakai baterai Anda. Jika Anda mencari ponsel yang tipis, portabel, dan memiliki fitur lengkap, Bailian Zephyr Z9 akan menjadi pilihan yang baik.
    Java

    Contoh permintaan

    // Versi SDK dashscope yang direkomendasikan >= 2.16.8;
    import com.alibaba.dashscope.app.*;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.InputRequiredException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import java.util.Collections;
    import java.util.List;
    
    import com.alibaba.dashscope.utils.Constants;
    
    public class Main {
        static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void streamCall() throws NoApiKeyException, InputRequiredException {
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID") // Ganti dengan ID aplikasi aktual
                    .prompt("Tolong rekomendasikan ponsel sekitar 3000 yuan")
                    .ragOptions(RagOptions.builder()
                            // Ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa dengan koma
                            .pipelineIds(List.of("PIPELINES_ID1", "PIPELINES_ID2"))
                            .build())
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());// Proses keluaran teks saja
        }
    
        public static void main(String[] args) {
            try {
                streamCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Contoh tanggapan

    Dalam anggaran 3000 yuan Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499 dan 2799, yang sangat cocok dengan anggaran Anda. Fiturnya mencakup:
    
    - **Desain ringan**: Layar 6,4 inci berukuran sedang, nyaman untuk operasi satu tangan.
    - **Kinerja seimbang**: Dilengkapi dengan penyimpanan 128GB dan RAM 6GB, yang cukup untuk penggunaan sehari-hari.
    - **Daya tahan baterai**: Memiliki baterai 4000mAh yang dapat memenuhi kebutuhan penggunaan normal sepanjang hari.
    - **Kemampuan fotografi**: Memiliki lensa dengan zoom digital 30×, cocok untuk menangkap pemandangan jauh.
    
    Jika Anda lebih fokus pada pengalaman bermain game atau memiliki persyaratan khusus lainnya, beri tahu saya sehingga saya dapat memberikan rekomendasi yang lebih personal!
    HTTP
    curl

    Contoh Permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Tolong rekomendasikan ponsel di bawah 3000 yuan"
        },
        "parameters":  {
                        "rag_options" : {
                        "pipeline_ids":["YOUR_PIPELINE_ID1"]}
        },
        "debug": {}
    }'
    Ganti YOUR_APP_ID dengan ID aplikasi aktual, dan YOUR_PIPELINE_ID1 dengan ID basis pengetahuan yang ditentukan.

    Contoh Tanggapan

    {"output":{"finish_reason":"stop","session_id":"d1208af96f9a4d8390e9b29e86f0623c",
    "text":"Untuk anggaran di bawah 3000 yuan, saya merekomendasikan Bailian Zephyr Z9.
    Ponsel ini dibanderol antara 2499 dan 2799 yuan, yang sesuai dengan persyaratan anggaran Anda.
    Fiturnya mencakup desain layar ringan 6,4 inci 1080 x 2340 piksel, dipadukan dengan penyimpanan 128GB dan RAM 6GB, cukup untuk menangani berbagai aplikasi dan multitasking dalam penggunaan sehari-hari.
    Selain itu, ia dilengkapi dengan baterai 4000mAh, memastikan penggunaan sepanjang hari, dan dilengkapi dengan lensa zoom digital 30×, memungkinkan Anda menangkap detail dalam hidup Anda.
    Secara keseluruhan, Bailian Zephyr Z9 adalah pilihan yang baik dalam hal nilai uang, desain, dan fungsi."},
    "usage":{"models":[{"output_tokens":158,"model_id":"qwen-max","input_tokens":1025}]},
    "request_id":"eb2d40f7-bede-9d48-88dc-08abdcdd0351"}% 
    PHP

    Contoh Permintaan

    <?php
    # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual
    
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Konstruksi data permintaan
    $data = [
        "input" => [
            'prompt' => 'Tolong rekomendasikan smartphone di bawah 3000 yuan.'
        ],
        "parameters" => [
            'rag_options' => [
                'pipeline_ids' => ['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2'] // Ganti dengan ID basis pengetahuan yang ditentukan; gunakan koma untuk memisahkan beberapa ID
            ]
        ]
    ];
    
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding gagal dengan error: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("curl Error: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    
    // Dekode data tanggapan
    $response_data = json_decode($response, true);
    
    // Tangani tanggapan
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "Tidak ada teks dalam tanggapan.\n";
        }
    } else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";
        }
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";
        } else {
            echo "message=Error tidak dikenal\n";
        }
    }
    ?>
    

    Contoh Tanggapan

    Untuk anggaran di bawah 3000 yuan, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan, yang sempurna untuk anggaran Anda. Fiturnya mencakup desain ringan dengan layar 6,4 inci 1080 x 2340 piksel, penyimpanan 128GB dan RAM 6GB, yang dapat memenuhi kebutuhan penggunaan sehari-hari. Selain itu, baterai 4000mAh-nya memastikan penggunaan tanpa khawatir sepanjang hari, dan dilengkapi dengan lensa zoom digital 30× untuk menangkap detail dari kejauhan, menjadikannya pilihan yang tipis namun kuat.
    Node.js

    Dependensi:

    npm install axios

    Contoh Permintaan

    const axios = require('axios');
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';//Ganti dengan ID aplikasi aktual
    
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Tolong rekomendasikan ponsel di bawah 3000 yuan"
            },
            parameters: {
                rag_options:{
                    pipeline_ids:['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2']  // Ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa dengan koma
                }
            },
            debug: {}
        };
    
        try {
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                console.log(`${response.data.output.text}`);
            } else {
                console.log(`request_id=${response.headers['request_id']}`);
                console.log(`code=${response.status}`);
                console.log(`message=${response.data.message}`);
            }
        } catch (error) {
            console.error(`Error memanggil DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Status tanggapan: ${error.response.status}`);
                console.error(`Data tanggapan: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();

    Contoh Tanggapan

    Untuk anggaran di bawah 3000 yuan, saya merekomendasikan Anda mempertimbangkan **Bailian Zephyr Z9**. Ponsel ini memiliki harga referensi 3999-4299 yuan, tetapi jika Anda bisa menangkap promosi atau diskon, mungkin akan masuk dalam anggaran Anda.
    
    ### Bailian Zephyr Z9 - Seni Portabilitas Ringan
    - **Layar**: 6,4 inci 1080 x 2340 piksel
    - **Penyimpanan dan RAM**: 128GB penyimpanan / 6GB RAM
    - **Baterai**: 4000mAh
    - **Kamera**: Lensa zoom digital 30×
    
    Ponsel ini menampilkan desain yang tipis dan portabel, sangat nyaman untuk penggunaan sehari-hari, dan memiliki daya tahan baterai yang baik. Jika Anda lebih peduli tentang nilai uang dan pengalaman pengguna sehari-hari, Bailian Zephyr Z9 adalah pilihan yang baik.
    
    Jika anggaran Anda sangat ketat, saya sarankan untuk mengamati aktivitas promosi di platform e-commerce, atau mempertimbangkan ponsel merek lain dalam rentang harga yang sama. Semoga saran-saran ini membantu!
    C#

    Contoh Permintaan

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
            string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi aktual
            // YOUR_PIPELINE_ID1 ganti dengan ID basis pengetahuan yang ditentukan
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("Pastikan DASHSCOPE_API_KEY telah diatur.");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
            
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""Tolong rekomendasikan ponsel di bawah 3000 yuan""
                    }},
                    ""parameters"": {{
                        ""rag_options"" : {{
                            ""pipeline_ids"":[""YOUR_PIPELINE_ID1""]
                        }}
                    }},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error memanggil DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh Tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "2344ddc540ec4c5fa110b92d813d3807",
            "text": "Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini memiliki harga referensi antara 2499-2799 yuan, yang sesuai dengan persyaratan anggaran Anda. Fiturnya mencakup layar 6,4 inci 1080 x 2340 piksel, penyimpanan 128GB dan RAM 6GB, yang cukup untuk penggunaan sehari-hari. Selain itu, baterai 4000mAh memastikan penggunaan normal sepanjang hari, sementara lensa zoom digital 30× dapat memenuhi kebutuhan Anda untuk menangkap pemandangan jauh. Ini adalah pilihan yang tipis, portabel, dan kaya fitur."
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 121,
                    "model_id": "qwen-max",
                    "input_tokens": 1841
                }
            ]
        },
        "request_id": "99fceedf-2034-9fb0-aaad-9c837136801f"
    }
    Go

    Contoh Permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual
    
    	if apiKey == "" {
    		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]string{
    			"prompt": "Tolong rekomendasikan ponsel di bawah 3000 yuan",
    		},
    		"parameters": map[string]interface{}{
    			"rag_options": map[string]interface{}{
    				"pipeline_ids": []string{"YOUR_PIPELINE_ID1"}, // Ganti dengan ID basis pengetahuan yang ditentukan
    			},
    		},
    		"debug": map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengubah JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Set header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }
    

    Contoh Tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "fadbb4d1fe094ade88985620363506e6",
            "text": "Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan, yang sangat cocok untuk anggaran di bawah 3000 yuan. Fiturnya mencakup desain layar ringan 6,4 inci 1080 x 2340 piksel, dipadukan dengan penyimpanan 128GB dan RAM 6GB, yang dapat memenuhi kebutuhan penggunaan sehari-hari. Pada saat yang sama, baterai 4000mAh memastikan penggunaan tanpa khawatir sepanjang hari, sementara lensa zoom digital 30× dapat menangkap detail dari kejauhan, menjadikannya pilihan yang sangat hemat biaya."
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 119,
                    "model_id": "qwen-max",
                    "input_tokens": 1055
                }
            ]
        },
        "request_id": "3a755dd7-58a0-9a5e-8a07-b85b1db838a6"
    }
  2. Ambil dokumen tak terstruktur yang ditentukan: Kirim ID basis pengetahuan, ID dokumen, tag, atau metadata (pasangan kunci-nilai) dalam rag_options.

    ID dokumen, tag, dan metadata hanya efektif untuk dokumen tak terstruktur.
    • Bagaimana cara mendapatkannya:

      • ID Dokumen (file_ids): Anda bisa menemukannya di halaman Data Aplikasi, atau gunakan ID yang dikembalikan oleh AddFile API saat mengimpor dokumen.

      • Tag Dokumen: Anda bisa menemukan tag di halaman Data Aplikasi, atau dapatkan dari DescribeFile API.

      • Metadata Dokumen: Di halaman Basis Pengetahuan, klik View untuk masuk ke basis pengetahuan. Lalu, klik Metadata Information.

    • Anda dapat menentukan beberapa ID dokumen, tetapi dokumen tersebut harus sudah termasuk dalam indeks pengetahuan.

    • Saat menentukan ID dokumen, Anda juga harus menentukan ID basis pengetahuan tempat dokumen tersebut berada.

    • Hanya dokumen yang ditentukan yang akan diambil. Sebagai contoh, sebuah Agent Application mengasosiasikan basis pengetahuan A, tetapi pemanggilan API menentukan dokumen dari basis pengetahuan B. Maka, dokumen dari A tidak akan diambil, hanya dokumen dari B yang akan diambil.

      Spesifikasi Telepon Bailian.docx digunakan dalam sampel berikut sebagai basis pengetahuan tidak terstruktur.

      Python

      Contoh permintaan

      import os
      from http import HTTPStatus
      # Versi SDK dashscope yang direkomendasikan >= 1.20.11
      from dashscope import Application
      import dashscope
      dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
      
      response = Application.call(
          # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
          api_key=os.getenv("DASHSCOPE_API_KEY"),
          app_id='YOUR_APP_ID',  # Ganti YOUR_APP_ID dengan ID aplikasi
          prompt='Tolong rekomendasikan ponsel di bawah 3000 yuan',
          rag_options={
              "pipeline_ids": ["YOUR_PIPELINE_ID1", "YOUR_PIPELINE_ID2"],  # Ganti dengan ID basis pengetahuan aktual, pisahkan beberapa dengan koma
              "file_ids": ["YOUR_FILE_ID1", "YOUR_FILE_ID2"],  # Ganti dengan ID dokumen tidak terstruktur aktual, pisahkan beberapa dengan koma
              "metadata_filter": {  # Pasangan kunci-nilai metadata dokumen, pisahkan beberapa dengan koma
                  "key1": "value1",
                  "key2": "value2"
              },
              "tags": ["tag1", "tag2"]  # Tag dokumen, pisahkan beberapa dengan koma
          }
      )
      
      if response.status_code != HTTPStatus.OK:
          print(f'request_id={response.request_id}')
          print(f'code={response.status_code}')
          print(f'message={response.message}')
          print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
      else:
          print('%s\n' % (response.output))

      Contoh tanggapan

      {
          "text": "Dalam anggaran di bawah 3000 yuan, saya merekomendasikan Anda mempertimbangkan **Bailian Zephyr Z9**. Ponsel ini memiliki fitur berikut:
      
      - **Layar**: 6,4 inci 1080 x 2340 piksel, cocok untuk penggunaan sehari-hari dan hiburan.
      - **Memori dan penyimpanan**: RAM 6GB + ruang penyimpanan 128GB, yang dapat memenuhi kebutuhan kehalusan dan penyimpanan sebagian besar pengguna.
      - **Kapasitas baterai**: 4000mAh, memberikan jaminan penggunaan sepanjang hari.
      - **Fungsi kamera**: Dilengkapi lensa dengan zoom digital 30×, mampu menangkap detail dari jarak lebih jauh.
      - **Fitur lainnya**: Desain ringan dan portabel, mudah dibawa.
      
      Harga referensi adalah antara 2499 dan 2799 yuan, yang sangat sesuai dengan persyaratan anggaran Anda dan menawarkan nilai uang yang baik. Semoga saran-saran ini membantu!",
          "finish_reason": "stop",
          "session_id": "10bdea3d1435406aad8750538b701bee",
          "thoughts": null,
          "doc_references": null
      }
      Java

      Contoh permintaan

      // Versi SDK dashscope yang direkomendasikan >= 2.16.8;
      import com.alibaba.dashscope.app.*;
      import com.alibaba.dashscope.exception.ApiException;
      import com.alibaba.dashscope.exception.InputRequiredException;
      import com.alibaba.dashscope.exception.NoApiKeyException;
      import com.google.gson.JsonObject;
      import java.util.List;
      
      import com.alibaba.dashscope.utils.Constants;
      
      public class Main {
          static {
              Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
          }
          public static void streamCall() throws NoApiKeyException, InputRequiredException {
              JsonObject metadataFilter = new JsonObject();
              metadataFilter.addProperty("key1", "value1"); // Pasangan kunci-nilai metadata
              metadataFilter.addProperty("key2", "value2"); // Untuk beberapa, panggil addProperty berulang kali
              ApplicationParam param = ApplicationParam.builder()
                      // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                      .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                      .appId("YOUR_APP_ID") // Ganti dengan ID aplikasi aktual
                      .prompt("Tolong rekomendasikan ponsel sekitar 3000 yuan")
                      .ragOptions(RagOptions.builder()
                              .pipelineIds(List.of("PIPELINES_ID1","PIPELINES_ID2"))  // Ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa dengan koma
                              .fileIds(List.of("FILE_ID1", "FILE_ID2"))  // Ganti dengan ID dokumen tidak terstruktur yang ditentukan, pisahkan beberapa dengan koma
                              .tags(List.of("tags1", "tags2")) // Ganti dengan ID tag dokumen yang ditentukan, pisahkan beberapa dengan koma
                              .metadataFilter(metadataFilter)
                              .build())
                      .build();
      
              Application application = new Application();
              ApplicationResult result = application.call(param);
              System.out.printf("%s\n",
                      result.getOutput().getText());// Proses keluaran teks saja
          }
      
          public static void main(String[] args) {
              try {
                  streamCall();
              } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                  System.out.printf("Exception: %s", e.getMessage());
                  System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
              }
              System.exit(0);
          }
      }

      Contoh tanggapan

      Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan, yang sangat cocok dengan rentang anggaran sekitar 3000 yuan Anda.
      
      ### Sorotan produk Bailian Zephyr Z9:
      - **Layar**: 6,4 inci, 1080 x 2340 piksel, memberikan pengalaman visual yang jelas dan detail.
      - **Penyimpanan dan RAM**: Ruang penyimpanan 128GB dan RAM 6GB, cukup untuk memenuhi kebutuhan penggunaan sehari-hari.
      - **Baterai**: Kapasitas baterai 4000mAh dapat memastikan penggunaan normal sepanjang hari.
      - **Kamera**: Mendukung lensa zoom digital 30×, mampu menangkap detail dari kejauhan.
      - **Desain**: Ringan dan portabel, cocok untuk pengguna yang mengejar gaya dan kenyamanan.
      
      Ponsel ini tidak hanya berharga moderat tetapi juga memiliki konfigurasi seimbang dan desain penampilan yang sangat baik, menjadikannya pilihan yang sangat baik dalam rentang harga ini. Semoga saran-saran ini membantu! Jika Anda memiliki persyaratan atau pertanyaan lain, jangan ragu untuk memberi tahu saya.
      HTTP
      curl

      Contoh permintaan

      curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion \
      --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
      --header 'Content-Type: application/json' \
      --data '{
          "input": {
              "prompt": "Tolong rekomendasikan ponsel sekitar 3000 yuan"
          },
          "parameters":  {
                          "rag_options" : {
                          "pipeline_ids":["YOUR_PIPELINE_ID1"],
                          "file_ids":["YOUR_FILE_ID1"],
                          "metadata_filter":{
                          "name":"Zhang San"},
                          "tags":"ponsel"
                          }
          },
          "debug": {}
      }'
      Ganti YOUR_APP_ID dengan ID aplikasi aktual, YOUR_PIPELINE_ID1 dengan ID basis pengetahuan yang ditentukan, YOUR_FILE_ID1 dengan ID dokumen tidak terstruktur yang ditentukan, dan pasangan kunci-nilai dalam metadata_filter dengan metadata aktual.

      Contoh tanggapan

      {"output":{"finish_reason":"stop","session_id":"f2f114864dd24a458f923aab0ec99a1d",
      "text":"Berdasarkan anggaran Anda, saya merekomendasikan Anda mempertimbangkan \"Tongyi Vivid 7\".
      Ini memiliki layar penuh 6,5 inci 1080 x 2400 piksel, dengan kemampuan fotografi AI cerdas yang memungkinkan Anda mengambil foto dengan warna dan detail tingkat profesional.
      Konfigurasi perangkat kerasnya mencakup RAM 8GB dan ruang penyimpanan 128GB, memastikan pengalaman operasi yang lancar; kapasitas baterai 4500mAh juga memenuhi kebutuhan penggunaan sehari-hari dengan baik.
      Selain itu, desain kunci sidik jari samping yang nyaman dan aman. Harga referensi adalah antara 2999 dan 3299 yuan, yang sesuai dengan rentang anggaran Anda."},
      "usage":{"models":[{"output_tokens":141,"model_id":"qwen-plus","input_tokens":1610}]},
      "request_id":"d815d3d1-8cef-95e2-b895-89fc8d0e0f84"}%      
      PHP

      Contoh permintaan

      <?php
      # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
      $api_key = getenv("DASHSCOPE_API_KEY");
      $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual
      
      $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
      
      // Konstruksi data permintaan
      $data = [
          "input" => [
              'prompt' => 'Tolong bantu saya merekomendasikan smartphone di bawah 3000 yuan.'
          ],
          "parameters" => [
              'rag_options' => [
                  'pipeline_ids' => ['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2'], // Ganti dengan ID basis pengetahuan yang ditentukan; gunakan koma untuk memisahkan beberapa ID
                  'file_ids' => ['YOUR_FILE_ID1','YOUR_FILE_ID2'], // Ganti dengan ID dokumen aktual; gunakan koma untuk memisahkan beberapa ID
                  "metadata_filter" => [ // Pasangan kunci-nilai metadata
                      "key1" => "value1",
                      "key2" => "value2"
                  ],
                  "tags" => ["Tag1", "Tag2"] // Tag dokumen
              ]
          ]
      ];
      
      // Enkode data sebagai JSON
      $dataString = json_encode($data);
      
      // Periksa apakah json_encode berhasil
      if (json_last_error() !== JSON_ERROR_NONE) {
          die("JSON encoding gagal dengan error: " . json_last_error_msg());
      }
      
      // Inisialisasi sesi curl
      $ch = curl_init($url);
      
      // Set opsi curl
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_HTTPHEADER, [
          'Content-Type: application/json',
          'Authorization: Bearer ' . $api_key
      ]);
      
      // Eksekusi permintaan
      $response = curl_exec($ch);
      
      // Periksa apakah eksekusi curl berhasil
      if ($response === false) {
          die("curl Error: " . curl_error($ch));
      }
      
      // Dapatkan kode status HTTP
      $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      // Tutup sesi curl
      curl_close($ch);
      
      // Dekode data tanggapan
      $response_data = json_decode($response, true);
      
      // Tangani tanggapan
      if ($status_code == 200) {
          if (isset($response_data['output']['text'])) {
              echo "{$response_data['output']['text']}\n";
          } else {
              echo "Tidak ada teks dalam tanggapan.\n";
          }
      } else {
          if (isset($response_data['request_id'])) {
              echo "request_id={$response_data['request_id']}\n";
          }
          echo "code={$status_code}\n";
          if (isset($response_data['message'])) {
              echo "message={$response_data['message']}\n";
          } else {
              echo "message=Error tidak dikenal\n";
          }
      }
      ?>
      

      Contoh tanggapan

      Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini memiliki harga referensi antara 2499-2799 yuan, yang sempurna untuk persyaratan di bawah 3000 yuan. Fiturnya mencakup desain ringan 6,4 inci 1080 x 2340 piksel, dipadukan dengan penyimpanan 128GB dan RAM 6GB, yang dapat memenuhi kebutuhan penggunaan sehari-hari Anda. Selain itu, ia dilengkapi dengan baterai 4000mAh untuk memastikan penggunaan tanpa khawatir sepanjang hari, dan memiliki lensa zoom digital 30× untuk menangkap detail dari kejauhan, menjadikannya pilihan tipis namun kuat.
      Node.js

      Dependensi:

      npm install axios

      Contoh permintaan

      const axios = require('axios');
      async function callDashScope() {
          // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan: apiKey='sk-xxx' menggunakan API Key Model Studio. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
          const apiKey = process.env.DASHSCOPE_API_KEY;
          const appId = 'YOUR_APP_ID';//Ganti dengan ID aplikasi aktual
      
          const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
      
          const data = {
              input: {
                  prompt: "Tolong rekomendasikan ponsel di bawah 3000 yuan"
              },
              parameters: {
                  rag_options:{
                      pipeline_ids:['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2'], // Ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa ID dengan koma
                      file_ids:['YOUR_FILE_ID1','YOUR_FILE_ID2'], // Ganti dengan ID file yang ditentukan, pisahkan beberapa ID dengan koma
                      metadata_filter:{ // Pasangan kunci-nilai metadata, pisahkan beberapa pasangan dengan koma
                          'key1':'value1',
                          'key2':'value2'
                      },
                      tags: ['tag1', 'tag2'] // Tag dokumen, pisahkan beberapa tag dengan koma
                  }
              },
              debug: {}
          };
      
          try {
              const response = await axios.post(url, data, {
                  headers: {
                      'Authorization': `Bearer ${apiKey}`,
                      'Content-Type': 'application/json'
                  }
              });
      
              if (response.status === 200) {
                  console.log(`${response.data.output.text}`);
              } else {
                  console.log(`request_id=${response.headers['request_id']}`);
                  console.log(`code=${response.status}`);
                  console.log(`message=${response.data.message}`);
              }
          } catch (error) {
              console.error(`Error memanggil DashScope: ${error.message}`);
              if (error.response) {
                  console.error(`Status tanggapan: ${error.response.status}`);
                  console.error(`Data tanggapan: ${JSON.stringify(error.response.data, null, 2)}`);
              }
          }
      }
      
      callDashScope();

      Contoh tanggapan

      Dalam anggaran di bawah 3000 yuan, saya merekomendasikan Anda mempertimbangkan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan dan menampilkan desain tipis dan portabel dengan layar 6,4 inci 1080 × 2340 piksel, penyimpanan 128GB, dan RAM 6GB, yang dapat memenuhi kebutuhan penggunaan sehari-hari Anda. Baterai 4000mAh-nya memastikan penggunaan sepanjang hari, sementara lensa zoom digital 30× membantu menangkap detail dari jarak lebih jauh. Secara keseluruhan, ini adalah pilihan bernilai tinggi.
      C#

      Contoh permintaan

      using System.Text;
      
      class Program
      {
          static async Task Main(string[] args)
          {
              // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
              string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
              string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi aktual
              // YOUR_PIPELINE_ID1 ganti dengan ID basis pengetahuan yang ditentukan, YOUR_FILE_ID1 ganti dengan ID dokumen tidak terstruktur yang ditentukan
              if (string.IsNullOrEmpty(apiKey))
              {
                  Console.WriteLine("Pastikan DASHSCOPE_API_KEY telah diatur.");
                  return;
              }
      
              string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
              
              using (HttpClient client = new HttpClient())
              {
                  client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                  string jsonContent = $@"{{
                      ""input"": {{
                          ""prompt"": ""Tolong rekomendasikan ponsel di bawah 3000 yuan""
                      }},
                      ""parameters"": {{
                          ""rag_options"" : {{
                              ""pipeline_ids"":[""YOUR_PIPELINE_ID1""],
                              ""file_ids"":[""YOUR_FILE_ID1""],
                              ""metadata_filter"":{{
                                  ""name"":""Zhang San""
                              }},
                      ""tags"":""ponsel""
                          }}
                      }},
                      ""debug"": {{}}
                  }}";
      
                  HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
      
                  try
                  {
                      HttpResponseMessage response = await client.PostAsync(url, content);
      
                      if (response.IsSuccessStatusCode)
                      {
                          string responseBody = await response.Content.ReadAsStringAsync();
                          Console.WriteLine(responseBody);
                      }
                      else
                      {
                          Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                          string responseBody = await response.Content.ReadAsStringAsync();
                          Console.WriteLine(responseBody);
                      }
                  }
                  catch (Exception ex)
                  {
                      Console.WriteLine($"Error memanggil DashScope: {ex.Message}");
                  }
              }
          }
      }

      Contoh tanggapan

      {
          "output": {
              "finish_reason": "stop",
              "session_id": "be9b5a1964fe41c9bbfd8674226bd238",
              "text": "Berdasarkan anggaran Anda, saya merekomendasikan **Bailian Zephyr Z9**. Ponsel ini dibanderol antara 2499-2799 yuan, yang sangat cocok untuk anggaran di bawah 3000 yuan.
      
      ### Sorotan produk
      - **Desain ringan**: Menampilkan layar 6,4 inci dengan resolusi 1080 x 2340 piksel, dengan penampilan yang indah dan mudah dibawa.
      - **Kinerja seimbang**: Dilengkapi dengan RAM 6GB dan ruang penyimpanan 128GB, mampu memenuhi kebutuhan penggunaan sehari-hari.
      - **Baterai tahan lama**: Baterai internal 4000mAh memastikan penggunaan normal sepanjang hari tidak terganggu.
      - **Fotografi unggul**: Mendukung fungsi zoom digital 30×, dengan mudah menangkap pemandangan jauh atau detail.
      
      Jika Anda tidak memiliki persyaratan khusus yang tinggi untuk fotografi atau gaming, maka Bailian Zephyr Z9 akan menjadi pilihan yang baik."
          },
          "usage": {
              "models": [
                  {
                      "output_tokens": 180,
                      "model_id": "qwen-max",
                      "input_tokens": 1055
                  }
              ]
          },
          "request_id": "d0811195-0b3f-931e-90b8-323a65053d9c"
      }
      Go

      Contoh permintaan

      package main
      
      import (
      	"bytes"
      	"encoding/json"
      	"fmt"
      	"io"
      	"net/http"
      	"os"
      )
      
      func main() {
      	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
      	apiKey := os.Getenv("DASHSCOPE_API_KEY")
      	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual
      
      	if apiKey == "" {
      		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
      		return
      	}
      
      	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
      
      	// Buat body permintaan
      	requestBody := map[string]interface{}{
      		"input": map[string]string{
      			"prompt": "Tolong rekomendasikan ponsel di bawah 3000 yuan",
      		},
      		"parameters": map[string]interface{}{
      			"rag_options": map[string]interface{}{
      				"pipeline_ids": []string{"YOUR_PIPELINE_ID1"}, // Ganti dengan ID basis pengetahuan tidak terstruktur yang ditentukan
      				"file_ids":     []string{"YOUR_FILE_ID1"},     // Ganti dengan ID dokumen tidak terstruktur yang ditentukan
      				"metadata_filter": map[string]string{
      					"name": "Zhang San", // Pasangan kunci-nilai metadata
      				},
      				"tags": "ponsel", // Tag dokumen data tidak terstruktur
      			},
      		},
      		"debug": map[string]interface{}{},
      	}
      
      	jsonData, err := json.Marshal(requestBody)
      	if err != nil {
      		fmt.Printf("Gagal mengubah JSON: %v\n", err)
      		return
      	}
      
      	// Buat permintaan HTTP POST
      	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
      	if err != nil {
      		fmt.Printf("Gagal membuat permintaan: %v\n", err)
      		return
      	}
      
      	// Set header permintaan
      	req.Header.Set("Authorization", "Bearer "+apiKey)
      	req.Header.Set("Content-Type", "application/json")
      
      	// Kirim permintaan
      	client := &http.Client{}
      	resp, err := client.Do(req)
      	if err != nil {
      		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
      		return
      	}
      	defer resp.Body.Close()
      
      	// Baca tanggapan
      	body, err := io.ReadAll(resp.Body)
      	if err != nil {
      		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
      		return
      	}
      
      	// Proses tanggapan
      	if resp.StatusCode == http.StatusOK {
      		fmt.Println("Permintaan berhasil:")
      		fmt.Println(string(body))
      	} else {
      		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
      		fmt.Println(string(body))
      	}
      }
      

      Contoh tanggapan

      {
          "output": {
              "finish_reason": "stop",
              "session_id": "9de268b3d84748b5ac6321aba72b6ecd",
              "text": "Berdasarkan anggaran Anda, saya merekomendasikan Anda mempertimbangkan **Bailian Zephyr Z9**. Ponsel ini memiliki harga referensi 2499-2799 yuan, yang sangat cocok untuk kebutuhan di bawah 3000 yuan. Ini memiliki fitur berikut:
      
      - Desain layar ringan 6,4 inci 1080 x 2340 piksel.
      - Dipadukan dengan penyimpanan 128GB dan RAM 6GB, mampu memenuhi kebutuhan penggunaan sehari-hari.
      - Dilengkapi dengan baterai 4000mAh, memastikan penggunaan normal sepanjang hari.
      - Kamera belakang mendukung lensa zoom digital 30×, mampu menangkap detail dari kejauhan.
      
      Jika Anda tidak memiliki persyaratan yang sangat tinggi untuk fotografi atau gaming, maka Bailian Zephyr Z9 harus menjadi pilihan yang baik."
          },
          "usage": {
              "models": [
                  {
                      "output_tokens": 156,
                      "model_id": "qwen-max",
                      "input_tokens": 1055
                  }
              ]
          },
          "request_id": "8940b597-92e1-9471-b4eb-896e563c479d"
      }
  3. Ambil data yang ditentukan dari dokumen terstruktur: Kirim ID basis pengetahuan dan pasangan "header data terstruktur + nilai" dalam rag_options.

    Dapatkan pasangan kunci-nilai data terstruktur (structured_filter): Di halaman Basis Pengetahuan, klik View untuk masuk ke basis pengetahuan. Selanjutnya, klik View Index.

    Python

    Contoh permintaan

    import os
    from http import HTTPStatus
    # Versi SDK dashscope yang direkomendasikan >= 1.20.11
    from dashscope import Application
    import dashscope
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    
    response = Application.call(
        # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        app_id='YOUR_APP_ID',  # Ganti YOUR_APP_ID dengan ID aplikasi
        prompt='Tolong rekomendasikan ponsel di bawah 3000 yuan',
        rag_options={
            "pipeline_ids": ["YOUR_PIPELINE_ID1", "YOUR_PIPELINE_ID2"],  # Ganti dengan ID basis pengetahuan aktual, pisahkan beberapa dengan koma
             "structured_filter": {  # Pasangan kunci-nilai data terstruktur, sesuai dengan data terstruktur, pisahkan beberapa dengan koma
                "key1": "value1",
                "key2": "value2"  
             }
        }
    )
    
    if response.status_code != HTTPStatus.OK:
        print(f'request_id={response.request_id}')
        print(f'code={response.status_code}')
        print(f'message={response.message}')
        print(f'Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code')
    else:
        print('%s\n' % (response.output))

    Contoh tanggapan

    {
        "text": "Saya merekomendasikan ponsel \"Bailian\", yang dibanderol 2999 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda ingin mengetahui informasi lebih lanjut, seperti performa, penampilan, dll., silakan beri tahu saya.",
        "finish_reason": "stop",
        "session_id": "80a3b868b5ce42c8a12f01dccf8651e2",
        "thoughts": null,
        "doc_references": null
    }
    Java

    Contoh permintaan

    // Versi SDK dashscope yang direkomendasikan >= 2.16.8;
    import com.alibaba.dashscope.app.*;
    import com.alibaba.dashscope.exception.ApiException;
    import com.alibaba.dashscope.exception.InputRequiredException;
    import com.alibaba.dashscope.exception.NoApiKeyException;
    import com.google.gson.JsonObject;
    import java.util.List;
    
    import com.alibaba.dashscope.utils.Constants;
    
    public class Main {
        static {
            Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
        }
        public static void streamCall() throws NoApiKeyException, InputRequiredException {
            JsonObject structureFilter = new JsonObject();
            structureFilter.addProperty("key1", "value1"); // Pasangan kunci-nilai data terstruktur
            structureFilter.addProperty("key2", "value2"); // Untuk beberapa, panggil addProperty berulang kali
            ApplicationParam param = ApplicationParam.builder()
                    // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan .apiKey("sk-xxx"). Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    .appId("YOUR_APP_ID") // Ganti dengan ID aplikasi aktual
                    .prompt("Tolong rekomendasikan ponsel sekitar 3000 yuan")
                    .ragOptions(RagOptions.builder()
                            .pipelineIds(List.of("PIPELINE_ID1","PIPELINE_ID2"))  // Ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa dengan koma
                            .structuredFilter(structureFilter)
                            .build())
                    .build();
    
            Application application = new Application();
            ApplicationResult result = application.call(param);
            System.out.printf("%s\n",
                    result.getOutput().getText());// Proses keluaran teks saja
        }
    
        public static void main(String[] args) {
            try {
                streamCall();
            } catch (ApiException | NoApiKeyException | InputRequiredException e) {
                System.out.printf("Exception: %s", e.getMessage());
                System.out.println("Lihat: https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
            }
            System.exit(0);
        }
    }

    Contoh tanggapan

    Saya merekomendasikan ponsel "Bailian", yang dibanderol 2999.0 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda ingin mengetahui informasi lebih lanjut tentang ponsel ini, seperti konfigurasi, performa, dll., silakan beri tahu saya, dan saya akan memberikan informasi lebih rinci kepada Anda.
    HTTP
    curl

    Contoh permintaan

    curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
        "input": {
            "prompt": "Tolong rekomendasikan ponsel sekitar 3000 yuan"
        },
        "parameters":  {
                        "rag_options" : {
                        "pipeline_ids":["YOUR_PIPELINE_ID1"],
                        "structured_filter":{
                        "price":"2999"}
                        }
        },
        "debug": {}
    }'
    Ganti YOUR_APP_ID dengan ID aplikasi aktual, YOUR_PIPELINE_ID1 dengan ID basis pengetahuan yang ditentukan.

    Contoh tanggapan

    {"output":{"finish_reason":"stop","session_id":"d6bc4206f9cc4d368d534f8aa4e502bc",
    "text":"Saya merekomendasikan ponsel dengan harga mendekati 3000 yuan:\n\n- **Ponsel Bailian**, dibanderol 2999 yuan.
    \n\nPonsel ini menawarkan nilai uang yang baik dan memenuhi persyaratan anggaran Anda.
    Jika Anda membutuhkan informasi lebih rinci tentang ponsel ini atau memiliki persyaratan khusus lainnya (seperti performa kamera, model prosesor, dll.), silakan beri tahu saya, dan saya akan mencoba memberikan informasi yang lebih komprehensif."},
    "usage":{"models":[{"output_tokens":73,"model_id":"qwen-max","input_tokens":235}]},"request_id":"934e1258-219c-9ef1-8982-fc1bcefb8f11"}%  
    PHP

    Contoh permintaan

    <?php
    # Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan API key Anda: $api_key="sk-xxx". Namun, tidak disarankan untuk mengkode keras API key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API key.
    $api_key = getenv("DASHSCOPE_API_KEY");
    $application_id = 'YOUR_APP_ID'; // Ganti dengan ID aplikasi aktual
    
    $url = "https://dashscope-intl.aliyuncs.com/api/v1/apps/$application_id/completion";
    
    // Konstruksi data permintaan
    $data = [
        "input" => [
            'prompt' => 'Tolong bantu saya merekomendasikan smartphone di bawah 3000 yuan.'
        ],
        "parameters" => [
            'rag_options' => [
                'pipeline_ids' => ['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2'], // Ganti dengan ID basis pengetahuan yang ditentukan; gunakan koma untuk memisahkan beberapa ID
                "structured_filter" => [ // Pasangan kunci-nilai data terstruktur; gunakan koma untuk memisahkan beberapa entri
                    "key1" => "value1",
                    "key2" => "value2"
                ]
            ]
        ]
    ];
    
    // Enkode data sebagai JSON
    $dataString = json_encode($data);
    
    // Periksa apakah json_encode berhasil
    if (json_last_error() !== JSON_ERROR_NONE) {
        die("JSON encoding gagal dengan error: " . json_last_error_msg());
    }
    
    // Inisialisasi sesi curl
    $ch = curl_init($url);
    
    // Set opsi curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    ]);
    
    // Eksekusi permintaan
    $response = curl_exec($ch);
    
    // Periksa apakah eksekusi curl berhasil
    if ($response === false) {
        die("curl Error: " . curl_error($ch));
    }
    
    // Dapatkan kode status HTTP
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // Tutup sesi curl
    curl_close($ch);
    
    // Dekode data tanggapan
    $response_data = json_decode($response, true);
    
    // Tangani tanggapan
    if ($status_code == 200) {
        if (isset($response_data['output']['text'])) {
            echo "{$response_data['output']['text']}\n";
        } else {
            echo "Tidak ada teks dalam tanggapan.\n";
        }
    } else {
        if (isset($response_data['request_id'])) {
            echo "request_id={$response_data['request_id']}\n";
        }
        echo "code={$status_code}\n";
        if (isset($response_data['message'])) {
            echo "message={$response_data['message']}\n";
        } else {
            echo "message=Error tidak dikenal\n";
        }
    }
    ?>
    

    Contoh tanggapan

    Saya merekomendasikan ponsel "Bailian", yang dibanderol 2999 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda ingin mengetahui informasi lebih lanjut tentang ponsel ini, silakan beri tahu saya.
    Node.js

    Dependensi:

    npm install axios

    Contoh permintaan

    const axios = require('axios');
    async function callDashScope() {
        // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey='sk-xxx'. Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
        const apiKey = process.env.DASHSCOPE_API_KEY;
        const appId = 'YOUR_APP_ID';  // Ganti dengan ID aplikasi aktual
        // YOUR_PIPELINE_ID1 ganti dengan ID basis pengetahuan yang ditentukan, pisahkan beberapa ID basis pengetahuan dengan koma
        const url = `https://dashscope-intl.aliyuncs.com/api/v1/apps/${appId}/completion`;
    
        const data = {
            input: {
                prompt: "Tolong rekomendasikan ponsel di bawah 3000 yuan"
            },
            parameters: {
                rag_options:{
                    pipeline_ids:['YOUR_PIPELINE_ID1','YOUR_PIPELINE_ID2'],
                    structured_filter:{
                        'key1':'value1',
                        'key2':'value2'
                    }
                }
            },
            debug: {}
        };
    
        try {
            const response = await axios.post(url, data, {
                headers: {
                    'Authorization': `Bearer ${apiKey}`,
                    'Content-Type': 'application/json'
                }
            });
    
            if (response.status === 200) {
                console.log(`${response.data.output.text}`);
            } else {
                console.log(`request_id=${response.headers['request_id']}`);
                console.log(`code=${response.status}`);
                console.log(`message=${response.data.message}`);
            }
        } catch (error) {
            console.error(`Error memanggil DashScope: ${error.message}`);
            if (error.response) {
                console.error(`Status tanggapan: ${error.response.status}`);
                console.error(`Data tanggapan: ${JSON.stringify(error.response.data, null, 2)}`);
            }
        }
    }
    
    callDashScope();

    Contoh tanggapan

    Saya merekomendasikan ponsel "Bailian", yang dibanderol 2999 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda ingin mengetahui detail lebih lanjut atau memiliki persyaratan khusus lainnya, silakan beri tahu saya!
    C#

    Contoh permintaan

    using System.Text;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            // Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey="sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
            string apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY")?? throw new InvalidOperationException("Variabel lingkungan DASHSCOPE_API_KEY belum diatur.");;
            string appId = "YOUR_APP_ID";// Ganti dengan ID aplikasi aktual
            // YOUR_PIPELINE_ID1 ganti dengan ID basis pengetahuan yang ditentukan
            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("Pastikan DASHSCOPE_API_KEY telah diatur.");
                return;
            }
    
            string url = $"https://dashscope-intl.aliyuncs.com/api/v1/apps/{appId}/completion";
            
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
                string jsonContent = $@"{{
                    ""input"": {{
                        ""prompt"": ""Tolong rekomendasikan ponsel di bawah 3000 yuan""
                    }},
                    ""parameters"": {{
                        ""rag_options"" : {{
                            ""pipeline_ids"":[""YOUR_PIPELINE_ID1""],
                            ""structured_filter"":{{
                                ""price"":""2999""
                            }}
                        }}
                    }},
                    ""debug"": {{}}
                }}";
    
                HttpContent content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
    
                try
                {
                    HttpResponseMessage response = await client.PostAsync(url, content);
    
                    if (response.IsSuccessStatusCode)
                    {
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                    else
                    {
                        Console.WriteLine($"Permintaan gagal dengan kode status: {response.StatusCode}");
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error memanggil DashScope: {ex.Message}");
                }
            }
        }
    }

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "108e9104568e44f1915fb3d3d44fdc92",
            "text": "Saya merekomendasikan ponsel \"Bailian\", yang dibanderol 2999.0 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda membutuhkan informasi lebih lanjut tentang ponsel ini atau saran lainnya, silakan beri tahu saya."
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 38,
                    "model_id": "qwen-max",
                    "input_tokens": 104
                }
            ]
        },
        "request_id": "d6d103f4-5c22-9782-9682-45d51a5607f9"
    }
    Go

    Contoh permintaan

    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io"
    	"net/http"
    	"os"
    )
    
    func main() {
    	// Jika variabel lingkungan belum dikonfigurasi, Anda dapat mengganti baris berikut dengan apiKey := "sk-xxx". Namun, tidak disarankan untuk mengkode keras API Key langsung ke dalam kode dalam lingkungan produksi untuk mengurangi risiko kebocoran API Key.
    	apiKey := os.Getenv("DASHSCOPE_API_KEY")
    	appId := "YOUR_APP_ID" // Ganti dengan ID aplikasi aktual
    
    	if apiKey == "" {
    		fmt.Println("Pastikan DASHSCOPE_API_KEY telah diatur.")
    		return
    	}
    
    	url := fmt.Sprintf("https://dashscope-intl.aliyuncs.com/api/v1/apps/%s/completion", appId)
    
    	// Buat body permintaan
    	requestBody := map[string]interface{}{
    		"input": map[string]string{
    			"prompt": "Tolong rekomendasikan ponsel di bawah 3000 yuan",
    		},
    		"parameters": map[string]interface{}{
    			"rag_options": map[string]interface{}{
    				"pipeline_ids": []string{"YOUR_PIPELINE_ID1"}, // Ganti dengan ID basis pengetahuan terstruktur yang ditentukan
    				"structured_filter": map[string]string{
    					"price": "2999", // Pasangan kunci-nilai data terstruktur
    				},
    			},
    		},
    		"debug": map[string]interface{}{},
    	}
    
    	jsonData, err := json.Marshal(requestBody)
    	if err != nil {
    		fmt.Printf("Gagal mengubah JSON: %v\n", err)
    		return
    	}
    
    	// Buat permintaan HTTP POST
    	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
    	if err != nil {
    		fmt.Printf("Gagal membuat permintaan: %v\n", err)
    		return
    	}
    
    	// Set header permintaan
    	req.Header.Set("Authorization", "Bearer "+apiKey)
    	req.Header.Set("Content-Type", "application/json")
    
    	// Kirim permintaan
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		fmt.Printf("Gagal mengirim permintaan: %v\n", err)
    		return
    	}
    	defer resp.Body.Close()
    
    	// Baca tanggapan
    	body, err := io.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Printf("Gagal membaca tanggapan: %v\n", err)
    		return
    	}
    
    	// Proses tanggapan
    	if resp.StatusCode == http.StatusOK {
    		fmt.Println("Permintaan berhasil:")
    		fmt.Println(string(body))
    	} else {
    		fmt.Printf("Permintaan gagal dengan kode status: %d\n", resp.StatusCode)
    		fmt.Println(string(body))
    	}
    }
    

    Contoh tanggapan

    {
        "output": {
            "finish_reason": "stop",
            "session_id": "9e0a031b51d1492e8b613ca391b445b0",
            "text": "Saya merekomendasikan Anda mempertimbangkan ponsel \"Bailian\", yang dibanderol 2999.0 yuan, sesuai dengan persyaratan anggaran Anda. Jika Anda membutuhkan informasi lebih lanjut tentang ponsel ini atau rekomendasi lainnya, silakan beri tahu saya."
        },
        "usage": {
            "models": [
                {
                    "output_tokens": 39,
                    "model_id": "qwen-max",
                    "input_tokens": 104
                }
            ]
        },
        "request_id": "036abd4f-10c8-9709-881d-8cc9f8095d54"
    }
Lihat informasi
  • Lihat proses pengambilan: Saat melakukan panggilan, tambahkan has_thoughts ke dalam kode dan atur menjadi True. Proses pengambilan akan dikembalikan di bidang thoughts dari output.

  • Lihat sumber jawaban: Aktifkan Show Source di Retrieval Configuration dari Agent Application dan publikasikan aplikasi tersebut. image

Referensi API

Untuk daftar lengkap parameter, lihat Application calling API.

Kode kesalahan

Jika panggilan gagal dan pesan kesalahan dikembalikan, lihat Pesan kesalahan untuk pemecahan masalah.

Referensi

FAQ

Ketika saya menjalankan contoh kode Java, muncul kesalahan java: package com.alibaba.dashscope.app tidak ada.

  1. Periksa apakah nama kelas dan nama paket dalam pernyataan impor sudah benar.

  2. Tambahkan dependensi: Jika Anda menggunakan Maven atau Gradle untuk manajemen proyek, pastikan bahwa pustaka dependensi DashScope Java SDK telah ditambahkan ke pom.xml atau build.gradle, dan merupakan versi terbaru. Anda dapat mengunjungi Maven untuk mendapatkan nomor versi terbaru dari DashScope Java SDK.

    <!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dashscope-sdk-java</artifactId>
        <version>Isi nomor versi terbaru di sini, seperti 2.16.4</version>
    </dependency>
    // https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
    implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'Isi nomor versi terbaru di sini, seperti 2.16.4'
  3. Tingkatkan SDK: Versi lama DashScope Java SDK mungkin tidak mencakup fitur atau kelas yang Anda butuhkan. Jika Anda sudah menambahkan pustaka dependensi DashScope Java SDK, periksa apakah itu adalah versi terbaru. Jika tidak, tingkatkan ke versi terbaru. Anda dapat memodifikasi versi DashScope Java SDK ke versi terbaru di file pom.xml atau build.gradle.

    <!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dashscope-sdk-java</artifactId>
        <version>Harap modifikasi nomor versi di sini ke versi terbaru</version>
    </dependency>
    // https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
    implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'Harap modifikasi nomor versi di sini ke versi terbaru'
  4. Muat ulang proyek agar perubahan berlaku.

  5. Jalankan kembali contoh kode tersebut.

    Jika masalah tetap ada, ajukan tiket untuk bantuan lebih lanjut.