Closed vacuityv closed 5 months ago
bufferedReader.readLine() == null
,
也就是说这里不存在用户的输出内容,所以你可以理解这个[done]
就是我的框架内部自定义的结束标记:一种私有协议。@zhangjh 我理解这段代码,我知道那里不含输出,问题就出在这里,在回调函数无法区分这个[done]是你加的还是Gemini真的返回了一个[done]
@zhangjh 而且data:[done]这个和单纯的[done]差挺多的其实,你去看看他右边的straming返回示例就知道了,就像你说的他是一个标准的一部分,所以你用curl来调用的话这个done都不会被显示出来
@zhangjh 我理解这段代码,我知道那里不含输出,问题就出在这里,在回调函数无法区分这个[done]是你加的还是Gemini真的返回了一个[done]
我理解你的疑问了,在输出内容仅包含跟框架预设的结束标记内容雷同的情况下(无论该结束标记是什么内容),确实会出现这种情况,当然这种概率是特别小的。SSE的标准也是同样。
@zhangjh 而且data:[done]这个和单纯的[done]差挺多的其实,你去看看他右边的straming返回示例就知道了,就像你说的他是一个标准的一部分,所以你用curl来调用的话这个done都不会被显示出来
你可以实际的调用看一下,结束标记内容仅是响应的普通的一部分
有点搞不懂为啥要有这段:
这样会让用户难以判断输出结束,假设用这个[done]判断,如果恰好Gemini返回的content里面就正好是这个怎么办