Model Qwen dari Alibaba Cloud Model Studio mendukung antarmuka yang kompatibel dengan OpenAI. Anda dapat memigrasikan kode OpenAI yang sudah ada ke layanan Alibaba Cloud Model Studio hanya dengan memperbarui Kunci API, BASE_URL, dan nama model.
Informasi yang diperlukan untuk kompatibilitas OpenAI
BASE_URL
BASE_URL adalah titik akhir jaringan dari layanan model. Alamat ini memungkinkan Anda mengakses fitur atau data yang disediakan oleh layanan tersebut. Saat menggunakan layanan web atau API, BASE_URL biasanya merupakan URL dasar untuk API, tempat titik akhir tertentu ditambahkan. Anda harus mengonfigurasi BASE_URL saat menggunakan antarmuka yang kompatibel dengan OpenAI untuk memanggil layanan Alibaba Cloud Model Studio.
Saat melakukan panggilan menggunakan kit pengembangan perangkat lunak (SDK) OpenAI atau SDK lain yang kompatibel dengan OpenAI, konfigurasikan BASE_URL sebagai berikut:
Singapura: https://dashscope-intl.aliyuncs.com/compatible-mode/v1 Tiongkok (Beijing): https://dashscope.aliyuncs.com/compatible-mode/v1Saat melakukan panggilan menggunakan permintaan HTTP, konfigurasikan titik akhir akses lengkap sebagai berikut:
Singapura: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions Tiongkok (Beijing): POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
Daftar model yang didukung
Tabel berikut mencantumkan model Qwen yang saat ini didukung oleh antarmuka kompatibel OpenAI.
Kategori model | Nama model |
Qwen | qwen-max qwen-max-latest qwen-max-2025-01-25 qwen-plus qwen-plus-latest qwen-plus-2025-04-28 qwen-plus-2025-01-25 qwen-turbo qwen-turbo-latest qwen-turbo-2025-04-28 qwen-turbo-2024-11-01 |
Seri sumber terbuka Qwen | qwq-32b qwen3-235b-a22b qwen3-32b qwen3-30b-a3b qwen3-14b qwen3-8b qwen3-4b qwen3-1.7b qwen3-0.6b qwen2.5-14b-instruct-1m qwen2.5-7b-instruct-1m qwen2.5-72b-instruct qwen2.5-32b-instruct qwen2.5-14b-instruct qwen2.5-7b-instruct qwen2-72b-instruct qwen2-7b-instruct qwen1.5-110b-chat qwen1.5-72b-chat qwen1.5-32b-chat qwen1.5-14b-chat qwen1.5-7b-chat |
Panggil model menggunakan SDK OpenAI
Prasyarat
Pastikan lingkungan Python telah diinstal di komputer Anda.
Instal versi terbaru SDK OpenAI.
# Jika perintah berikut melaporkan kesalahan, ganti pip dengan pip3. pip install -U openaiAktifkan layanan Alibaba Cloud Model Studio dan peroleh Kunci API. Untuk informasi selengkapnya, lihat Persiapan: Peroleh dan konfigurasikan Kunci API.
Kami menyarankan agar Anda menyetel Kunci API sebagai Variabel lingkungan untuk mengurangi risiko kebocoran Kunci API. Untuk informasi selengkapnya, lihat Menyetel Kunci API sebagai Variabel lingkungan. Anda juga dapat mengonfigurasi Kunci API dalam kode, tetapi hal ini meningkatkan risiko kebocoran.
Pilih model yang akan digunakan. Untuk informasi selengkapnya, lihat Daftar model yang didukung.
Penggunaan
Contoh berikut menunjukkan cara menggunakan SDK OpenAI untuk mengakses model Qwen di Alibaba Cloud Model Studio.
Contoh panggilan non-streaming
from openai import OpenAI
import os
def get_response():
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris ini dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
# Tetapkan base_url SDK DashScope. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # Contoh ini menggunakan qwen-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models.
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Who are you?'}]
)
print(completion.model_dump_json())
if __name__ == '__main__':
get_response()Menjalankan kode menghasilkan hasil berikut:
{
"id": "chatcmpl-xxx",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "I am a large-scale pre-trained model from Alibaba Cloud. My name is Qwen.",
"role": "assistant",
"function_call": null,
"tool_calls": null
}
}
],
"created": 1716430652,
"model": "qwen-plus",
"object": "chat.completion",
"system_fingerprint": null,
"usage": {
"completion_tokens": 18,
"prompt_tokens": 22,
"total_tokens": 40
}
}Contoh panggilan streaming
from openai import OpenAI
import os
def get_response():
client = OpenAI(
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Tetapkan base_url SDK DashScope. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # Contoh ini menggunakan qwen-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models.
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Who are you?'}],
stream=True,
# Gunakan pengaturan berikut untuk menampilkan informasi penggunaan token pada baris terakhir keluaran streaming.
stream_options={"include_usage": True}
)
for chunk in completion:
print(chunk.model_dump_json())
if __name__ == '__main__':
get_response()
Menjalankan kode menghasilkan hasil berikut:
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":"","function_call":null,"role":"assistant","tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":"I am"},"function_call":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":" a large-scale"},"function_call":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":" language"},"function_call":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":" model from Alibaba Cloud"},"function_call":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":", and my name is Qwen."},"function_call":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[{"delta":{"content":"","function_call":null,"role":null,"tool_calls":null},"finish_reason":"stop","index":0,"logprobs":null}],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":null}
{"id":"chatcmpl-xxx","choices":[],"created":1719286190,"model":"qwen-plus","object":"chat.completion.chunk","system_fingerprint":null,"usage":{"completion_tokens":16,"prompt_tokens":22,"total_tokens":38}}Contoh pemanggilan fungsi
Bagian ini memberikan contoh cara menerapkan fitur Pemanggilan alat dengan antarmuka kompatibel OpenAI menggunakan alat kueri cuaca dan waktu. Kode contoh mendukung Pemanggilan alat multi-putaran.
from openai import OpenAI
from datetime import datetime
import json
import os
client = OpenAI(
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Tetapkan base_url SDK DashScope. Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
# Definisikan daftar alat. Model merujuk pada nama dan deskripsi alat saat memilih alat yang akan digunakan.
tools = [
# Alat 1: Dapatkan waktu saat ini.
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "Berguna ketika Anda ingin mengetahui waktu saat ini.",
# Karena tidak diperlukan parameter input untuk mendapatkan waktu saat ini, parameters adalah kamus kosong.
"parameters": {}
}
},
# Alat 2: Dapatkan cuaca kota tertentu.
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Berguna untuk menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
# Lokasi harus disediakan untuk menanyakan cuaca, sehingga parameter diatur menjadi location.
"location": {
"type": "string",
"description": "Kota atau kabupaten, seperti Beijing, Hangzhou, atau Distrik Yuhang."
}
}
},
"required": [
"location"
]
}
}
]
# Simulasikan alat kueri cuaca. Hasil contoh: "Hari ini hujan di Beijing."
def get_current_weather(location):
return f"Hari ini hujan di {location}. "
# Alat untuk menanyakan waktu saat ini. Hasil contoh: "Waktu saat ini: 2024-04-15 17:15:18."
def get_current_time():
# Dapatkan tanggal dan waktu saat ini.
current_datetime = datetime.now()
# Format tanggal dan waktu saat ini.
formatted_time = current_datetime.strftime('%Y-%m-%d %H:%M:%S')
# Kembalikan waktu saat ini yang telah diformat.
return f"Waktu saat ini: {formatted_time}."
# Enkapsulasi fungsi respons model.
def get_response(messages):
completion = client.chat.completions.create(
model="qwen-plus", # Contoh ini menggunakan qwen-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models.
messages=messages,
tools=tools
)
return completion.model_dump()
def call_with_messages():
print('\n')
messages = [
{
"content": input('Silakan masukkan pertanyaan Anda:'), # Pertanyaan contoh: "Jam berapa sekarang?" "Jam berapa satu jam lagi?" "Bagaimana cuaca di Beijing?"
"role": "user"
}
]
print("-"*60)
# Putaran pertama pemanggilan model.
i = 1
first_response = get_response(messages)
assistant_output = first_response['choices'][0]['message']
print(f"\nKeluaran model besar putaran {i}: {first_response}\n")
if assistant_output['content'] is None:
assistant_output['content'] = ""
messages.append(assistant_output)
# Jika tidak perlu memanggil alat, kembalikan jawaban akhir secara langsung.
if assistant_output['tool_calls'] == None: # Jika model menentukan bahwa tidak perlu memanggil alat, cetak balasan asisten secara langsung. Tidak diperlukan putaran kedua pemanggilan model.
print(f"Tidak perlu memanggil alat. Saya dapat menjawab langsung: {assistant_output['content']}")
return
# Jika perlu memanggil alat, lakukan beberapa putaran pemanggilan model hingga model menentukan bahwa tidak perlu memanggil alat lagi.
while assistant_output['tool_calls'] != None:
# Jika model menentukan bahwa perlu memanggil alat kueri cuaca, jalankan alat kueri cuaca.
if assistant_output['tool_calls'][0]['function']['name'] == 'get_current_weather':
tool_info = {"name": "get_current_weather", "role":"tool"}
# Ekstrak informasi parameter lokasi.
location = json.loads(assistant_output['tool_calls'][0]['function']['arguments'])['location']
tool_info['content'] = get_current_weather(location)
# Jika model menentukan bahwa perlu memanggil alat kueri waktu, jalankan alat kueri waktu.
elif assistant_output['tool_calls'][0]['function']['name'] == 'get_current_time':
tool_info = {"name": "get_current_time", "role":"tool"}
tool_info['content'] = get_current_time()
print(f"Keluaran alat: {tool_info['content']}\n")
print("-"*60)
messages.append(tool_info)
assistant_output = get_response(messages)['choices'][0]['message']
if assistant_output['content'] is None:
assistant_output['content'] = ""
messages.append(assistant_output)
i += 1
print(f"Keluaran model besar putaran {i}: {assistant_output}\n")
print(f"Jawaban akhir: {assistant_output['content']}")
if __name__ == '__main__':
call_with_messages()Jika Anda memasukkan Bagaimana cuaca di Hangzhou dan Beijing? Jam berapa sekarang?, program menghasilkan keluaran berikut:

