feat: 添加 TODO 注释以优化内存管理和异步处理
This commit is contained in:
@@ -221,6 +221,8 @@ const readChatCompletionStream = async (
|
||||
): Promise<IImageStreamUpstreamResponse> => {
|
||||
const reader = stream.getReader();
|
||||
const decoder = new TextDecoder();
|
||||
// TODO: 这里会把完整 SSE 文本和 chunk 元数据都累计到当前 Node 进程内存里,
|
||||
// 高并发或超长响应下可能带来明显的事件循环抖动;后续可改为限制缓存窗口或只保留摘要。
|
||||
const chunks: IImageStreamUpstreamResponse["chunks"] = [];
|
||||
let buffer = "";
|
||||
let content = "";
|
||||
@@ -301,6 +303,8 @@ const parseSseDataLine = (line: string): IChatCompletionStreamChunk | null => {
|
||||
const data = trimmed.slice("data:".length).trim();
|
||||
if (!data || data === "[DONE]") return null;
|
||||
|
||||
// TODO: JSON.parse 仍运行在主线程;如果后续接入更大的 SSE chunk,需要增加单行大小保护,
|
||||
// 避免异常大包在单个 tick 内长时间占用事件循环。
|
||||
return JSON.parse(data) as IChatCompletionStreamChunk;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user