后端流式返回字符串
形如:
'{data: {"id":"as-n5epmnesgd","object":"chat.completion","created":1712714915,"sentence_id":1,"is_end":false,"is_truncated":false,"result":"文本处理助手,我可以回答你的问题并提供相关的信息和建议。","need_clear_history":false,"finish_reason":"normal","usage":{"prompt_tokens":242,"completion_tokens":0,"total_tokens":242}}}'
需要做一些处理:
比如把内部的单引号变为双引号,
比如把未加括号的键加上双引号
const res = await fetch()
const reader = res.body.getReader()
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) {
console.log("exit");
break;
}
const text = decoder.decode(value);
// 打印第一块的文本内容
console.log(text, done);
try {
console.log(JSON.parse(text.replace(/(\b\w+\b)(?=:)/g, '"$1"')));
} catch (error) {
console.log(error);
}
}
``