完成知识库问答功能

This commit is contained in:
junleea 2025-04-10 16:38:14 +08:00
parent 77c7a2f560
commit b498bd0c9b
4 changed files with 52 additions and 39 deletions

View File

@ -16,30 +16,30 @@ export const usePermissStore = defineStore("permiss", {
"11", //用户管理 "11", //用户管理
"12", "12",
"13", "13",
"2", // "2", //组件
"21", // "21",
"22", // "22",
"23", // "23",
"24", // "24",
"25", // "25",
"26", // "26",
"27", // "27",
"28", // "28",
"29", // "29",
"291", // "291",
"292", // "292",
"3", // "3", //表格
"31", // "31",
"32", // "32",
"33", // "33",
"34", // "34",
"4", // "4", //图表
"41", // "41",
"42", // "42",
"5", // "5", //图标
"7", "7", //主题
"6", "6", //附加页面
"8", "8", //个人中心
"61", "61",
"62", "62",
"63", "63",

View File

@ -1,5 +1,6 @@
export interface WSMessage { export interface WSMessage {
code: number;
type: string; type: string;
msg: AIQMessage; msg: AIQMessage;
session_id: number; session_id: number;

View File

@ -101,16 +101,10 @@
>发送</el-button >发送</el-button
> >
<div> <div>
<p>模型参数</p> <el-radio-group v-model="selectedValue">
<el-slider v-model="temperature" :min="0" :max="1" :step="0.1" <el-radio :label="1">query</el-radio>
>temperature</el-slider <el-radio :label="2">chat</el-radio>
> </el-radio-group>
<el-slider
v-model="topP"
:min="0"
:max="1"
:step="0.1"
></el-slider>
</div> </div>
</el-col> </el-col>
<el-col :span="3" style="text-align: center"> <el-col :span="3" style="text-align: center">
@ -287,6 +281,7 @@
const ModelList = ref<Model[]>([]); const ModelList = ref<Model[]>([]);
const selectModel = ref(0); const selectModel = ref(0);
const temperature = ref(0.5); const temperature = ref(0.5);
const selectedValue = ref(1); // query
const topP = ref(0.9); const topP = ref(0.9);
const selectedFiles = ref<File[]>([]); // const selectedFiles = ref<File[]>([]); //
const selectFileVisible = ref(false); // const selectFileVisible = ref(false); //
@ -392,7 +387,7 @@
}); });
}; };
onMounted(() => { onMounted(async () => {
// if (typeof window !== 'undefined') { // if (typeof window !== 'undefined') {
// // // //
// md.use(markdownItMermaid); // md.use(markdownItMermaid);
@ -414,6 +409,11 @@
socket.value.onmessage = (event) => { socket.value.onmessage = (event) => {
let msg: WSMessage = JSON.parse(event.data); let msg: WSMessage = JSON.parse(event.data);
if(msg.code === 150 || msg.code === 151){
ElMessage.error("知识库错误:" +msg.type)
loading.value = false;
return
}
const existingMessage = messages.find( const existingMessage = messages.find(
(msg) => msg.role === "assistant" && !msg.finished (msg) => msg.role === "assistant" && !msg.finished
); );
@ -453,6 +453,11 @@
socket.value = new WebSocket(url); socket.value = new WebSocket(url);
console.error("WebSocket 发生错误:", error); console.error("WebSocket 发生错误:", error);
}; };
await showSession(); //
//
loadSession(historySessions.value[0]?.ID || 0);
}); });
onUnmounted(() => { onUnmounted(() => {
@ -535,12 +540,19 @@
let end_msg = { let end_msg = {
msg: inputMessage.value, msg: inputMessage.value,
type: "ollama", type: "ollama",
function: "gen-ai-chat", function: "kbase-chat",
session_id: sessionID.value, session_id: sessionID.value,
model_id: selectModel.value, model_id: selectModel.value,
temperature: temperature.value, temperature: temperature.value,
top_p: topP.value, top_p: topP.value,
is_kbase: true,
kbase_type: "query",
}; };
console.log("end_msg:", end_msg);
console.log("selectedValue:", selectedValue.value);
if (selectedValue.value == 2) {
end_msg["kbase_type"] = "chat";
}
if (selectedFiles.value.length > 0) { if (selectedFiles.value.length > 0) {
// //
console.log("选中的文件:", selectedFiles.value); console.log("选中的文件:", selectedFiles.value);
@ -642,8 +654,8 @@
sessionIsShow.value = !sessionIsShow.value; sessionIsShow.value = !sessionIsShow.value;
}; };
const getShortenedName = (name: string) => { const getShortenedName = (name: string) => {
if (name.length > 10) { if (name.length > 20) {
return name.slice(0, 10) + "..."; return name.slice(0, 20) + "...";
} }
return name; return name;
}; };

View File

@ -95,7 +95,7 @@ const getData = async () => {
} }
let result = await FindFunctionService(req); let result = await FindFunctionService(req);
tableData.value = result.data; tableData.value = result.data;
page.total = result.data.length; page.total = 12;
}; };
getData(); getData();