Topik ini menjelaskan cara menggunakan kelas Message dalam Assistant API untuk membuat, menampilkan daftar, mengambil, dan memodifikasi pesan.
PentingAssistant API akan segera dihentikan. Migrasikan ke Responses API sebagai alternatif. Responses API mencakup beberapa tool bawaan dan mendukung manajemen konteks multi-turn.
Nama fungsi | Tipe |
|---|---|
create | Buat kelas message |
retrieve | Ambil kelas message |
modify | Modifikasi kelas message |
list | Tampilkan daftar kelas message |
Create a message
HTTP
Contoh kodecurl --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": "Who are you",
"metadata": {}
}'
Parameter permintaanNama parameter | Parameter input | Tipe parameter | Wajib |
|---|---|---|---|
thread id | ID thread tempat pesan dikirimkan. | string | Ya |
content | Konten pesan. | string | Ya |
role | Peran entitas yang menyediakan pesan. Hanya `user` yang didukung. | string | Tidak |
metadata | Informasi terkait lainnya. | string | Tidak |
{
"id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"object": "thread.message",
"created_at": 1711508433283,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Who are you",
"annotations": []
}
}
],
"metadata": {},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "b3ad40b9-f052-9665-a064-dab11c34625f"
}
Parameter responsKelas Message dikembalikan. Selain parameter permintaan, respons juga berisi bidang-bidang berikut:
- id: ID pesan.
- request_id: ID permintaan.
SDK
Contoh kodefrom 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',
# Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan api_key="sk-xxx" dan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY"),
content='The message content.',
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 {
// buat pesan ke thread
Messages messages = new Messages();
TextMessageParam param = TextMessageParam.builder()
// Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan .apiKey("sk-xxx") dan Kunci API Model Studio Anda.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.role("user")
.content("How to make delicious beef and potato stew?")
.build();
ThreadMessage message = messages.create("threadId", param);
}
}
Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
thread_id | string | - | ID thread. |
content | string | - | Konten pesan. |
role | str | 'user' | Peran pesan. Nilai default: user. |
metadata | Dict | None | Informasi pasangan kunci-nilai yang terkait dengan pesan. |
workspace | string | None | Workspace ID Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika `api_key` merupakan kunci API untuk sub-workspace. |
api_key | string | None | Kunci API untuk Alibaba Cloud Model Studio. Kami menyarankan Anda mengonfigurasi kunci API sebagai variabel lingkungan (akan dihapus publikasinya dan digabung ke dalam topik 'Configure API Key'). |
Hasilnya adalah objek Message. Kode berikut menunjukkan contoh konten dalam format JSON:
{
"id": "message_05494921-a646-484e-85fc-76329acba842",
"object": "thread.message",
"created_at": 1711345341301,
"thread_id": "thread_f1e7737e-b045-479f-99d1-510db49d535b",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "sdhafjdasf",
"annotations": []
}
}
],
"metadata": {
"key": "value"
},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"status_code": 200,
"request_id": "631de0b3-7e50-9c9e-8444-0924d1b7e7a5"
}
Parameter responsNama bidang | Tipe bidang | Deskripsi bidang |
|---|---|---|
status_code | int | Kode status HTTP dari pemanggilan. Nilai 200 menunjukkan pemanggilan berhasil. Nilai lain menunjukkan pemanggilan gagal. |
id | string | ID pesan, berupa string UUID. |
content | List[dict] | Konten pesan. |
content.type | string | Tipe konten, seperti text. |
content.text | dict | Konten |
content.text.value | string | Nilai teks dari konten |
metadata | Dict | Informasi pasangan kunci-nilai yang terkait dengan pesan ini. |
tool_calls | Dict | Informasi pemanggilan tool. |
plugin_call | Dict | Informasi pemanggilan plugin. |
created_at | timestamp | Waktu saat assistant dibuat. |
gmt_created | datetime | 2024-03-22 17:12:31 |
gmt_modified | datetime | 2024-03-22 17:12:31 |
code | string | Menunjukkan bahwa permintaan gagal. Parameter ini menentukan kode kesalahan. Parameter ini diabaikan jika permintaan berhasil. Hanya untuk Python. |
message | string | Menunjukkan bahwa permintaan gagal. Parameter ini memberikan informasi rinci tentang kegagalan tersebut. Parameter ini diabaikan jika permintaan berhasil. Hanya untuk Python. |
List messages
HTTP
Contoh kodecurl --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 permintaanNama parameter | Deskripsi | Tipe parameter | Wajib |
|---|---|---|---|
thread id | ID thread tempat pesan dikirimkan. | string | Ya |
limit | Jumlah pesan | integer | Tidak |
order | Urutan pengurutan berdasarkan waktu pembuatan: `asc` atau `desc`. | string | Tidak (Default: `desc`) |
{
"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": "Who are you",
"annotations": []
}
}
],
"metadata": {},
"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 responsDaftar kelas Message dikembalikan. Respons juga mencakup parameter permintaan asli dan bidang tambahan berikut:
- Daftar beberapa pesan.
SDK
Contoh kodefrom dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = Messages.list(
'thread_id',
# Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan api_key="sk-xxx" dan Kunci API Model Studio Anda.
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();
// Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan .apiKey("sk-xxx") dan Kunci API Model Studio Anda.
GeneralListParam listThreadMessages = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<ThreadMessage> message = messages.list("threadId", listThreadMessages);
}
}
Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
thread_id | string | - | ID thread yang akan diquery. |
limit | int | None | Jumlah pesan yang akan diambil. |
order | string | None | Urutan pengurutan berdasarkan `created_at`. |
workspace | string | None | Workspace ID Alibaba Cloud Model Studio, yang hanya diperlukan ketika `api_key` merupakan kunci API untuk sub-workspace. |
api_key | string | None | Kunci API untuk Alibaba Cloud Model Studio. Kami menyarankan Anda menyetel kunci API sebagai variabel lingkungan (Topik ini akan dihapus publikasinya dan digabung ke dalam topik "Configure API Key"). |
Nama bidang | Tipe bidang | Deskripsi bidang |
|---|---|---|
has_more | boolean | Menunjukkan apakah masih ada pesan lain yang dapat diambil. |
last_id | string | ID pesan terakhir dalam daftar yang dikembalikan. |
first_id | string | ID pesan pertama dalam daftar yang dikembalikan. |
data | list[Message] | Daftar objek Message. |
Retrieve a message
HTTP
Contoh kodecurl --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 permintaanNama parameter | Deskripsi | Tipe parameter | Wajib |
|---|---|---|---|
thread id | ID thread dari pesan yang akan diambil. | string | Ya |
message_id | ID pesan yang akan diambil. | string | Ya |
{
"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": "Hello",
"annotations": []
}
}
],
"metadata": {},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "4d5ce962-91c3-9edb-87f7-00bbf985135e"
}
Parameter responsKelas Message yang diambil dikembalikan. Selain parameter permintaan, respons berisi bidang-bidang berikut:
- id: ID pesan
- request_id: ID permintaan.
SDK
Contoh kodefrom dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
message = Messages.retrieve(
'message_id',
# Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan api_key="sk-xxx" dan Kunci API Model Studio Anda.
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();
// Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan .apiKey("sk-xxx") dan Kunci API Model Studio Anda.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
ThreadMessage message = messages.retrieve("threadId", "messageId", apiKey);
}
}
Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
message_id | string | - | ID pesan yang akan diquery. |
thread_id | string | - | ID thread tempat pesan tersebut berada. |
workspace | string | None | Workspace ID Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika api_key merupakan Kunci API sub-workspace. |
api_key | string | None | Kunci API untuk Alibaba Cloud Model Studio. Kami menyarankan Anda mengonfigurasi kunci API sebagai variabel lingkungan (Catatan: Metode ini sedang dihentikan dan akan digabung ke dalam topik 'Configure API Key'). |
Lihat respons untuk operasi create.
Modify a message
HTTP
Contoh kodecurl --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 permintaanNama parameter | Parameter input | Tipe parameter | Wajib |
|---|---|---|---|
thread_id | ID thread yang akan dimodifikasi. | string | Ya |
message_id | ID pesan yang akan dimodifikasi. | string | Ya |
metadata | Metadata. | dict |
{
"id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
"object": "thread.message",
"created_at": 1711508622598,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Hello",
"annotations": []
}
}
],
"metadata": {
"modified": "true",
"user": "abc123"
},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "7877b011-cb94-9df1-9add-dc42b7d611f6"
}
Parameter outputKelas Message yang telah dimodifikasi dikembalikan. Selain parameter permintaan, respons berisi bidang-bidang berikut:
- id: ID pesan
- request_id: ID permintaan.
SDK
Contoh kodefrom dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Messages.update(
'message_id',
# Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan api_key="sk-xxx" dan Kunci API Model Studio Anda.
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();
// Setel kunci API menggunakan variabel lingkungan. Jika variabel lingkungan belum disetel, ganti baris berikut dengan .apiKey("sk-xxx") dan Kunci API Model Studio Anda.
UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
.metadata(Collections.singletonMap("key", "value"))
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
messages.update("thread_id", "message_Id", updateMetadataParam);
}
}
Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
message_id | string | - | ID pesan yang akan diperbarui. |
thread_id | string | - | ID thread tempat pesan yang akan diperbarui berada. |
metadata | Dict | None | Informasi yang terkait dengan thread. |
workspace | string | None | Workspace ID Alibaba Cloud Model Studio, yang hanya diperlukan ketika api_key merupakan Kunci API sub-workspace. |
api_key | string | None | Kunci API untuk Alibaba Cloud Model Studio. Kami menyarankan Anda mengonfigurasi kunci API sebagai variabel lingkungan (akan dihapus publikasinya dan digabung ke dalam Configure API Key). |
Lihat respons untuk operasi create.
Kode kesalahan
Jika pemanggilan Assistant API gagal dan mengembalikan pesan kesalahan, lihat Pesan kesalahan untuk menyelesaikan masalah tersebut.