知识库创建
This commit is contained in:
@@ -679,6 +679,19 @@ async function sendMessage() {
|
||||
// 调用API
|
||||
isGenerating.value = true;
|
||||
|
||||
// 立即创建一个空的AI消息,用于显示加载动画
|
||||
messages.value.push({
|
||||
id: `temp-ai-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
||||
conversationID: currentConversation.value?.id || '',
|
||||
role: 'assistant',
|
||||
content: '',
|
||||
createTime: new Date().toISOString(),
|
||||
updateTime: new Date().toISOString()
|
||||
});
|
||||
|
||||
await nextTick();
|
||||
scrollToBottom();
|
||||
|
||||
try {
|
||||
let aiMessageContent = '';
|
||||
|
||||
@@ -710,6 +723,12 @@ async function sendMessage() {
|
||||
// 保存AI消息的数据库ID(task_id),用于停止生成
|
||||
currentMessageId.value = initData.messageId;
|
||||
console.log('[保存MessageID(TaskID)]', initData.messageId);
|
||||
|
||||
// 更新最后一条AI消息的临时ID为真实的数据库ID
|
||||
const lastMessage = messages.value[messages.value.length - 1];
|
||||
if (lastMessage && lastMessage.role === 'assistant') {
|
||||
lastMessage.id = initData.messageId;
|
||||
}
|
||||
},
|
||||
onMessage: (chunk: string) => {
|
||||
// 确保AI消息已创建(即使内容为空)
|
||||
@@ -900,6 +919,11 @@ async function regenerateMessage(messageId: string) {
|
||||
// 保存AI消息的数据库ID(task_id),用于停止生成
|
||||
currentMessageId.value = initData.messageId;
|
||||
console.log('[保存MessageID(TaskID)-重新生成]', initData.messageId);
|
||||
|
||||
// 如果后端返回了新的messageId,更新消息对象的ID
|
||||
if (initData.messageId !== messageId) {
|
||||
messages.value[messageIndex].id = initData.messageId;
|
||||
}
|
||||
},
|
||||
onMessage: (chunk: string) => {
|
||||
// 累加内容(包括空chunk,因为后端可能分块发送)
|
||||
@@ -907,10 +931,9 @@ async function regenerateMessage(messageId: string) {
|
||||
aiMessageContent += chunk;
|
||||
}
|
||||
|
||||
// 找到对应消息并更新
|
||||
const msgIndex = messages.value.findIndex(m => m.id === messageId);
|
||||
if (msgIndex !== -1) {
|
||||
messages.value[msgIndex].content = aiMessageContent;
|
||||
// 直接使用messageIndex更新消息内容
|
||||
if (messageIndex !== -1) {
|
||||
messages.value[messageIndex].content = aiMessageContent;
|
||||
}
|
||||
|
||||
nextTick(() => scrollToBottom());
|
||||
|
||||
Reference in New Issue
Block a user