修复refs 获取存在问题
This commit is contained in:
parent
c533f86b3f
commit
f3ddd1d211
@ -35,6 +35,7 @@ def chat_post(
|
|||||||
"history": history,
|
"history": history,
|
||||||
"model_name": startup.config.model_name,
|
"model_name": startup.config.model_name,
|
||||||
"status": status,
|
"status": status,
|
||||||
|
"meta": meta,
|
||||||
}, ensure_ascii=False).encode('utf-8') + b"\n"
|
}, ensure_ascii=False).encode('utf-8') + b"\n"
|
||||||
|
|
||||||
def generate_response():
|
def generate_response():
|
||||||
|
|||||||
@ -84,7 +84,8 @@ async def upload_file(file: UploadFile = File(...)):
|
|||||||
|
|
||||||
upload_dir = os.path.join(startup.config.save_dir, "data/uploads")
|
upload_dir = os.path.join(startup.config.save_dir, "data/uploads")
|
||||||
os.makedirs(upload_dir, exist_ok=True)
|
os.makedirs(upload_dir, exist_ok=True)
|
||||||
filename = f"{hashstr(file.filename, 4, with_salt=True)}_{file.filename}".lower()
|
basename, ext = os.path.splitext(file.filename)
|
||||||
|
filename = f"{basename}_{hashstr(basename, 4, with_salt=True)}_{ext}".lower()
|
||||||
file_path = os.path.join(upload_dir, filename)
|
file_path = os.path.join(upload_dir, filename)
|
||||||
|
|
||||||
with open(file_path, "wb") as buffer:
|
with open(file_path, "wb") as buffer:
|
||||||
|
|||||||
@ -319,6 +319,7 @@ const appendAiMessage = (message, refs=null) => {
|
|||||||
text: message,
|
text: message,
|
||||||
refs,
|
refs,
|
||||||
status: "init",
|
status: "init",
|
||||||
|
meta: {},
|
||||||
})
|
})
|
||||||
scrollToBottom()
|
scrollToBottom()
|
||||||
}
|
}
|
||||||
@ -345,6 +346,10 @@ const updateMessage = (info) => {
|
|||||||
if (info.status !== null && info.status !== undefined && info.status !== '') {
|
if (info.status !== null && info.status !== undefined && info.status !== '') {
|
||||||
message.status = info.status;
|
message.status = info.status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (info.meta !== null && info.meta !== undefined) {
|
||||||
|
message.meta = info.meta;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
console.error('Message not found');
|
console.error('Message not found');
|
||||||
}
|
}
|
||||||
@ -353,21 +358,13 @@ const updateMessage = (info) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const updateStatus = (id, status) => {
|
const groupRefs = (id) => {
|
||||||
const message = conv.value.messages.find((message) => message.id === id)
|
const message = conv.value.messages.find((message) => message.id === id)
|
||||||
if (message) {
|
|
||||||
message.status = status
|
|
||||||
} else {
|
|
||||||
console.error('Message not found')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (message.refs && message.refs.knowledge_base.results.length > 0) {
|
if (message.refs && message.refs.knowledge_base.results.length > 0) {
|
||||||
|
|
||||||
message.groupedResults = message.refs.knowledge_base.results
|
message.groupedResults = message.refs.knowledge_base.results
|
||||||
.filter(result => result.file && result.file.filename)
|
.filter(result => result.file && result.file.filename)
|
||||||
.reduce((acc, result) => {
|
.reduce((acc, result) => {
|
||||||
const { filename } = result.file;
|
const { filename } = result.file;
|
||||||
console.log(acc, result, filename)
|
|
||||||
if (!acc[filename]) {
|
if (!acc[filename]) {
|
||||||
acc[filename] = []
|
acc[filename] = []
|
||||||
}
|
}
|
||||||
@ -424,7 +421,8 @@ const fetchChatResponse = (user_input, cur_res_id) => {
|
|||||||
return reader.read().then(({ done, value }) => {
|
return reader.read().then(({ done, value }) => {
|
||||||
if (done) {
|
if (done) {
|
||||||
const message = conv.value.messages.find((message) => message.id === cur_res_id)
|
const message = conv.value.messages.find((message) => message.id === cur_res_id)
|
||||||
if (message.refs && message.refs.meta.enable_retrieval) {
|
console.log(message)
|
||||||
|
if (message.meta.enable_retrieval) {
|
||||||
console.log("fetching refs")
|
console.log("fetching refs")
|
||||||
fetchRefs(cur_res_id).then((data) => {
|
fetchRefs(cur_res_id).then((data) => {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
@ -433,10 +431,10 @@ const fetchChatResponse = (user_input, cur_res_id) => {
|
|||||||
refs: data,
|
refs: data,
|
||||||
status: "finished",
|
status: "finished",
|
||||||
});
|
});
|
||||||
updateStatus(cur_res_id, "finished");
|
groupRefs(cur_res_id);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
updateStatus(cur_res_id, "finished");
|
groupRefs(cur_res_id);
|
||||||
}
|
}
|
||||||
isStreaming.value = false;
|
isStreaming.value = false;
|
||||||
if (conv.value.messages.length === 2) { renameTitle(); }
|
if (conv.value.messages.length === 2) { renameTitle(); }
|
||||||
@ -452,6 +450,7 @@ const fetchChatResponse = (user_input, cur_res_id) => {
|
|||||||
text: data.response,
|
text: data.response,
|
||||||
model_name: data.model_name,
|
model_name: data.model_name,
|
||||||
status: data.status,
|
status: data.status,
|
||||||
|
meta: data.meta,
|
||||||
});
|
});
|
||||||
console.debug(data.response)
|
console.debug(data.response)
|
||||||
if (data.history) {
|
if (data.history) {
|
||||||
@ -464,12 +463,13 @@ const fetchChatResponse = (user_input, cur_res_id) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
readChunk();
|
readChunk();
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
updateStatus(cur_res_id, "error");
|
updateMessage({
|
||||||
|
id: cur_res_id,
|
||||||
|
status: "error",
|
||||||
|
});
|
||||||
isStreaming.value = false;
|
isStreaming.value = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -511,9 +511,9 @@ const sendMessage = () => {
|
|||||||
|
|
||||||
const retryMessage = (id) => {
|
const retryMessage = (id) => {
|
||||||
// 找到 id 对应的 message,然后删除包含 message 在内以及后面所有的 message
|
// 找到 id 对应的 message,然后删除包含 message 在内以及后面所有的 message
|
||||||
console.log("retryMessage", id)
|
|
||||||
const index = conv.value.messages.findIndex(message => message.id === id);
|
const index = conv.value.messages.findIndex(message => message.id === id);
|
||||||
const pastMessage = conv.value.messages[index-1]
|
const pastMessage = conv.value.messages[index-1]
|
||||||
|
console.log("retryMessage", id, pastMessage)
|
||||||
conv.value.inputText = pastMessage.text
|
conv.value.inputText = pastMessage.text
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
conv.value.messages = conv.value.messages.slice(0, index-1);
|
conv.value.messages = conv.value.messages.slice(0, index-1);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user