gemini插头不返回done,防止客户端报错
Browse files- src/server/handlers/gemini.js +1 -1
- src/server/stream.js +2 -2
src/server/handlers/gemini.js
CHANGED
|
@@ -193,7 +193,7 @@ export const handleGeminiRequest = async (req, res, modelName, isStream) => {
|
|
| 193 |
const chunk = createGeminiResponse(content, null, null, null, 'STOP', usage);
|
| 194 |
writeStreamData(res, chunk);
|
| 195 |
clearInterval(heartbeatTimer);
|
| 196 |
-
endStream(res);
|
| 197 |
return;
|
| 198 |
}
|
| 199 |
|
|
|
|
| 193 |
const chunk = createGeminiResponse(content, null, null, null, 'STOP', usage);
|
| 194 |
writeStreamData(res, chunk);
|
| 195 |
clearInterval(heartbeatTimer);
|
| 196 |
+
endStream(res, false);
|
| 197 |
return;
|
| 198 |
}
|
| 199 |
|
src/server/stream.js
CHANGED
|
@@ -108,9 +108,9 @@ export const writeStreamData = (res, data) => {
|
|
| 108 |
* 结束流式响应
|
| 109 |
* @param {Response} res - Express响应对象
|
| 110 |
*/
|
| 111 |
-
export const endStream = (res) => {
|
| 112 |
if (res.writableEnded) return;
|
| 113 |
-
res.write(SSE_DONE);
|
| 114 |
res.end();
|
| 115 |
};
|
| 116 |
|
|
|
|
| 108 |
* 结束流式响应
|
| 109 |
* @param {Response} res - Express响应对象
|
| 110 |
*/
|
| 111 |
+
export const endStream = (res, isWriteDone = true) => {
|
| 112 |
if (res.writableEnded) return;
|
| 113 |
+
if (isWriteDone) res.write(SSE_DONE);
|
| 114 |
res.end();
|
| 115 |
};
|
| 116 |
|