Parameter permintaan
Parameter input diselaraskan dengan parameter antarmuka OpenAI. Parameter berikut didukung:
Parameter | Tipe | Bawaan | Deskripsi |
model | string | - | Menentukan model yang akan digunakan. Untuk daftar model yang tersedia, lihat Daftar model yang didukung. |
messages | array | - | Riwayat percakapan antara pengguna dan model. Setiap elemen dalam array memiliki format |
top_p (opsional) | float | - | Ambang batas probabilitas untuk pengambilan sampel inti. Misalnya, jika Anda menyetel parameter ini ke 0,8, model menghasilkan token dari set token teratas terkecil yang memiliki probabilitas kumulatif 0,8 atau lebih tinggi. Nilai yang valid: (0, 1,0). Nilai yang lebih besar menunjukkan keacakan yang lebih tinggi. Nilai yang lebih kecil menunjukkan determinisme yang lebih tinggi. |
temperature (opsional) | float | - | Mengontrol keacakan dan keragaman tanggapan model. Nilai temperature yang lebih tinggi memuluskan distribusi probabilitas kata kandidat, yang memungkinkan kata yang kurang mungkin dipilih dan menghasilkan hasil yang lebih beragam. Nilai temperature yang lebih rendah mempertajam distribusi probabilitas, yang membuat kata yang lebih mungkin lebih mudah dipilih dan menghasilkan hasil yang lebih deterministik. Nilai yang valid: [0, 2). Kami menyarankan agar Anda tidak menyetel nilai ke 0. |
presence_penalty (opsional) | float | - | Mengontrol pengulangan seluruh urutan dalam konten yang dihasilkan. Nilai presence_penalty yang lebih tinggi mengurangi pengulangan. Nilai yang valid: [-2,0, 2,0]. Catatan Saat ini, parameter ini hanya didukung pada model komersial Qwen dan model sumber terbuka qwen1.5 serta yang lebih baru. |
n (opsional) | integer | 1 | Jumlah tanggapan yang akan dihasilkan. Nilai yang valid: 1 hingga Nilai n yang lebih besar tidak meningkatkan konsumsi token input tetapi meningkatkan konsumsi token output. Saat ini, parameter ini hanya didukung untuk model qwen-plus. Nilainya harus 1 ketika parameter tools dilewatkan. |
max_tokens (opsional) | integer | - | Jumlah maksimum token yang dapat dihasilkan model. Misalnya, jika panjang output maksimum model adalah 2.000 token, Anda dapat menyetel parameter ini ke 1.000 untuk mencegah model menghasilkan konten yang terlalu panjang. Model yang berbeda memiliki batas output yang berbeda. Untuk informasi selengkapnya, lihat daftar model. |
seed (opsional) | integer | - | Bilangan acak seed yang digunakan selama generasi untuk mengontrol keacakan konten yang dihasilkan. Parameter seed mendukung bilangan bulat tak bertanda 64-bit. |
stream (opsional) | boolean | False | Menentukan apakah akan menggunakan keluaran streaming. Saat hasil dialirkan, API mengembalikan generator. Anda harus melakukan iterasi untuk mendapatkan hasilnya. Setiap keluaran adalah urutan inkremental yang sedang dihasilkan. |
stop (opsional) | string atau array | None | Parameter stop memberikan kontrol tepat atas prosedur pembuatan konten. Model secara otomatis berhenti menghasilkan konten ketika akan menyertakan string atau ID token tertentu. Parameter stop dapat berupa string atau array.
|
tools (opsional) | array | None | Menentukan pustaka alat yang dapat dipanggil model. Dalam proses pemanggilan alat, model memilih satu alat dari pustaka. Struktur setiap alat dalam array tools adalah sebagai berikut:
Dalam proses pemanggilan alat, Anda harus menyetel parameter tools baik saat memulai putaran pemanggilan alat maupun saat mengirimkan hasil eksekusi fungsi alat ke model. Model yang saat ini didukung meliputi qwen-turbo, qwen-plus, dan qwen-max. Catatan Parameter tools tidak dapat digunakan bersamaan dengan stream=True. |
stream_options (opsional) | object | None | Mengonfigurasi apakah akan menampilkan jumlah token yang digunakan selama keluaran streaming. Parameter ini hanya berlaku ketika stream disetel ke True. Untuk menghitung jumlah token dalam mode keluaran streaming, setel parameter ini ke |
Parameter respons
Parameter | Tipe data | Deskripsi | Catatan |
id | string | ID yang dihasilkan sistem untuk panggilan ini. | None |
model | string | Nama model yang dipanggil. | None |
system_fingerprint | string | Versi konfigurasi yang digunakan oleh waktu proses model. Fitur ini saat ini tidak didukung dan mengembalikan string kosong "". | None |
choices | array | Rincian konten yang dihasilkan model. | None |
choices[i].finish_reason | string | Berlaku tiga kasus berikut:
| |
choices[i].message | object | Pesan yang dikeluarkan model. | |
choices[i].message.role | string | Peran model, yang tetap menjadi assistant. | |
choices[i].message.content | string | Teks yang dihasilkan model. | |
choices[i].index | integer | Nomor urut hasil yang dihasilkan. Nilai bawaan: 0. | |
created | integer | Stempel waktu UNIX (dalam detik) saat hasil dihasilkan. | None |
usage | object | Konsumsi token dari permintaan. | None |
usage.prompt_tokens | integer | Jumlah token dalam teks input. | None |
usage.completion_tokens | integer | Jumlah token dalam tanggapan yang dihasilkan. | None |
usage.total_tokens | integer | Jumlah dari usage.prompt_tokens dan usage.completion_tokens. | None |
Panggil model menggunakan SDK langchain_openai
Prasyarat
Pastikan lingkungan Python telah diinstal di komputer Anda.
Jalankan perintah berikut untuk menginstal SDK langchain_openai.
# Jika perintah berikut melaporkan kesalahan, ganti pip dengan pip3. pip install -U langchain_openai
Aktifkan layanan Alibaba Cloud Model Studio dan peroleh Kunci API. Untuk informasi selengkapnya, lihat Persiapan: Peroleh dan konfigurasikan Kunci API.
Kami menyarankan agar Anda menyetel Kunci API sebagai Variabel lingkungan untuk mengurangi risiko kebocoran Kunci API. Untuk informasi selengkapnya, lihat Menyetel Kunci API sebagai Variabel lingkungan. Anda juga dapat mengonfigurasi Kunci API dalam kode, tetapi hal ini meningkatkan risiko kebocoran.
Pilih model yang akan digunakan. Untuk informasi selengkapnya, lihat Daftar model yang didukung.
Penggunaan
Contoh berikut menunjukkan cara menggunakan SDK langchain_openai untuk memanggil model Qwen dari Alibaba Cloud Model Studio.
Keluaran non-streaming
Keluaran non-streaming diimplementasikan menggunakan metode invoke. Berikut adalah kode contohnya:
from langchain_openai import ChatOpenAI
import os
def get_response():
llm = ChatOpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris ini dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1", # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1.
model="qwen-plus" # Contoh ini menggunakan qwen-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models.
)
messages = [
{"role":"system","content":"You are a helpful assistant."},
{"role":"user","content":"Who are you?"}
]
response = llm.invoke(messages)
print(response.json())
if __name__ == "__main__":
get_response()Menjalankan kode menghasilkan hasil berikut:
{
"content": "I am a large language model from Alibaba Cloud. My name is Qwen.",
"additional_kwargs": {},
"response_metadata": {
"token_usage": {
"completion_tokens": 16,
"prompt_tokens": 22,
"total_tokens": 38
},
"model_name": "qwen-plus",
"system_fingerprint": "",
"finish_reason": "stop",
"logprobs": null
},
"type": "ai",
"name": null,
"id": "run-xxx",
"example": false,
"tool_calls": [],
"invalid_tool_calls": []
}Keluaran streaming
Keluaran streaming diimplementasikan menggunakan metode stream. Anda tidak perlu mengonfigurasi parameter stream.
from langchain_openai import ChatOpenAI
import os
def get_response():
llm = ChatOpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"), # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris ini dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1", # Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1.
model="qwen-plus", # Contoh ini menggunakan qwen-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models.
stream_usage=True
)
messages = [
{"role":"system","content":"You are a helpful assistant."},
{"role":"user","content":"Who are you?"},
]
response = llm.stream(messages)
for chunk in response:
print(chunk.model_dump_json())
if __name__ == "__main__":
get_response()Menjalankan kode menghasilkan hasil berikut:
{"content": "", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": "I am", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": " a large", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": " language model", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": " from", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": " Alibaba", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": " Cloud", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": ", and my name is Qwen.", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": "", "additional_kwargs": {}, "response_metadata": {"finish_reason": "stop"}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": null, "tool_call_chunks": []}
{"content": "", "additional_kwargs": {}, "response_metadata": {}, "type": "AIMessageChunk", "name": null, "id": "run-xxx", "example": false, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": {"input_tokens": 22, "output_tokens": 16, "total_tokens": 38}, "tool_call_chunks": []}Untuk informasi tentang pengaturan parameter input, lihat Parameter permintaan. Parameter terkait didefinisikan dalam objek ChatOpenAI.
Panggil model menggunakan antarmuka HTTP
Anda dapat memanggil layanan Alibaba Cloud Model Studio menggunakan antarmuka HTTP untuk menerima respons yang memiliki struktur sama dengan respons dari layanan OpenAI.
Prasyarat
Aktifkan layanan Alibaba Cloud Model Studio dan peroleh Kunci API. Untuk informasi selengkapnya, lihat Persiapan: Peroleh dan konfigurasikan Kunci API.
Kami menyarankan agar Anda menyetel Kunci API sebagai Variabel lingkungan untuk mengurangi risiko kebocoran Kunci API. Untuk informasi selengkapnya, lihat Menyetel Kunci API sebagai Variabel lingkungan. Anda juga dapat mengonfigurasi Kunci API dalam kode, tetapi hal ini meningkatkan risiko kebocoran.
Kirim permintaan API
Singapura: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions
Tiongkok (Beijing): POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completionsContoh permintaan
Contoh berikut menunjukkan skrip yang memanggil API menggunakan perintah cURL.
Jika Anda belum mengonfigurasi Kunci API sebagai variabel lingkungan, Anda harus mengganti $DASHSCOPE_API_KEY dengan Kunci API Anda.
Keluaran non-streaming
# Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
]
}'
Menjalankan perintah menghasilkan hasil berikut:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "I am a large language model from Alibaba Cloud. My name is Qwen."
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 11,
"completion_tokens": 16,
"total_tokens": 27
},
"created": 1715252778,
"system_fingerprint": "",
"model": "qwen-plus",
"id": "chatcmpl-xxx"
}Keluaran streaming
Jika Anda ingin menggunakan keluaran streaming, setel parameter stream ke true dalam badan permintaan.
# Jika Anda menggunakan model di wilayah Tiongkok (Beijing), ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
],
"stream":true
}'Menjalankan perintah menghasilkan hasil berikut:
data: {"choices":[{"delta":{"content":"","role":"assistant"},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"finish_reason":null,"delta":{"content":"I am"},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":" a large-scale"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":" language model"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":" from Alibaba Cloud"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":", and my name is Qwen."},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":""},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: [DONE]
Untuk rincian parameter input, lihat Parameter permintaan.
Contoh respons abnormal
Jika terjadi kesalahan selama permintaan, respons menunjukkan penyebab kesalahan dalam bidang code dan message.
{
"error": {
"message": "Incorrect API key provided. ",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}Kode status
Kode kesalahan | Deskripsi |
400 - Permintaan Tidak Valid | Permintaan tidak valid. Untuk informasi selengkapnya, lihat pesan kesalahan. |
401 - Kunci API yang diberikan salah | Kunci API salah. |
429 - Batas laju permintaan tercapai | Batas permintaan per detik (QPS), permintaan per menit (QPM), atau batas lainnya terlampaui. |
429 - Kuota Anda saat ini telah terlampaui, silakan periksa paket dan detail penagihan Anda | Kuota Anda telah terlampaui atau akun Anda memiliki Pembayaran tertunda. |
500 - Server mengalami kesalahan saat memproses permintaan Anda | Terjadi kesalahan di sisi server. |
503 - Mesin saat ini kelebihan beban, silakan coba lagi nanti | Server kelebihan beban. Coba lagi nanti. |