if (requestTask) {
console.log('requestTask.abort()')
requestTask.abort();
requestTask = null;
}
requestTask = uni.request({
url: getUrl(`assistants/${assistantSid}/text`),
method: 'POST',
data: data,
responseType: "arraybuffer",
enableChunked: true,
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + uni.getStorageSync("access_token")
},
success: () => {
console.log('stream finished');
},
fail: (err) => {
isChat.value = false;
chatMessagesIndex.value = undefined;
showModal(err.message);
nextTick(() => {
handleChatSuccess();
})
console.log("request fail", err);
},
});
let success = (response) => {
let resultText = arrayBufferToUTF8String(response.data);
if (resultText) {
resultText = resultText.trim().split("\n\n");
resultText.forEach(item => {
if (item.indexOf('event: end') > -1) {
nextTick(() => {
handleChatSuccess();
requestTask.offChunkReceived(success)
setTimeout(() => {
requestTask.abort();
}, 100)
})
} else {
if (item.match(/\{.*\}/)) {
const jsonStr = item.match(/\{.*\}/)[0];
const list = JSON.parse(jsonStr);
handleChatContent(list.content);
}
}
})
}
}
requestTask.onChunkReceived(success);
是个ai聊天
10个并发限制