diff --git a/docs/uniCloud/uni-ai.md b/docs/uniCloud/uni-ai.md index d66025f5b7364944441546ea61fa4b71b56804f9..d1f149f0f6480c9c8080be81f6f0f44398038cd0 100644 --- a/docs/uniCloud/uni-ai.md +++ b/docs/uniCloud/uni-ai.md @@ -146,6 +146,7 @@ const llmManager = uniCloud.ai.getLLMManager({ |topP |number |否 |1 |采样方法,数值越小结果确定性越强;数值越大,结果越随机 |baidu不支持此参数 | |stream |boolean|否 |false |是否使用流式响应,见下方[流式响应](#chat-completion-stream)章节 |baidu不支持此参数 | |sseChannel |object |通过uni-ai计费网关使用流式响应时必填 |- |见下方[流式响应](#chat-completion-stream)章节。客户端如何获取sseChannel对象,请参考:[云函数请求中的中间状态通知通道](sse-channel.md)|baidu不支持此参数 | +|streamEventForSSE|string |否 |message |自动处理流式响应时使用的流式响应回调事件,可选:message、optimizedMessage、line。见下方[流式响应](#chat-completion-stream)章节 | **messages参数说明** @@ -317,10 +318,13 @@ uniCloud的云函数,基于uni-push2,于 HBuilderX 新版提供了sse通道 stream对象有四个事件: - message: 收到AI响应的事件,回调函数内可以获取AI返回的信息。需要注意的是在使用不同服务商时message事件的响应可能有些不同,有些服务商是一个字一个字的返回,有些则是一段一段的返回。 +- optimizedMessage: 收到AI响应的事件,基于message事件降频得到,使用此事件可以避免非常频繁的往客户端发送请求,导致部分情况下客户端处理消息卡顿。云端新增于`2023年6月21日`,HBuilderX本地调试将于下次发版支持。 - line: AI响应一行文字时触发,回调函数内可以获取这行文字的内容。uni-ai对服务商返回内容做了处理,AI每响应一个段落会触发一次此事件 - end: AI响应完毕事件 - error: AI响应错误事件,回调函数内可以获取具体错误信息 +注意,以上事件属于stream对象,不要和sseChannel的事件搞混了,云端调用sseChannel.write客户端就需要使用sseChannel.on('message')进行接受,例如sseChannel并没有optimizedMessage事件。 + **云函数代码示例** ```js @@ -372,7 +376,11 @@ exports.main = async (event, context) => { streamRes.on('line', (line) => { console.log('---line----', line) // 返回一行时触发,即\n }) - streamRes.on('message', async (message) => { + // streamRes.on('message', async (message) => { // 部分服务商message事件频率过高可能导致客户端卡顿,建议使用optimizedMessage事件 + // await sseChannel.write(message) + // console.log('---message----', message) // 实时触发 + // }) + streamRes.on('optimizedMessage', async (message) => { // optimizedMessage事件云端新增于`2023年6月21日`,HBuilderX本地调试将于下次发版支持。 await sseChannel.write(message) console.log('---message----', message) // 实时触发 })