Topik ini menjelaskan kelas Message dalam Assistant API, termasuk cara membuat, mencantumkan, mengambil, dan memodifikasi pesan.
Nama Fungsi | Tipe |
membuat | Membuat kelas pesan. |
mengambil | Mengambil kelas pesan. |
memodifikasi | Memodifikasi kelas pesan. |
daftar | Mendaftarkan kelas pesan. |
Buat pesan
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"role": "user",
"content": "Siapa kamu",
"metadata": {}
}'Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
thread id | ID thread tempat pesan tersebut dikirim. | str | Ya |
content | Detail dari pesan tersebut. | str | Ya |
role | Peran dari pesan tersebut. Hanya user yang didukung. | str | Tidak |
metadata | Informasi terkait lainnya. | str | Tidak |
Respon Contoh
{
"id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"object": "thread.message",
"created_at": 1711508433283,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Siapa kamu",
"annotations": []
}
}
],
"metadata": {},
"from": "",
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": {},
"request_id": "b3ad40b9-f052-9665-a064-dab11c34625f"
}Parameter Respon
Output adalah objek pesan yang berisi bidang-bidang berikut selain parameter input:
id: ID pesan.
request_id: ID permintaan.
SDK
Kode Contoh
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
msg = Messages.create(
'the_thread_id',
# Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
content='Isi pesan.',
role='user',
metadata={'key': 'value'}
)import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.TextMessageParam;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
// membuat pesan ke thread
Messages messages = new Messages();
TextMessageParam param = TextMessageParam.builder()
// Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.role("user")
.content("Bagaimana cara membuat rebusan daging sapi dan kentang yang lezat?")
.build();
ThreadMessage message = messages.create("threadId", param);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
thread_id | str | - | ID utas. |
content | str | - | Isi pesan. |
role | str | 'user' | Peran dari pesan tersebut. Nilai defaultnya adalah user. |
metadata | Dict | None | Informasi key-value yang terkait dengan pesan tersebut. |
workspace | str | None | ID Ruang Kerja dari Model Studio. Parameter ini hanya diperlukan jika api_key adalah sub-ruang kerja API key. |
api_key | str | None | Kunci API dari Model Studio. Kami merekomendasikan untuk mengonfigurasi Kunci API sebagai variabel lingkungan. |
Respon Contoh
Hasilnya adalah objek pesan. Kode berikut menunjukkan konten dalam format JSON:
{
"assistant_id": "",
"content": [
{
"text": {
"value": "sdhafjdasf"
},
"type": "text"
}
],
"created_at": 1711345341301,
"display": true,
"from": "",
"gmt_crete": "2024-03-25 13:42:21",
"gmt_update": "2024-03-25 13:42:21",
"id": "message_05494921-a646-484e-85fc-76329acba842",
"metadata": {
"key": "value"
},
"name": "",
"object": "thread.message",
"plugin_call": {},
"request_id": "631de0b3-7e50-9c9e-8444-0924d1b7e7a5",
"role": "user",
"run_id": "",
"status": {},
"status_code": 200,
"thread_id": "thread_f1e7737e-b045-479f-99d1-510db49d535b",
"tool_calls": []
}Parameter Respon
Parameter | Tipe | Deskripsi |
status_code | int | Kode status HTTP. Nilai 200 menunjukkan bahwa panggilan berhasil. Nilai lainnya menunjukkan bahwa panggilan gagal. |
id | str | ID pesan, yaitu string UUID. |
content | List[dict] | Isi pesan. |
content.type | str | Tipe konten, seperti teks. |
content.text | dict | Konten. |
content.text.value | str | Nilai teks dari konten. |
metadata | Dict | Informasi key-value yang terkait dengan pesan ini. |
tool_calls | Dict | Informasi tentang pemanggilan alat. |
plugin_call | Dict | Informasi tentang pemanggilan plug-in. |
created_at | timestamp | Waktu ketika asisten dibuat. |
gmt_created | datetime | 2024-03-22 17:12:31 |
gmt_modified | datetime | 2024-03-22 17:12:31 |
code | str | Menunjukkan bahwa permintaan gagal. Parameter ini menunjukkan kode kesalahan. Parameter ini diabaikan jika permintaan berhasil. Hanya dikembalikan untuk Python SDK. |
message | str | Menunjukkan bahwa permintaan gagal. Parameter ini menunjukkan detail kegagalan. Parameter ini diabaikan jika permintaan berhasil. Hanya dikembalikan untuk Python SDK. |
Daftar pesan
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages?limit=2&order=desc' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
thread id | ID thread ke mana pesan dikirim. | str | Ya |
limit | Jumlah pesan yang akan dikembalikan. | int | Tidak |
order | Urutan di mana pesan diurutkan berdasarkan waktu pembuatan, yang bisa naik atau turun. | str | Tidak (Nilai default adalah "desc") |
Respon Contoh
{
"object": "list",
"data": [
{
"id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"object": "thread.message",
"created_at": 1711508433283,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Siapa kamu",
"annotations": []
}
}
],
"metadata": {},
"from": "",
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": {}
}
],
"first_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"last_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"has_more": false,
"request_id": "78f7d607-4a9a-90c6-8040-d3f81c84d60a"
}Parameter Tanggapan
Keluaran adalah daftar objek pesan yang berisi bidang tambahan selain parameter input pengguna:
Daftar beberapa pesan.
SDK
Kode Contoh
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = Messages.list(
'thread_id',
# Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
limit=1,
order='desc'
)import com.alibaba.dashscope.common.GeneralListParam;
import com.alibaba.dashscope.common.ListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey("sk-xxx")
GeneralListParam listThreadMessages = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<ThreadMessage> message = messages.list("threadId", listThreadMessages);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
thread_id | str | - | ID thread untuk kueri. |
limit | int | None | Jumlah pesan yang akan diambil. |
order | str | None | Urutan di mana pesan diurutkan berdasarkan created_at. |
workspace | str | None | ID Ruang Kerja dari Model Studio. Parameter ini hanya diperlukan jika api_key adalah sub-ruang kerja API key. |
api_key | str | None | Kunci API dari Model Studio. Kami merekomendasikan untuk mengonfigurasi Kunci API sebagai variabel lingkungan. |
Parameter Respon
Parameter | Tipe | Deskripsi |
has_more | bool | Menunjukkan apakah ada lebih banyak pesan untuk diambil. |
last_id | str | ID pesan terakhir dalam daftar yang dikembalikan. |
first_id | str | ID pesan pertama dalam daftar yang dikembalikan. |
data | list[Message] | Daftar objek pesan. |
Ambil pesan
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
thread id | ID thread tempat pesan yang akan diambil dilewatkan. | str | Ya |
message_id | ID pesan yang akan diambil. | str | Ya |
Respon Contoh
{
"id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
"object": "thread.message",
"created_at": 1711508622598,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Halo",
"annotations": []
}
}
],
"metadata": {},
"from": "",
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": {},
"request_id": "4d5ce962-91c3-9edb-87f7-00bbf985135e"
}Parameter Respon
Outputnya adalah objek pesan yang diambil, yang berisi bidang berikut:
id: message_id
request_id: ID permintaan.
SDK
Kode Contoh
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
message = Messages.retrieve(
'message_id',
# Kami sarankan Anda mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id'
)import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Kami sarankan Anda mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey("sk-xxx")
String apiKey = System.getenv("DASHSCOPE_API_KEY");
ThreadMessage message = messages.retrieve("threadId", "messageId", apiKey);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
message_id | str | - | ID dari pesan yang akan dikueri. |
thread_id | str | - | ID dari thread tempat pesan yang akan dikueri berada. |
workspace | str | None | Workspace ID dari Model Studio. Parameter ini hanya diperlukan jika api_key adalah kunci API sub-ruang kerja. |
api_key | str | None | API key dari Model Studio. Kami menyarankan Anda mengonfigurasi kunci API sebagai variabel lingkungan. |
Parameter Respon
Lihat parameter respons dari create.
Modifikasi pesan
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"metadata": {
"modified": "true",
"user": "abc123"
}
}'
Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
thread_id | ID thread yang akan dimodifikasi. | str | Ya |
message_id | ID pesan untuk dimodifikasi. | str | Ya |
metadata | Metadata. | dict |
Respon Contoh
{
"id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
"object": "thread.message",
"created_at": 1711508622598,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Halo",
"annotations": []
}
}
],
"metadata": {
"modified": "true",
"user": "abc123"
},
"from": "",
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": {},
"request_id": "7877b011-cb94-9df1-9add-dc42b7d611f6"
}Parameter Respon
Outputnya adalah objek pesan yang telah dimodifikasi, yang berisi bidang-bidang berikut selain dari parameter input:
id: ID pesan.
request_id: ID permintaan.
SDK
Kode Contoh
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Messages.update(
'message_id',
# Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='the_message_thread_id',
metadata={'key': 'value'}
)import java.util.Collections;
import com.alibaba.dashscope.common.UpdateMetadataParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Kami merekomendasikan untuk mengonfigurasi variabel lingkungan terlebih dahulu. Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey("sk-xxx")
UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
.metadata(Collections.singletonMap("key", "value"))
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
messages.update("thread_id", "message_Id", updateMetadataParam);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
message_id | str | - | ID pesan yang akan diperbarui. |
thread_id | str | - | ID thread tempat pesan yang akan diperbarui berada. |
metadata | Dict | None | Informasi yang terkait dengan thread. |
workspace | str | None | ID Workspace dari Model Studio. Parameter ini hanya diperlukan jika api_key adalah kunci API sub-workspace. |
api_key | str | None | Kunci API dari Model Studio. Kami merekomendasikan untuk mengonfigurasi Kunci API sebagai variabel lingkungan. |
Parameter Respon
Lihat parameter tanggapan dari create.
Kode kesalahan
Jika panggilan gagal dan mengembalikan pesan kesalahan, lihat Pesan Kesalahan untuk pemecahan masalah.