知识库创建

This commit is contained in:
2025-11-06 19:08:20 +08:00
parent 0bb4853d54
commit d9947e273c
23 changed files with 2563 additions and 1018 deletions

View File

@@ -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消息的数据库IDtask_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消息的数据库IDtask_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());