移除聊天组件中的调试日志
This commit is contained in:
@@ -389,7 +389,7 @@ export default function Chat() {
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
console.log('🚀 开始初始化聊天应用...');
|
||||
// console.log('🚀 开始初始化聊天应用...');
|
||||
|
||||
// 并行获取会话列表和应用参数
|
||||
const [conversationData, appParams] = await Promise.all([
|
||||
@@ -441,7 +441,7 @@ export default function Chat() {
|
||||
}
|
||||
|
||||
setInited(true);
|
||||
console.log('✅ 聊天应用初始化完成');
|
||||
// console.log('✅ 聊天应用初始化完成');
|
||||
} catch (e: any) {
|
||||
console.error('❌ 初始化失败:', e);
|
||||
if (e.status === 404) {
|
||||
|
||||
@@ -17,12 +17,12 @@ interface MarkdownProps {
|
||||
* 使用 react-markdown 库进行标准 Markdown 解析,支持流式渲染
|
||||
*/
|
||||
export default function Markdown({ content, className = '' }: MarkdownProps) {
|
||||
console.log('🎨 [Markdown] 渲染组件:', {
|
||||
contentLength: content?.length || 0,
|
||||
contentPreview: content?.substring(0, 100) + (content && content.length > 100 ? '...' : ''),
|
||||
className,
|
||||
hasContent: !!content
|
||||
});
|
||||
// console.log('🎨 [Markdown] 渲染组件:', {
|
||||
// contentLength: content?.length || 0,
|
||||
// contentPreview: content?.substring(0, 100) + (content && content.length > 100 ? '...' : ''),
|
||||
// className,
|
||||
// hasContent: !!content
|
||||
// });
|
||||
|
||||
if (!content) {
|
||||
console.log('⚠️ [Markdown] 内容为空,返回null');
|
||||
|
||||
@@ -82,22 +82,22 @@ const ChatSidebar = forwardRef<ChatSidebarRef, ChatSidebarProps>(({
|
||||
|
||||
setDeleteLoading(true);
|
||||
try {
|
||||
console.log('🗑️ 开始删除会话:', deletingConversation.id);
|
||||
// console.log('🗑️ 开始删除会话:', deletingConversation.id);
|
||||
|
||||
// 调用API删除服务器端的会话
|
||||
const response = await deleteConversation(deletingConversation.id);
|
||||
console.log('✅ 服务器端会话删除响应:', response);
|
||||
// console.log('✅ 服务器端会话删除响应:', response);
|
||||
|
||||
// 检查响应是否成功
|
||||
if (response && (response as any).result === 'success') {
|
||||
console.log('✅ 服务器端会话删除成功');
|
||||
// console.log('✅ 服务器端会话删除成功');
|
||||
message.success('会话删除成功');
|
||||
setDeleteModalVisible(false);
|
||||
|
||||
// 通知父组件会话已删除
|
||||
onConversationDeleted?.(deletingConversation.id);
|
||||
|
||||
console.log('✅ 会话删除完成:', deletingConversation.id);
|
||||
// console.log('✅ 会话删除完成:', deletingConversation.id);
|
||||
} else {
|
||||
throw new Error((response as any)?.error || '删除会话失败');
|
||||
}
|
||||
@@ -130,22 +130,22 @@ const ChatSidebar = forwardRef<ChatSidebarRef, ChatSidebarProps>(({
|
||||
|
||||
setRenameLoading(true);
|
||||
try {
|
||||
console.log('✏️ 开始重命名会话:', { conversationId: renamingConversation.id, newName: newName.trim() });
|
||||
// console.log('✏️ 开始重命名会话:', { conversationId: renamingConversation.id, newName: newName.trim() });
|
||||
|
||||
// 调用API重命名服务器端的会话
|
||||
const response = await renameConversation(renamingConversation.id, newName.trim(), false);
|
||||
console.log('✅ 服务器端会话重命名响应:', response);
|
||||
// console.log('✅ 服务器端会话重命名响应:', response);
|
||||
|
||||
// 检查响应是否成功
|
||||
if (response && (response as any).name) {
|
||||
console.log('✅ 服务器端会话重命名成功');
|
||||
// console.log('✅ 服务器端会话重命名成功');
|
||||
message.success('重命名成功');
|
||||
setRenameModalVisible(false);
|
||||
|
||||
// 通知父组件会话已重命名
|
||||
onConversationRenamed?.(renamingConversation.id, (response as any).name);
|
||||
|
||||
console.log('✅ 会话重命名完成:', renamingConversation.id, '->', (response as any).name);
|
||||
// console.log('✅ 会话重命名完成:', renamingConversation.id, '->', (response as any).name);
|
||||
} else {
|
||||
throw new Error((response as any)?.error || '重命名会话失败');
|
||||
}
|
||||
@@ -213,27 +213,27 @@ const ChatSidebar = forwardRef<ChatSidebarRef, ChatSidebarProps>(({
|
||||
useImperativeHandle(ref, () => ({
|
||||
autoRename: async (conversationId: string) => {
|
||||
try {
|
||||
console.log('🏷️ 开始自动重命名会话为"新对话":', conversationId);
|
||||
// console.log('🏷️ 开始自动重命名会话为"新对话":', conversationId);
|
||||
|
||||
// 调用API将会话重命名为固定的"新对话"
|
||||
const response = await renameConversation(conversationId, '新对话', false);
|
||||
console.log('✅ 服务器端会话重命名响应:', response);
|
||||
// console.log('✅ 服务器端会话重命名响应:', response);
|
||||
|
||||
// 检查响应是否成功
|
||||
if (response && (response as any).name) {
|
||||
console.log('✅ 服务器端会话重命名成功');
|
||||
// console.log('✅ 服务器端会话重命名成功');
|
||||
|
||||
// 通知父组件会话已重命名
|
||||
onConversationRenamed?.(conversationId, (response as any).name);
|
||||
|
||||
console.log('✅ 会话重命名完成:', conversationId, '->', (response as any).name);
|
||||
// console.log('✅ 会话重命名完成:', conversationId, '->', (response as any).name);
|
||||
} else {
|
||||
throw new Error((response as any)?.error || '重命名会话失败');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ 重命名会话失败:', error);
|
||||
// 重命名失败时不显示错误消息,避免打扰用户
|
||||
console.warn('⚠️ 重命名失败,会话将保持默认名称');
|
||||
// console.warn('⚠️ 重命名失败,会话将保持默认名称');
|
||||
}
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -61,27 +61,27 @@ export default function useChatMessage({
|
||||
questionItem: ChatItem,
|
||||
originalResponseId?: string
|
||||
) => {
|
||||
console.log('🔄 [useChatMessage] 更新聊天列表:', {
|
||||
responseItemId: responseItem.id,
|
||||
responseContentLength: responseItem.content.length,
|
||||
responsePreview: responseItem.content.substring(0, 50) + (responseItem.content.length > 50 ? '...' : ''),
|
||||
originalResponseId,
|
||||
questionId,
|
||||
placeholderAnswerId
|
||||
});
|
||||
// console.log('🔄 [useChatMessage] 更新聊天列表:', {
|
||||
// responseItemId: responseItem.id,
|
||||
// responseContentLength: responseItem.content.length,
|
||||
// responsePreview: responseItem.content.substring(0, 50) + (responseItem.content.length > 50 ? '...' : ''),
|
||||
// originalResponseId,
|
||||
// questionId,
|
||||
// placeholderAnswerId
|
||||
// });
|
||||
|
||||
setChatList(produce(getChatList(), (draft) => {
|
||||
console.log('📝 [useChatMessage] 当前聊天列表:', draft.map(item => ({
|
||||
id: item.id,
|
||||
contentLength: item.content.length,
|
||||
contentPreview: item.content.substring(0, 20) + (item.content.length > 20 ? '...' : ''),
|
||||
isAnswer: item.isAnswer
|
||||
})));
|
||||
// console.log('📝 [useChatMessage] 当前聊天列表:', draft.map(item => ({
|
||||
// id: item.id,
|
||||
// contentLength: item.content.length,
|
||||
// contentPreview: item.content.substring(0, 20) + (item.content.length > 20 ? '...' : ''),
|
||||
// isAnswer: item.isAnswer
|
||||
// })));
|
||||
|
||||
// 移除占位符
|
||||
const placeholderIndex = draft.findIndex(item => item.id === placeholderAnswerId);
|
||||
if (placeholderIndex !== -1) {
|
||||
console.log('🗑️ [useChatMessage] 移除占位符:', placeholderAnswerId, 'at index:', placeholderIndex);
|
||||
// console.log('🗑️ [useChatMessage] 移除占位符:', placeholderAnswerId, 'at index:', placeholderIndex);
|
||||
draft.splice(placeholderIndex, 1);
|
||||
}
|
||||
|
||||
@@ -94,12 +94,12 @@ export default function useChatMessage({
|
||||
|
||||
// 更新或添加响应 - 考虑ID可能已经改变的情况
|
||||
let responseIndex = draft.findIndex(item => item.id === responseItem.id);
|
||||
console.log('🔍 [useChatMessage] 查找响应索引 (当前ID):', { responseItemId: responseItem.id, responseIndex });
|
||||
// console.log('🔍 [useChatMessage] 查找响应索引 (当前ID):', { responseItemId: responseItem.id, responseIndex });
|
||||
|
||||
// 如果找不到当前ID的响应,尝试查找原始ID
|
||||
if (responseIndex === -1 && originalResponseId) {
|
||||
responseIndex = draft.findIndex(item => item.id === originalResponseId);
|
||||
console.log('🔍 [useChatMessage] 查找响应索引 (原始ID):', { originalResponseId, responseIndex });
|
||||
// console.log('🔍 [useChatMessage] 查找响应索引 (原始ID):', { originalResponseId, responseIndex });
|
||||
}
|
||||
|
||||
// 如果找不到任何匹配的响应,查找最后一个AI回答
|
||||
@@ -108,30 +108,30 @@ export default function useChatMessage({
|
||||
item.isAnswer &&
|
||||
index > draft.findIndex(q => q.id === questionId)
|
||||
);
|
||||
console.log('🔍 [useChatMessage] 查找响应索引 (最后AI回答):', { responseIndex });
|
||||
// console.log('🔍 [useChatMessage] 查找响应索引 (最后AI回答):', { responseIndex });
|
||||
}
|
||||
|
||||
if (responseIndex !== -1) {
|
||||
console.log('✏️ [useChatMessage] 更新现有响应:', {
|
||||
responseIndex,
|
||||
oldContentLength: draft[responseIndex].content.length,
|
||||
newContentLength: responseItem.content.length
|
||||
});
|
||||
// console.log('✏️ [useChatMessage] 更新现有响应:', {
|
||||
// responseIndex,
|
||||
// oldContentLength: draft[responseIndex].content.length,
|
||||
// newContentLength: responseItem.content.length
|
||||
// });
|
||||
draft[responseIndex] = { ...responseItem };
|
||||
} else {
|
||||
console.log('➕ [useChatMessage] 添加新响应:', {
|
||||
responseId: responseItem.id,
|
||||
contentLength: responseItem.content.length
|
||||
});
|
||||
// console.log('➕ [useChatMessage] 添加新响应:', {
|
||||
// responseId: responseItem.id,
|
||||
// contentLength: responseItem.content.length
|
||||
// });
|
||||
draft.push({ ...responseItem });
|
||||
}
|
||||
|
||||
console.log('📝 [useChatMessage] 更新后聊天列表:', draft.map(item => ({
|
||||
id: item.id,
|
||||
contentLength: item.content.length,
|
||||
contentPreview: item.content.substring(0, 20) + (item.content.length > 20 ? '...' : ''),
|
||||
isAnswer: item.isAnswer
|
||||
})));
|
||||
// console.log('📝 [useChatMessage] 更新后聊天列表:', draft.map(item => ({
|
||||
// id: item.id,
|
||||
// contentLength: item.content.length,
|
||||
// contentPreview: item.content.substring(0, 20) + (item.content.length > 20 ? '...' : ''),
|
||||
// isAnswer: item.isAnswer
|
||||
// })));
|
||||
}));
|
||||
}, [getChatList, setChatList]);
|
||||
|
||||
@@ -269,27 +269,27 @@ export default function useChatMessage({
|
||||
// 发送消息
|
||||
await sendChatMessage(data, {
|
||||
onData: (message: string, isFirstMessage: boolean, { conversationId: newConversationId, messageId, taskId }) => {
|
||||
console.log('📨 [useChatMessage] 收到流式数据:', {
|
||||
messageLength: message.length,
|
||||
message: message.substring(0, 100) + (message.length > 100 ? '...' : ''),
|
||||
isFirstMessage,
|
||||
messageId,
|
||||
newConversationId,
|
||||
taskId,
|
||||
isAgentMode,
|
||||
currentContentLength: responseItem.content.length
|
||||
});
|
||||
// console.log('📨 [useChatMessage] 收到流式数据:', {
|
||||
// messageLength: message.length,
|
||||
// message: message.substring(0, 100) + (message.length > 100 ? '...' : ''),
|
||||
// isFirstMessage,
|
||||
// messageId,
|
||||
// newConversationId,
|
||||
// taskId,
|
||||
// isAgentMode,
|
||||
// currentContentLength: responseItem.content.length
|
||||
// });
|
||||
|
||||
if (!isAgentMode) {
|
||||
// 累积消息内容
|
||||
const oldContent = responseItem.content;
|
||||
responseItem.content = responseItem.content + message;
|
||||
console.log('📝 [useChatMessage] 累积消息内容:', {
|
||||
oldLength: oldContent.length,
|
||||
newLength: responseItem.content.length,
|
||||
addedLength: message.length,
|
||||
preview: responseItem.content.substring(0, 50) + '...'
|
||||
});
|
||||
// console.log('📝 [useChatMessage] 累积消息内容:', {
|
||||
// oldLength: oldContent.length,
|
||||
// newLength: responseItem.content.length,
|
||||
// addedLength: message.length,
|
||||
// preview: responseItem.content.substring(0, 50) + '...'
|
||||
// });
|
||||
} else {
|
||||
const lastThought = responseItem.agent_thoughts?.[responseItem.agent_thoughts?.length - 1];
|
||||
if (lastThought) {
|
||||
@@ -340,16 +340,16 @@ export default function useChatMessage({
|
||||
// originalResponseId
|
||||
// });
|
||||
|
||||
console.log('🔄 [useChatMessage] 准备调用updateCurrentQA:', {
|
||||
responseItemId: responseItem.id,
|
||||
responseContentLength: responseItem.content.length,
|
||||
responsePreview: responseItem.content.substring(0, 100) + (responseItem.content.length > 100 ? '...' : ''),
|
||||
questionId,
|
||||
placeholderAnswerId,
|
||||
originalResponseId,
|
||||
isAgentMode,
|
||||
agentThoughtsCount: responseItem.agent_thoughts?.length || 0
|
||||
});
|
||||
// console.log('🔄 [useChatMessage] 准备调用updateCurrentQA:', {
|
||||
// responseItemId: responseItem.id,
|
||||
// responseContentLength: responseItem.content.length,
|
||||
// responsePreview: responseItem.content.substring(0, 100) + (responseItem.content.length > 100 ? '...' : ''),
|
||||
// questionId,
|
||||
// placeholderAnswerId,
|
||||
// originalResponseId,
|
||||
// isAgentMode,
|
||||
// agentThoughtsCount: responseItem.agent_thoughts?.length || 0
|
||||
// });
|
||||
|
||||
// 更新当前问答(使用防抖)
|
||||
updateCurrentQA({
|
||||
|
||||
@@ -113,7 +113,7 @@ export default function useConversation() {
|
||||
isSetToLocalStorage = true,
|
||||
newConversationName = ''
|
||||
) => {
|
||||
console.log('🔄 设置当前会话ID:', { id, appId, isSetToLocalStorage });
|
||||
// console.log('🔄 设置当前会话ID:', { id, appId, isSetToLocalStorage });
|
||||
|
||||
doSetCurrConversationId(id);
|
||||
|
||||
@@ -130,18 +130,18 @@ export default function useConversation() {
|
||||
|
||||
globalThis.localStorage?.setItem(storageConversationIdKey, JSON.stringify(conversationIdInfo));
|
||||
|
||||
console.log('💾 会话ID已保存到localStorage:', {
|
||||
appUrlKey,
|
||||
conversationId: id,
|
||||
fullStorage: conversationIdInfo
|
||||
});
|
||||
// console.log('💾 会话ID已保存到localStorage:', {
|
||||
// appUrlKey,
|
||||
// conversationId: id,
|
||||
// fullStorage: conversationIdInfo
|
||||
// });
|
||||
} catch (error) {
|
||||
console.error('保存会话ID到本地存储失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// 不进行URL导航,保持单页面应用模式
|
||||
console.log('✅ 会话切换完成,当前会话ID:', id);
|
||||
// console.log('✅ 会话切换完成,当前会话ID:', id);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
+63
-63
@@ -122,11 +122,11 @@ const handleStream = (
|
||||
onNodeFinished?: IOnNodeFinished,
|
||||
onError?: IOnError,
|
||||
) => {
|
||||
console.log('🌊 [handleStream] 开始处理流式响应:', {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
headers: Object.fromEntries(response.headers.entries())
|
||||
});
|
||||
// console.log('🌊 [handleStream] 开始处理流式响应:', {
|
||||
// status: response.status,
|
||||
// statusText: response.statusText,
|
||||
// headers: Object.fromEntries(response.headers.entries())
|
||||
// });
|
||||
|
||||
if (!response.ok) {
|
||||
console.error('❌ [handleStream] 响应错误:', response.status, response.statusText);
|
||||
@@ -141,19 +141,19 @@ const handleStream = (
|
||||
let isFirstMessage = true;
|
||||
let messageCount = 0;
|
||||
|
||||
console.log('📖 [handleStream] 获取reader:', !!reader);
|
||||
// console.log('📖 [handleStream] 获取reader:', !!reader);
|
||||
|
||||
function read() {
|
||||
let hasError = false;
|
||||
reader?.read().then((result: any) => {
|
||||
console.log('📨 [handleStream] 读取数据块:', {
|
||||
done: result.done,
|
||||
valueLength: result.value?.length,
|
||||
messageCount: ++messageCount
|
||||
});
|
||||
// console.log('📨 [handleStream] 读取数据块:', {
|
||||
// done: result.done,
|
||||
// valueLength: result.value?.length,
|
||||
// messageCount: ++messageCount
|
||||
// });
|
||||
|
||||
if (result.done) {
|
||||
console.log('✅ [handleStream] 流式响应完成, 总消息数:', messageCount);
|
||||
// console.log('✅ [handleStream] 流式响应完成, 总消息数:', messageCount);
|
||||
onCompleted && onCompleted();
|
||||
return;
|
||||
}
|
||||
@@ -162,31 +162,31 @@ const handleStream = (
|
||||
buffer += chunk;
|
||||
const lines = buffer.split('\n');
|
||||
|
||||
console.log('🔍 [handleStream] 处理数据块:', {
|
||||
chunkLength: chunk.length,
|
||||
bufferLength: buffer.length,
|
||||
linesCount: lines.length,
|
||||
chunk: chunk.substring(0, 100) + (chunk.length > 100 ? '...' : '')
|
||||
});
|
||||
// console.log('🔍 [handleStream] 处理数据块:', {
|
||||
// chunkLength: chunk.length,
|
||||
// bufferLength: buffer.length,
|
||||
// linesCount: lines.length,
|
||||
// chunk: chunk.substring(0, 100) + (chunk.length > 100 ? '...' : '')
|
||||
// });
|
||||
|
||||
try {
|
||||
lines.forEach((message, index) => {
|
||||
if (message.startsWith('data: ')) {
|
||||
const jsonStr = message.substring(6);
|
||||
console.log(`📋 [handleStream] 解析消息 ${index}:`, {
|
||||
jsonLength: jsonStr.length,
|
||||
preview: jsonStr.substring(0, 200) + (jsonStr.length > 200 ? '...' : '')
|
||||
});
|
||||
// console.log(`📋 [handleStream] 解析消息 ${index}:`, {
|
||||
// jsonLength: jsonStr.length,
|
||||
// preview: jsonStr.substring(0, 200) + (jsonStr.length > 200 ? '...' : '')
|
||||
// });
|
||||
|
||||
try {
|
||||
bufferObj = JSON.parse(jsonStr) as Record<string, any>;
|
||||
console.log('✨ [handleStream] JSON解析成功:', {
|
||||
event: bufferObj.event,
|
||||
hasAnswer: !!bufferObj.answer,
|
||||
answerLength: bufferObj.answer?.length || 0,
|
||||
conversationId: bufferObj.conversation_id,
|
||||
messageId: bufferObj.id || bufferObj.message_id
|
||||
});
|
||||
// console.log('✨ [handleStream] JSON解析成功:', {
|
||||
// event: bufferObj.event,
|
||||
// hasAnswer: !!bufferObj.answer,
|
||||
// answerLength: bufferObj.answer?.length || 0,
|
||||
// conversationId: bufferObj.conversation_id,
|
||||
// messageId: bufferObj.id || bufferObj.message_id
|
||||
// });
|
||||
}
|
||||
catch (e) {
|
||||
console.warn('⚠️ [handleStream] JSON解析失败:', e, 'JSON:', jsonStr);
|
||||
@@ -218,14 +218,14 @@ const handleStream = (
|
||||
|
||||
if (bufferObj.event === 'message' || bufferObj.event === 'agent_message') {
|
||||
const answer = unicodeToChar(bufferObj.answer);
|
||||
console.log('💬 [handleStream] 处理消息事件:', {
|
||||
event: bufferObj.event,
|
||||
isFirstMessage,
|
||||
answerLength: answer.length,
|
||||
answer: answer.substring(0, 50) + (answer.length > 50 ? '...' : ''),
|
||||
conversationId: bufferObj.conversation_id,
|
||||
messageId: bufferObj.id || bufferObj.message_id
|
||||
});
|
||||
// console.log('💬 [handleStream] 处理消息事件:', {
|
||||
// event: bufferObj.event,
|
||||
// isFirstMessage,
|
||||
// answerLength: answer.length,
|
||||
// answer: answer.substring(0, 50) + (answer.length > 50 ? '...' : ''),
|
||||
// conversationId: bufferObj.conversation_id,
|
||||
// messageId: bufferObj.id || bufferObj.message_id
|
||||
// });
|
||||
|
||||
onData(answer, isFirstMessage, {
|
||||
conversationId: bufferObj.conversation_id,
|
||||
@@ -234,44 +234,44 @@ const handleStream = (
|
||||
});
|
||||
isFirstMessage = false;
|
||||
} else if (bufferObj.event === 'agent_thought' && onThought) {
|
||||
console.log('🤔 [handleStream] 处理思考事件:', bufferObj.event);
|
||||
// console.log('🤔 [handleStream] 处理思考事件:', bufferObj.event);
|
||||
onThought(bufferObj as ThoughtItem);
|
||||
} else if (bufferObj.event === 'message_file' && onFile) {
|
||||
console.log('📁 [handleStream] 处理文件事件:', bufferObj.event);
|
||||
// console.log('📁 [handleStream] 处理文件事件:', bufferObj.event);
|
||||
onFile(bufferObj as VisionFile);
|
||||
} else if (bufferObj.event === 'message_end' && onMessageEnd) {
|
||||
console.log('🏁 [handleStream] 处理消息结束事件:', bufferObj.event);
|
||||
// console.log('🏁 [handleStream] 处理消息结束事件:', bufferObj.event);
|
||||
onMessageEnd(bufferObj as MessageEnd);
|
||||
} else if (bufferObj.event === 'message_replace' && onMessageReplace) {
|
||||
console.log('🔄 [handleStream] 处理消息替换事件:', bufferObj.event);
|
||||
// console.log('🔄 [handleStream] 处理消息替换事件:', bufferObj.event);
|
||||
onMessageReplace(bufferObj as MessageReplace);
|
||||
} else if (bufferObj.event === 'workflow_started' && onWorkflowStarted) {
|
||||
console.log('🚀 [handleStream] 处理工作流开始事件:', bufferObj.event);
|
||||
// console.log('🚀 [handleStream] 处理工作流开始事件:', bufferObj.event);
|
||||
onWorkflowStarted(bufferObj as WorkflowStartedResponse);
|
||||
} else if (bufferObj.event === 'workflow_finished' && onWorkflowFinished) {
|
||||
console.log('🎯 [handleStream] 处理工作流完成事件:', bufferObj.event);
|
||||
// console.log('🎯 [handleStream] 处理工作流完成事件:', bufferObj.event);
|
||||
onWorkflowFinished(bufferObj as WorkflowFinishedResponse);
|
||||
} else if (bufferObj.event === 'node_started' && onNodeStarted) {
|
||||
console.log('🔗 [handleStream] 处理节点开始事件:', bufferObj.event);
|
||||
// console.log('🔗 [handleStream] 处理节点开始事件:', bufferObj.event);
|
||||
onNodeStarted(bufferObj as NodeStartedResponse);
|
||||
} else if (bufferObj.event === 'node_finished' && onNodeFinished) {
|
||||
console.log('✅ [handleStream] 处理节点完成事件:', bufferObj.event);
|
||||
// console.log('✅ [handleStream] 处理节点完成事件:', bufferObj.event);
|
||||
onNodeFinished(bufferObj as NodeFinishedResponse);
|
||||
} else {
|
||||
console.log('❓ [handleStream] 未知事件类型:', bufferObj.event);
|
||||
// console.log('❓ [handleStream] 未知事件类型:', bufferObj.event);
|
||||
}
|
||||
} else if (message.trim()) {
|
||||
console.log('📝 [handleStream] 非data消息:', message.substring(0, 100));
|
||||
// console.log('📝 [handleStream] 非data消息:', message.substring(0, 100));
|
||||
}
|
||||
});
|
||||
|
||||
// 保留最后一行(可能是不完整的消息)
|
||||
const lastLine = lines[lines.length - 1];
|
||||
buffer = lastLine;
|
||||
console.log('💾 [handleStream] 保留缓冲区:', {
|
||||
lastLineLength: lastLine.length,
|
||||
preview: lastLine.substring(0, 50)
|
||||
});
|
||||
// console.log('💾 [handleStream] 保留缓冲区:', {
|
||||
// lastLineLength: lastLine.length,
|
||||
// preview: lastLine.substring(0, 50)
|
||||
// });
|
||||
}
|
||||
catch (err) {
|
||||
console.error('❌ [handleStream] 解析响应时出错:', err);
|
||||
@@ -286,10 +286,10 @@ const handleStream = (
|
||||
}
|
||||
|
||||
if (!hasError) {
|
||||
console.log('🔄 [handleStream] 继续读取下一块...');
|
||||
// console.log('🔄 [handleStream] 继续读取下一块...');
|
||||
read();
|
||||
} else {
|
||||
console.log('🛑 [handleStream] 因错误停止读取');
|
||||
// console.log('🛑 [handleStream] 因错误停止读取');
|
||||
}
|
||||
}).catch(err => {
|
||||
console.error('❌ [handleStream] 读取流时出错:', err);
|
||||
@@ -348,11 +348,11 @@ const baseFetch = (url: string, fetchOptions: any, needAllResponseContent: boole
|
||||
.then((res: Response) => {
|
||||
const resClone = res.clone();
|
||||
|
||||
console.log('📥 API Response:', {
|
||||
status: res.status,
|
||||
statusText: res.statusText,
|
||||
url: urlWithPrefix
|
||||
});
|
||||
// console.log('📥 API Response:', {
|
||||
// status: res.status,
|
||||
// statusText: res.statusText,
|
||||
// url: urlWithPrefix
|
||||
// });
|
||||
|
||||
// 错误处理
|
||||
if (!/^(2|3)\d{2}$/.test(res.status.toString())) {
|
||||
@@ -456,11 +456,11 @@ export const ssePost = (
|
||||
|
||||
return fetch(urlWithPrefix, options)
|
||||
.then((res: Response) => {
|
||||
console.log('📡 SSE Response:', {
|
||||
status: res.status,
|
||||
statusText: res.statusText,
|
||||
url: urlWithPrefix
|
||||
});
|
||||
// console.log('📡 SSE Response:', {
|
||||
// status: res.status,
|
||||
// statusText: res.statusText,
|
||||
// url: urlWithPrefix
|
||||
// });
|
||||
|
||||
if (!/^(2|3)\d{2}$/.test(res.status.toString())) {
|
||||
res.json().then((data: any) => {
|
||||
|
||||
Reference in New Issue
Block a user