Commit 6e8231d0 authored by 水玉婷's avatar 水玉婷
Browse files

feat:重发消息代码简化

parent 2c5a0d3e
......@@ -501,135 +501,14 @@ const retrySendMessage = async (messageIndex: number) => {
console.log('重发消息:', originalMessage.originalContent, originalMessage.originalMessageType);
// 提前声明 newMessageData 以便在 catch 块中访问
let newMessageData: any = null;
// 重置原失败消息状态为正常
originalMessage.status = 0;
try {
// 创建新消息进行重发,保留原失败消息
// const messageContent = '出差标准'
const messageContent = originalMessage.originalContent;
const messageType = originalMessage.originalMessageType;
originalMessage.status = 0; // 重置原失败消息状态为正常
loading.value = true;
isAIResponding.value = false;
isInThinkingMode.value = false;
currentAIResponse.value = null;
// 创建新消息
newMessageData = {
messageType: 'sent',
avatar: '',
recordId: '',
promptTokens: 0,
completionTokens: 0,
totalTokens: 0,
date: dayjs().format('HH:mm'),
contentBlocks: [] as any[],
status: 1, // 发送中状态
originalContent: messageContent, // 保存原始内容用于重发
originalMessageType: messageType // 保存消息类型用于重发
};
switch (messageType) {
case 'text':
newMessageData.contentBlocks.push({
content: templateService.generateTextTemplate(messageContent),
thinkContent: '',
hasThinkBox: false,
thinkBoxExpanded: false,
});
break;
case 'audio':
newMessageData.contentBlocks.push({
audioData: {
src: messageContent,
durationTime: 0
},
thinkContent: '',
hasThinkBox: false,
thinkBoxExpanded: false,
});
break;
default:
loading.value = false;
return;
}
// 添加新消息到聊天记录
messages.value.push(newMessageData);
await nextTick();
scrollToBottom();
// 调用外部传入的消息发送函数
if (props.onMessageSend) {
const sendContent = messageType === 'audio' ? messageContent : messageContent;
console.log(`调用外部发送函数重发消息`, sendContent);
await props.onMessageSend(sendContent);
// 发送成功后更新新消息状态为已发送,并重置原失败消息状态为正常
newMessageData.status = 2;
} else {
// 默认的API调用逻辑
console.log(`默认API调用逻辑重发消息`, dialogSessionId.value);
const requestData = messageType === 'audio' ? {
questionLocalAudioFilePath: messageContent,
audioDuration: 0,
...props.params,
} : {
question: messageContent,
...props.params,
};
const response = await fetch(`${import.meta.env.VITE_SSE_PATH}/ask/app/${props.params?.appId}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'token': props.token,
'x-session-id': props?.token,
'x-app-code': props.appCode || ''
},
body: JSON.stringify(requestData)
});
const data = await response.json();
if (data.code === 0) {
console.log(`重发成功`);
// 发送成功,更新新消息状态为已发送,并重置原失败消息状态为正常
newMessageData.status = 2;
originalMessage.status = 0; // 重置原失败消息状态为正常
} else if (data.code === -100) {
// 处理-100错误码,触发重连
sseService.reconnectSSE(dialogSessionId.value);
// 设置新消息为失败状态
newMessageData.status = -1;
const simulatedMessage = {
message: '检测到SSE连接错误,触发重连,请重新发送消息',
status: -1, // 错误状态
type: 0 // 错误类型
};
// 调用handleSSEMessage处理模拟消息
return handleSSEMessage(simulatedMessage, true);
} else {
// 其他错误码,设置新消息为失败状态
newMessageData.status = -1;
console.error(`重发失败,错误码: ${data.code}`);
}
}
} catch (error) {
console.error('重发消息失败:', error);
// 如果创建了新消息但发送失败,可以将其状态设置为失败
if (newMessageData) {
newMessageData.status = -1;
}
} finally {
loading.value = false;
}
await sendMessage(originalMessage.originalMessageType, {
message: originalMessage.originalContent,
audioUrl: originalMessage.originalMessageType === 'audio' ? originalMessage.originalContent : undefined,
durationTime: 0
});
};
// 重新连接SSE
......@@ -803,64 +682,6 @@ const simulateLineChartMessage = () => {
const simulateTips = () => {
console.log('模拟总结消息');
// 模拟提示消息
// const simulatedMessage = {
// message: `# 四川公司费用总额分析报告 📊
// ## 一、数据概览 📌
// 根据提供的数据,四川公司2025年1月至3月的费用总额如下:
// | 年月 | 本期费用总额(元) | 同期费用总额(元) | 同比变化(%) |
// |--------|------------------|------------------|--------------|
// | 202501 | 10,682,961.54 | 12,240,780.34 | -12.74% |
// | 202502 | 25,086,103.67 | 26,530,119.19 | -5.45% |
// | 202503 | 39,060,157.77 | 38,533,655.20 | +1.36% |
// ## 二、趋势分析 📈
// ### 1. **费用总额同比变化分析**
// - **2025年1月**:费用总额同比下降 **12.74%**,降幅较大,可能与年初预算控制、业务收缩或成本优化有关。
// - **2025年2月**:费用总额同比下降 **5.45%**,降幅有所收窄,但仍处于下降趋势。
// - **2025年3月**:费用总额同比**增长1.36%**,首次出现同比增长,可能与业务回暖、市场拓展或季节性因素有关。
// ### 2. **费用总额环比变化分析**
// - **1月至2月**:费用总额环比增长 **135.63%**,增长显著,可能与业务活动增加、项目启动或季节性支出有关。
// - **2月至3月**:费用总额环比增长 **55.72%**,增长速度有所放缓,但仍保持增长趋势。
// ## 三、问题识别 🔍
// ### 1. **费用总额同比持续下降(1-2月)**
// - **问题点**:1月至2月费用总额同比持续下降,可能表明公司在成本控制方面采取了较为严格的措施,但也可能影响业务的正常开展。
// - **建议**:需进一步分析费用下降的具体原因,是否为成本优化、业务收缩或预算执行偏差,避免因过度压缩费用影响业务发展。
// ### 2. **3月费用总额同比首次增长**
// - **问题点**:3月费用总额同比首次增长,但增长幅度较小(1.36%),可能表明业务恢复速度较慢,或费用增长主要集中在某些特定项目或部门。
// - **建议**:需关注费用增长的结构,分析增长是否合理,是否与业务增长匹配,避免费用增长脱离实际业务需求。
// ### 3. **缺乏预算和年初数据**
// - **问题点**:数据中“年初费用总额”和“预算费用总额”均为 'null',缺乏预算和年初数据,无法进行预算执行情况分析。
// - **建议**:建议补充预算和年初费用数据,以便更全面地评估费用控制和预算执行情况。
// ## 四、总结与建议 📌
// ### ✅ **总结**
// - 四川公司2025年1月至3月费用总额呈现“先降后升”的趋势,1-2月费用总额同比下降,3月首次出现同比增长。
// - 费用总额同比变化较大,需关注费用控制与业务发展的平衡。
// ### 📌 **建议**
// 1. **加强预算管理**:补充预算和年初费用数据,以便进行预算执行分析。
// 2. **优化费用结构**:分析费用增长的结构,确保费用增长与业务发展相匹配。
// 3. **关注费用下降原因**:对1-2月费用总额同比下降的原因进行深入分析,避免因过度压缩费用影响业务发展。
// 4. **加强成本控制**:在费用增长阶段,需加强成本控制,确保费用增长合理、可控。
// ---
// 📊 **数据可视化建议**(如需进一步分析,可制作折线图、柱状图等,展示费用总额同比、环比变化趋势)。`,
// status: 3, // 图表数据
// type: 6 // 总结消息
// };
const simulatedMessage = {
message: `# 四川公司费用总额分析📊
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment