Topik ini menjelaskan kelas Thread dalam API Asisten, termasuk cara membuat, mengambil, memodifikasi, dan menghapus thread.
Ikhtisar: Untuk informasi lebih lanjut tentang fitur dan penggunaan dasar API Asisten, lihat Ikhtisar API Asisten.
Masa penyimpanan: Semua instans Thread disimpan di server Alibaba Cloud Model Studio dan tidak kedaluwarsa. Anda dapat menggunakan ID thread untuk mengambil informasi konteks.
Nama fungsi | Tipe |
create | Membuat kelas Thread. |
retrieve | Mengambil kelas Thread. |
update | Memodifikasi kelas Thread. |
delete | Menghapus kelas Thread. |
Buat thread
HTTP
Contoh kode
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"messages": [
{
"role": "user",
"content": "halo"
}
]
}'Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
messages | Pesan yang dikirimkan ke thread. | Kelas Pesan | Tidak |
metadata | Nama thread | str | Tidak |
Tanggapan
{
"id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"object": "thread",
"created_at": 1711448377850,
"metadata": {},
"request_id": "dd9489ec-dbdb-95d4-9ff8-cfe29b61db27"
}Parameter Tanggapan
Tanggapan mengembalikan objek thread dengan bidang tambahan berikut:
id: ID thread.
request_id: ID permintaan.
SDK
Kode Contoh
import json
from dashscope import Threads
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Threads.create(
# Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY"),
messages=[{"role": "user", "content": "Bagaimana AI bekerja? Jelaskan dalam istilah sederhana."}]
)
print(json.dumps(thread, default=lambda o: o.__dict__, sort_keys=True, indent=4))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.AssistantThread;
import com.alibaba.dashscope.threads.ThreadParam;
import com.alibaba.dashscope.threads.Threads;
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 {
Threads threads = new Threads();
// Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan apiKey("sk-xxx") menggunakan Kunci API Model Studio Anda.
AssistantThread assistantThread = threads.create(ThreadParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build());
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
messages | List[Dict] | None | Pesan awal dari thread. |
metadata | Dict | None | Pasangan kunci-nilai untuk dikaitkan dengan thread. |
workspace | str | None | ID ruang kerja dari Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika `api_key` adalah kunci API sub-ruang kerja. |
api_key | str | None | Kunci API untuk Alibaba Cloud Model Studio. Kami merekomendasikan untuk mengonfigurasi kunci API sebagai variabel lingkungan. |
Hasil
Hasilnya adalah objek Thread. Kode berikut menunjukkan objek dalam format JSON:
{
"account_id": "sk-6bddfc116de744c3aa1d66893cc87b20",
"created_at": 1711338305031,
"gmt_create": "2024-03-25 11:45:05",
"gmt_update": "2024-03-25 11:45:05",
"id": "thread_97934051-2c15-44bf-97de-310039d873f9",
"is_deleted": false,
"metadata": {},
"object": "thread",
"request_id": "982d4b9a-b982-9d53-9c79-a75b32f7168a",
"status_code": 200
}Parameter Tanggapan
Bidang | Tipe | Deskripsi |
status_code | int | Kode status HTTP. Nilai 200 menunjukkan bahwa panggilan berhasil. Nilai lain menunjukkan bahwa panggilan gagal. |
id | str | ID thread, yaitu string UUID. |
metadata | Dict | Pasangan kunci-nilai yang terkait dengan thread. |
created_at | timestamp | Waktu pembuatan thread. |
Created at | datetime | 2024-03-22 17:12:31 |
GMT Modified | datetime | 2024-03-22 17:12:31 |
code | str | Kode kesalahan. Bidang ini hanya dikembalikan jika permintaan gagal. Parameter ini hanya untuk Python. |
message | str | Pesan kesalahan. Bidang ini hanya dikembalikan jika permintaan gagal. Hanya untuk Python |
Ambil thread
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
thread_id | ID thread yang akan diambil. | str | Ya |
Hasil
{
"id": "thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7",
"object": "thread",
"created_at": 1711507920700,
"metadata": {},
"request_id": "4d4e73ad-15fb-96ac-9262-0643a0fdb5ca"
}Parameter Tanggapan
Tanggapan berisi objek thread yang diambil, mencakup bidang tambahan berikut:
id: ID thread
request_id: ID permintaan.
SDK
Kode Contoh
from dashscope import Threads
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Threads.retrieve(
'thread_id',
# Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY")
)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.AssistantThread;
import com.alibaba.dashscope.threads.Threads;
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 {
Threads threads = new Threads();
// Langsung teruskan thread_id dan apiKey.
// Setel kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan "sk-xxx" dan gunakan Kunci API Model Studio Anda.
AssistantThread assistantThread = threads.retrieve(
"thread_id",
System.getenv("DASHSCOPE_API_KEY")
);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
thread_id | str | - | ID thread yang akan diquery. |
workspace | str | None | ID ruang kerja dari Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika `api_key` adalah kunci API sub-ruang kerja. |
api_key | str | None | Kunci API untuk Alibaba Cloud Model Studio. Kami merekomendasikan untuk mengonfigurasi kunci API sebagai variabel lingkungan. |
Parameter Tanggapan
Lihat hasil pembuatan.
Modifikasi thread
HTTP
Kode Contoh
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7' \
--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 untuk diambil. | str | Ya |
metadata | Nama thread | dict | Tidak |
Hasil
{
"id": "thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7",
"object": "thread",
"created_at": 1711507920700,
"metadata": {
"modified": "true",
"user": "abc123"
},
"request_id": "a9ad63fa-b884-94be-9ec6-5000882de3c4"
}Parameter Tanggapan
Tanggapan mengembalikan objek thread yang dimodifikasi dengan bidang tambahan berikut:
id: thread_id
request_id: ID permintaan.
SDK
Kode Contoh
from dashscope import Threads
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Threads.update(
'thread_id',
# Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY"),
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.Threads;
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 {
Threads threads = new Threads();
UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
.metadata(Collections.singletonMap("key", "value"))
// Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan apiKey("sk-xxx") menggunakan Kunci API Model Studio Anda.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
threads.update("assistant_id", updateMetadataParam);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
thread_id | str | - | ID thread yang akan diperbarui. |
metadata | Dict | None | Informasi yang akan dikaitkan dengan thread. |
workspace | str | None | ID ruang kerja dari Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika `api_key` adalah kunci API sub-ruang kerja. |
api_key | str | None | Kunci API untuk Alibaba Cloud Model Studio. Kami merekomendasikan untuk mengonfigurasi kunci API sebagai variabel lingkungan. |
Parameter Tanggapan
Operasi ini sama dengan operasi pembuatan.
Hapus thread
HTTP
Kode Contoh
curl --location --request DELETE 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Parameter Permintaan
Parameter | Deskripsi | Tipe | Diperlukan |
id | ID thread untuk diambil | str | Ya |
Hasil
{
"id": "thread_c7ebb0ca-2e4f-43e5-b223-6e1f8c6fccc7",
"object": "thread.deleted",
"deleted": true,
"request_id": "b4edb7b8-5855-9787-b5c3-0374ee2b3b2c"
}Parameter Tanggapan
Menampilkan status setelah thread dihapus.
SDK
Contoh kode
from dashscope import Threads
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Threads.delete(
'thread_id',
# Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan api_key="sk-xxx" menggunakan Kunci API Model Studio Anda.
api_key=os.getenv("DASHSCOPE_API_KEY")
)import com.alibaba.dashscope.common.DeletionStatus;
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.Threads;
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 {
Threads threads = new Threads();
// Kami merekomendasikan untuk menetapkan kunci API sebagai variabel lingkungan. Jika tidak, ganti baris berikut dengan apiKey("sk-xxx") menggunakan Kunci API Model Studio Anda.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
DeletionStatus assistantThread = threads.delete("thread_id", apiKey);
}
}Parameter Permintaan
Parameter | Tipe | Nilai default | Deskripsi |
thread_id | str | - | ID thread yang akan dihapus. |
workspace | str | None | ID ruang kerja dari Alibaba Cloud Model Studio. Parameter ini hanya diperlukan ketika `api_key` adalah kunci API sub-ruang kerja. |
api_key | str | None | Kunci API untuk Alibaba Cloud Model Studio. Kami merekomendasikan untuk mengonfigurasi kunci API sebagai variabel lingkungan. |
Parameter Tanggapan
Bidang | Type | Deskripsi |
id | str | ID objek yang dihapus. |
deleted | bool | Apakah Anda yakin ingin menghapus ini? |
Kode kesalahan
Jika pemanggilan model gagal dan pesan kesalahan dikembalikan, lihat Pesan Kesalahan untuk pemecahan masalah.