Alibaba Cloud Model Studio mendukung panggilan API ke model melalui antarmuka yang kompatibel dengan OpenAI dan SDK DashScope.
Untuk memanggil API Qwen:
Dapatkan kunci API
Siapkan lingkungan pengembangan lokal Anda
Panggil API Qwen
Persiapan akun
Buat akun: Jika Anda belum memiliki Akun Alibaba Cloud, buat satu.
Jika mengalami kendala, lihat Daftar Akun Alibaba Cloud.
Aktifkan Model Studio: Gunakan Akun Alibaba Cloud Anda untuk membuka Alibaba Cloud Model Studio. Baca dan terima Ketentuan Layanan untuk mengaktifkan layanan. Jika dialog Ketentuan Layanan tidak muncul, layanan telah diaktifkan.
Dapatkan kunci API: Buka halaman Key Management dan klik Create API key. Lalu gunakan kunci API tersebut untuk memanggil model.
Atur kunci API Anda sebagai variabel lingkungan
Simpan kunci API Anda dalam variabel lingkungan untuk menghindari hardcoding kredensial dan mengurangi risiko keamanan.
Pilih bahasa pengembangan
Pilih bahasa atau tool untuk memanggil API model.
Python
Langkah 1: Siapkan Python
Periksa versi Python Anda
Siapkan lingkungan virtual (opsional)
Instal OpenAI Python SDK atau DashScope Python SDK
Langkah 2: Panggil API
OpenAI Python SDK
Dengan Python dan OpenAI Python SDK yang telah terinstal, kirim permintaan API pertama Anda.
Buat file bernama
hello_qwen.py.Salin kode ini ke
hello_qwen.pydan simpan.import os from openai import OpenAI try: client = OpenAI( # Jika variabel lingkungan belum dikonfigurasi, ganti dengan: api_key="sk-xxx" api_key=os.getenv("DASHSCOPE_API_KEY"), 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("See: 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.Output-nya adalah:
I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.
DashScope Python SDK
Dengan Python dan DashScope Python SDK yang telah terinstal, kirim permintaan API pertama Anda.
Buat file bernama
hello_qwen.py.Salin kode ini ke
hello_qwen.pydan simpan.import os from dashscope import Generation import dashscope dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1' messages = [ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': 'Who are you?'} ] response = Generation.call( # Kunci API Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key # Jika variabel lingkungan belum dikonfigurasi, ganti dengan: api_key = "sk-xxx" 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("See: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code")Jalankan
python hello_qwen.pyataupython3 hello_qwen.pydari command line.CatatanPerintah dalam contoh ini harus dijalankan dari direktori yang berisi file Python. Untuk menjalankannya dari lokasi lain, tentukan path lengkapnya.
Output-nya adalah:
I am a large-scale language model from Alibaba Cloud. My name is Qwen.
Node.js
Langkah 1: Siapkan lingkungan Node.js Anda
Periksa instalasi Node.js Anda
Instal SDK pemanggilan model
Langkah 2: Panggil API model
Buat file bernama
hello_qwen.mjs.Salin kode ini ke file tersebut.
import OpenAI from "openai"; try { const openai = new OpenAI( { // Kunci API Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key // Jika variabel lingkungan belum dikonfigurasi, ganti dengan: apiKey: "sk-xxx" apiKey: process.env.DASHSCOPE_API_KEY, // Catatan: URL dasar tidak saling menggantikan antar wilayah. Contoh ini menggunakan 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("See: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code"); }Jalankan perintah ini 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 lengkap ke file tersebut.Pastikan SDK telah terinstal di direktori yang sama dengan
hello_qwen.mjs. Jika berada di direktori berbeda, Anda akan melihatCannot find package 'openai' imported from xxx.
Setelah berhasil dijalankan, output-nya adalah:
I am a language model from Alibaba Cloud. My name is Qwen.
Java
Langkah 1: Siapkan lingkungan Java Anda
Periksa versi Java Anda
Instal SDK pemanggilan model
Langkah 2: Panggil API
Jalankan kode ini 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: URL dasar tidak saling menggantikan antar wilayah. Contoh ini menggunakan 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 Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti dengan: .apiKey("sk-xxx")
.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("See: https://www.alibabacloud.com/help/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}Output-nya adalah:
I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.curl
Panggil model di Model Studio menggunakan titik akhir HTTP yang kompatibel dengan OpenAI atau DashScope. Untuk daftar model yang didukung, lihat Daftar model.
Jika DASHSCOPE_API_KEY belum diatur, ganti -H "Authorization: Bearer $DASHSCOPE_API_KEY" dengan -H "Authorization: Bearer sk-xxx".
HTTP kompatibel OpenAI
URL dalam contoh ini menggunakan wilayah Singapura. Jika Anda menggunakan wilayah Tiongkok (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.
Kirim 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 ini menggunakan wilayah Singapura.
Jika Anda menggunakan wilayah AS (Virginia), ganti URL dengan
https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation.Jika Anda menggunakan wilayah Tiongkok (Beijing), ganti URL dengan
https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.
Kirim 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 badan 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: URL dasar tidak saling menggantikan antar wilayah. Contoh ini menggunakan 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 Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti dengan: apiKey := "sk-xxx"
apiKey := os.Getenv("DASHSCOPE_API_KEY")
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
// Kirim permintaan
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
// Baca badan respons
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
// Cetak respons
fmt.Printf("%s\n", bodyText)
}
<?php
// Catatan: URL dasar tidak saling menggantikan antar wilayah. Contoh ini menggunakan 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 Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti dengan: $apiKey = "sk-xxx"
$apiKey = getenv('DASHSCOPE_API_KEY');
// Atur header permintaan
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// Atur badan 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);
// Output 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 Singapura, AS (Virginia), dan Tiongkok (Beijing) tidak saling menggantikan. Dapatkan kunci API Anda: https://www.alibabacloud.com/help/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti dengan: string? apiKey = "sk-xxx"
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: URL dasar tidak saling menggantikan antar wilayah. Contoh ini menggunakan 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);
// Output 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);
// Tangani respons
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"Request failed: {response.StatusCode}";
}
}
}
}Referensi API
Untuk parameter input dan output, lihat Referensi API Qwen.
Untuk model lainnya, lihat Daftar model.
FAQ
Bagaimana cara memperbaiki error Model.AccessDenied setelah memanggil API model?
J: Error ini terjadi karena Anda menggunakan kunci API dari sub-ruang kerja. Sub-ruang kerja tidak dapat mengakses aplikasi atau model di ruang kerja default. Untuk menggunakan kunci API sub-ruang kerja, administrator akun root harus memberikan otorisasi model untuk sub-ruang kerja yang sesuai (misalnya, topik ini menggunakan model Qwen-Plus). Untuk langkah-langkah detailnya, lihat Atur izin untuk pemanggilan model.
Langkah selanjutnya
Jelajahi lebih banyak model | Kode contoh menggunakan |
Pelajari fitur lanjutan | Kode contoh hanya mencakup tanya jawab dasar. Untuk mempelajari lebih lanjut tentang API Qwen, seperti keluaran streaming, output terstruktur, dan pemanggilan fungsi, lihat Ikhtisar model generasi teks. |
Coba model di browser | Jika Anda ingin berinteraksi dengan model melalui dialog box, seperti di Qwen Chat, buka Playground (Singapura, AS (Virginia), Tiongkok (Beijing), Tiongkok (Hong Kong), atau Jerman (Frankfurt)). |











