Alibaba Cloud Model Studio menyediakan API untuk memanggil model. Anda dapat terhubung melalui antarmuka yang kompatibel dengan OpenAI atau SDK DashScope.
Topik ini menggunakan Qwen sebagai contoh untuk memandu Anda melalui proses pemanggilan API model. Anda akan mempelajari cara:
Mendapatkan kunci API
Menyiapkan lingkungan pengembangan lokal
Memanggil API Qwen
Pengaturan akun
Buat akun: Jika Anda belum memiliki Akun Alibaba Cloud, buat akun terlebih dahulu.
Jika Anda mengalami masalah apa pun, lihat Daftarkan Akun Alibaba Cloud.
Aktifkan Model Studio: Gunakan Akun Alibaba Cloud Anda untuk membuka Konsol Model Studio. Setelah Anda membaca dan menyetujui Ketentuan Layanan, Model Studio akan diaktifkan secara otomatis. Jika Ketentuan Layanan tidak ditampilkan, layanan tersebut sudah diaktifkan.
Buat kunci API: Buka halaman Key Management dan klik Create API Key. Anda kemudian dapat menggunakan API key tersebut untuk memanggil model.
Tetapkan kunci API sebagai variabel lingkungan
Tetapkan kunci API Anda sebagai variabel lingkungan untuk menghindari eksposur kunci dalam kode Anda dan mengurangi risiko kebocoran.
Pilih bahasa pemrograman
Pilih bahasa atau alat yang familiar untuk memanggil API model.
Python
Langkah 1: Konfigurasikan lingkungan Python
Periksa versi Python Anda
Konfigurasikan lingkungan virtual (Opsional)
Instal OpenAI Python SDK atau DashScope Python SDK
Langkah 2: Panggil API model
OpenAI Python SDK
Jika Anda telah menginstal Python dan OpenAI Python SDK, ikuti langkah-langkah berikut untuk mengirim permintaan API Anda.
Buat file baru bernama
hello_qwen.py.Salin kode berikut ke
hello_qwen.pydan simpan file tersebut.import os from openai import OpenAI try: client = OpenAI( # Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx", menggunakan kunci API Model Studio Anda. api_key=os.getenv("DASHSCOPE_API_KEY"), # Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura. # - Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1 # - AS (Virginia): https://dashscope-us.aliyuncs.com/compatible-mode/v1 # - Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1 base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1", ) completion = client.chat.completions.create( model="qwen-plus", messages=[ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': 'Who are you?'} ] ) print(completion.choices[0].message.content) except Exception as e: print(f"Error message: {e}") print("Untuk informasi lebih lanjut, lihat dokumentasi: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")Jalankan
python hello_qwen.pyataupython3 hello_qwen.pydari command line.Jika Anda melihat
No such file or directory, tentukan path lengkap ke file tersebut.Setelah menjalankan perintah, Anda akan melihat output berikut:
I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.
DashScope Python SDK
Jika Anda telah menginstal Python dan DashScope Python SDK, ikuti langkah-langkah berikut untuk mengirim permintaan API Anda.
Buat file baru bernama
hello_qwen.py.Salin kode berikut ke
hello_qwen.pydan simpan file tersebut.import os from dashscope import Generation import dashscope # Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura. # - Singapura: https://dashscope-intl.aliyuncs.com/api/v1 # - AS (Virginia): https://dashscope-us.aliyuncs.com/api/v1 # - Tiongkok (Beijing): https://dashscope.aliyuncs.com/api/v1 dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1' messages = [ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': 'Who are you?'} ] response = Generation.call( # Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key = "sk-xxx", menggunakan kunci API Model Studio Anda. api_key=os.getenv("DASHSCOPE_API_KEY"), model="qwen-plus", messages=messages, result_format="message" ) if response.status_code == 200: print(response.output.choices[0].message.content) else: print(f"HTTP status code: {response.status_code}") print(f"Error code: {response.code}") print(f"Error message: {response.message}") print("Untuk informasi lebih lanjut, lihat dokumentasi: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")Jalankan
python hello_qwen.pyataupython3 hello_qwen.pydari command line.CatatanJalankan perintah ini dari direktori yang berisi file Python Anda. Untuk menjalankannya dari lokasi mana pun, tentukan path file lengkap.
Setelah menjalankan perintah, Anda akan melihat output berikut:
I am a large-scale language model from Alibaba Cloud. My name is Qwen.
Node.js
Langkah 1: Konfigurasikan lingkungan Node.js
Periksa status instalasi Node.js
Instal SDK pemanggilan model
Langkah 2: Panggil API model
Buat file baru
hello_qwen.mjs.Salin kode berikut ke dalam file tersebut.
import OpenAI from "openai"; try { const openai = new OpenAI( { // Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) berbeda. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key // Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey: "sk-xxx", menggunakan kunci API Model Studio Anda. apiKey: process.env.DASHSCOPE_API_KEY, // Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura. // - Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1 // - AS (Virginia): https://dashscope-us.aliyuncs.com/compatible-mode/v1 // - Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1 baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" } ); const completion = await openai.chat.completions.create({ model: "qwen-plus", messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: "Who are you?" } ], }); console.log(completion.choices[0].message.content); } catch (error) { console.log(`Error message: ${error}`); console.log("Untuk informasi lebih lanjut, lihat dokumentasi: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code"); }Jalankan perintah berikut dari command line untuk mengirim permintaan API:
node hello_qwen.mjsCatatanJalankan perintah ini dari direktori yang berisi
hello_qwen.mjs. Untuk menjalankannya dari lokasi mana pun, tentukan path file lengkap.Pastikan SDK telah diinstal di direktori yang sama dengan
hello_qwen.mjs. Jika berada di direktori berbeda, Anda akan melihat errorCannot find package 'openai' imported from xxx.
Setelah perintah berhasil dijalankan, Anda akan melihat output berikut:
I am a language model from Alibaba Cloud. My name is Qwen.
Java
Langkah 1: Konfigurasikan lingkungan Java
Periksa versi Java Anda
Instal SDK pemanggilan model
Langkah 2: Panggil API model
Anda dapat menjalankan kode berikut untuk memanggil API model.
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
// Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura.
// - Singapura: https://dashscope-intl.aliyuncs.com/api/v1
// - AS (Virginia): https://dashscope-us.aliyuncs.com/api/v1
// - Tiongkok (Beijing): https://dashscope.aliyuncs.com/api/v1
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
Message systemMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.")
.build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Who are you?")
.build();
GenerationParam param = GenerationParam.builder()
// Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: .apiKey("sk-xxx"), menggunakan kunci API Model Studio Anda.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// Daftar model: https://www.alibabacloud.com/help/model-studio/getting-started/models
.model("qwen-plus")
.messages(Arrays.asList(systemMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("Error message: "+e.getMessage());
System.out.println("Untuk informasi lebih lanjut, lihat dokumentasi: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}Setelah menjalankan kode, Anda akan melihat output yang sesuai:
I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.curl
Anda dapat memanggil model di platform Model Studio menggunakan metode HTTP yang kompatibel dengan OpenAI atau metode HTTP DashScope. Untuk daftar model, lihat Models.
Jika variabel lingkungan belum dikonfigurasi, ganti -H "Authorization: Bearer $DASHSCOPE_API_KEY" \ dengan -H "Authorization: Bearer sk-xxx" \ dan gunakan kunci API Model Studio Anda.
OpenAI compatible HTTP
URL dalam contoh kode ini untuk wilayah "Internasional (Singapura)". Jika Anda menggunakan model di wilayah "Daratan Tiongkok (Beijing)", Anda harus mengganti URL dengan https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.
Anda dapat menjalankan perintah berikut untuk mengirim permintaan API:
Setelah mengirim permintaan API, Anda akan menerima respons berikut:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "I am a large-scale language model from Alibaba Cloud. My name is Qwen."
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 22,
"completion_tokens": 16,
"total_tokens": 38
},
"created": 1728353155,
"system_fingerprint": null,
"model": "qwen-plus",
"id": "chatcmpl-39799876-eda8-9527-9e14-2214d641cf9a"
}DashScope HTTP
URL dalam contoh kode ini untuk wilayah Singapura.
Jika Anda menggunakan model di wilayah AS (Virginia), Anda harus mengganti URL dengan
https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation.Jika Anda menggunakan model di wilayah Tiongkok (Beijing), Anda harus mengganti URL dengan
https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.
Anda dapat menjalankan perintah berikut untuk mengirim permintaan API:
Setelah mengirim permintaan API, Anda akan menerima respons berikut:
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "I am a large-scale language model from Alibaba Cloud. My name is Qwen."
}
}
]
},
"usage": {
"total_tokens": 38,
"output_tokens": 16,
"input_tokens": 22
},
"request_id": "87f776d7-3c82-9d39-b238-d1ad38c9b6a9"
}Bahasa lainnya
Panggil API model
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"log"
"net/http"
"os"
)
type Message struct {
Role string `json:"role"`
Content string `json:"content"`
}
type RequestBody struct {
Model string `json:"model"`
Messages []Message `json:"messages"`
}
func main() {
// Buat klien HTTP
client := &http.Client{}
// Bangun isi permintaan
requestBody := RequestBody{
// Daftar model: https://www.alibabacloud.com/help/model-studio/getting-started/models
Model: "qwen-plus",
Messages: []Message{
{
Role: "system",
Content: "You are a helpful assistant.",
},
{
Role: "user",
Content: "Who are you?",
},
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
log.Fatal(err)
}
// Buat permintaan POST. Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura.
// - Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions
// - AS (Virginia): https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
// - Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
req, err := http.NewRequest("POST", "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
// Atur header permintaan
// Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey := "sk-xxx", menggunakan kunci API Model Studio Anda.
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// Kirim permintaan
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Baca isi respons
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
// Cetak isi respons
fmt.Printf("%s\n", bodyText)
}
<?php
// Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura.
// - Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions
// - AS (Virginia): https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
// - Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: $apiKey = "sk-xxx"; menggunakan kunci API Model Studio Anda.
$apiKey = getenv('DASHSCOPE_API_KEY');
// Atur header permintaan
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// Atur isi permintaan
$data = [
"model" => "qwen-plus",
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "Who are you?"
]
]
];
// Inisialisasi sesi cURL
$ch = curl_init();
// Atur opsi cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Jalankan sesi cURL
$response = curl_exec($ch);
// Periksa error
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
// Tutup resource cURL
curl_close($ch);
// Keluarkan respons
echo $response;
?>using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// Kunci API untuk wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak dapat dipertukarkan. Dapatkan Kunci API: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: string? apiKey = "sk-xxx"; menggunakan kunci API Model Studio Anda.
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("API Key not set. Make sure the 'DASHSCOPE_API_KEY' environment variable is set.");
return;
}
// Catatan: base_url berbeda untuk setiap wilayah. Contoh di bawah menggunakan base_url untuk wilayah Singapura.
// - Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions
// - AS (Virginia): https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
// - Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
// Daftar model: https://www.alibabacloud.com/help/model-studio/getting-started/models
string jsonContent = @"{
""model"": ""qwen-plus"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""Who are you?""
}
]
}";
// Kirim permintaan dan dapatkan respons
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// Keluarkan hasil
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// Atur header permintaan
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Kirim permintaan dan dapatkan respons
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// Proses respons
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"Request failed: {response.StatusCode}";
}
}
}
}Referensi API
FAQ
Apa yang harus dilakukan jika muncul error Model.AccessDenied setelah saya memanggil API model?
J: Error ini terjadi karena Anda menggunakan kunci API dari sub-workspace. Sub-workspace tidak dapat mengakses aplikasi atau model di workspace default. Untuk menggunakan model seperti Qwen-Plus, administrator akun root harus memberikan otorisasi ke sub-workspace, lihat Setel izin pemanggilan model.
Langkah selanjutnya
Lihat model lainnya | Kode contoh menggunakan model qwen-plus. Model Studio juga mendukung model Qwen lainnya. Untuk daftar model yang didukung dan referensi API yang sesuai, lihat Models. |
Pelajari penggunaan lanjutan | Kode contoh hanya mencakup tanya jawab dasar. Untuk mempelajari fitur lanjutan API Qwen, seperti keluaran streaming, output terstruktur, dan pemanggilan fungsi, lihat folder Ikhtisar model generasi teks. |
Coba model secara online | Jika Anda ingin berinteraksi dengan model melalui dialog box, mirip dengan pengalaman di Qwen Chat, Anda dapat mengunjungi Playground (Singapura, Virginia, atau Beijing). |











