演示
核心代码
我翻阅微信小程序官网文档得出结论,wx.cloud.callContainer不支持接收流式响应。在uniapp中,要想在微信小程序上实现流式,需要使用uni.request接口。
微信小程序核心代码:
<script>
export default {
data() {
return {
result: '' // 拼接流式返回
}
}
methods: {
StreamRequest: function(url, prompt) { // url:后台URL,需要支持流式返回。prompt:发送给后台的提示词。
let _this = this;
const requestTask = uni.request({
url: url,
responseType: 'text',
method: 'GET',
enableChunked: true, // 打开流式请求
data: {prompt: prompt},
success: response => {
},
fail: error => {}
})
requestTask.onChunkReceived(function(res) {
let chunk_resp = that.arrayBufferToString(res);
this.result += chunk_resp;
console.log('stream result:' + this.result);
})
}
}
}
</script>
注意点
1. 后台要支持流式输出。
2. 要对后台返回的数据进行编码,如arrayBufferToString.
3. 一般大模型返回是markdown格式的,微信小程序里要用markdown组件进行转换。
不做伸手党,需要合作的可以留言或私信,会立即回复。